天天看點

用 Deployment 運作應用 - 每天5分鐘玩轉 Docker 容器技術(123)

從本章開始,我們将通過實踐深入學習 Kubernetes 的各種特性。作為容器編排引擎,最重要也是最基本的功能當然是運作容器化應用,這就是本章的内容。

前面我們已經了解到,Kubernetes 通過各種 Controller 來管理 Pod 的生命周期。為了滿足不同業務場景,Kubernetes 開發了 Deployment、ReplicaSet、DaemonSet、StatefuleSet、Job 等多種 Controller。我們首先學習最常用的 Deployment。

先從例子開始,運作一個 Deployment:

上面的指令将部署包含兩個副本的 Deployment <code>nginx-deployment</code>,容器的 image 為 <code>nginx:1.7.9</code>。

下面詳細分析 Kubernetes 都做了些什麼工作。

用 Deployment 運作應用 - 每天5分鐘玩轉 Docker 容器技術(123)

<code>kubectl get deployment</code> 指令可以檢視 <code>nginx-deployment</code> 的狀态,輸出顯示兩個副本正常運作。

接下來我們用 <code>kubectl describe deployment</code> 了解更詳細的資訊。

用 Deployment 運作應用 - 每天5分鐘玩轉 Docker 容器技術(123)

大部分内容都是自解釋的,我們重點看最下面部分。這裡告訴我們建立了一個 ReplicaSet <code>nginx-deployment-1260880958</code>,<code>Events</code> 是 Deployment 的日志,記錄了 ReplicaSet 的啟動過程。

通過上面的分析,也驗證了 Deployment 通過 ReplicaSet 來管理 Pod 的事實。接着我們将注意力切換到 <code>nginx-deployment-1260880958</code>,執行 <code>kubectl describe replicaset</code>:

用 Deployment 運作應用 - 每天5分鐘玩轉 Docker 容器技術(123)

兩個副本已經就緒,用 <code>kubectl describe replicaset</code> 檢視詳細資訊:

用 Deployment 運作應用 - 每天5分鐘玩轉 Docker 容器技術(123)

<code>Controlled By</code> 指明此 ReplicaSet 是由 Deployment <code>nginx-deployment</code> 建立。<code>Events</code> 記錄了兩個副本 Pod 的建立。接着我們來看 Pod,執行 <code>kubectl get pod</code>:

用 Deployment 運作應用 - 每天5分鐘玩轉 Docker 容器技術(123)

兩個副本 Pod 都處于 <code>Running</code> 狀态,用 <code>kubectl describe pod</code> 檢視更詳細的資訊:

用 Deployment 運作應用 - 每天5分鐘玩轉 Docker 容器技術(123)

<code>Controlled By</code> 指明此 Pod 是由 ReplicaSet <code>nginx-deployment-1260880958</code> 建立。<code>Events</code> 記錄了 Pod 的啟動過程。如果操作失敗(比如 image 不存在),也能在這裡檢視到原因。

總結一下這個過程:

使用者通過 <code>kubectl</code> 建立 Deployment。

Deployment 建立 ReplicaSet。

ReplicaSet 建立 Pod。

用 Deployment 運作應用 - 每天5分鐘玩轉 Docker 容器技術(123)

從上圖也可以看出,對象的命名方式是:<code>子對象的名字</code> = <code>父對象名字</code> + <code>随機字元串或數字</code>。

本節我們是通過 <code>kubectl run</code> 建立的 Deployment,下一節學習另一種更常用的方法。

書籍:

1.《每天5分鐘玩轉Docker容器技術》

<a href="https://item.jd.com/16936307278.html" target="_blank">https://item.jd.com/16936307278.html</a>

2.《每天5分鐘玩轉OpenStack》

<a href="https://item.jd.com/12086376.html" target="_blank">https://item.jd.com/12086376.html</a>