1. 程式人生 > >用 Deployment 運行應用 - 每天5分鐘玩轉 Docker 容器技術(123)

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

tom 分享圖片 16px 業務場景 mar 信息 one 管理 spa

從本章開始,我們將通過實踐深入學習 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,下一節學習另一種更常用的方法。

技術分享圖片書籍:

1.《每天5分鐘玩轉Docker容器技術》
https://item.jd.com/16936307278.html


2.《每天5分鐘玩轉OpenStack》
https://item.jd.com/12086376.html

技術分享圖片


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