用 Deployment 運行應用【轉】


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

Deployment

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

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

kubectl run nginx-deployment --image=nginx:1.7.9 --replicas=2

上面的命令將部署包含兩個副本的 Deployment nginx-deployment,容器的 image 為 nginx:1.7.9

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

kubectl get deployment 命令可以查看 nginx-deployment 的狀態,輸出顯示兩個副本正常運行。

接下來我們用 kubectl describe deployment 了解更詳細的信息。

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

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

兩個副本已經就緒,用 kubectl describe replicaset 查看詳細信息:

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

兩個副本 Pod 都處於 Running 狀態,用 kubectl describe pod 查看更詳細的信息:

Controlled By 指明此 Pod 是由 ReplicaSet nginx-deployment-1260880958 創建。Events 記錄了 Pod 的啟動過程。如果操作失敗(比如 image 不存在),也能在這里查看到原因。

總結一下這個過程:

  1. 用戶通過 kubectl 創建 Deployment。

  2. Deployment 創建 ReplicaSet。

  3. ReplicaSet 創建 Pod。

從上圖也可以看出,對象的命名方式是:子對象的名字 = 父對象名字 + 隨機字符串或數字

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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM