Kubernetes 通過各種 Controller 來管理 Pod 的生命周期。為了滿足不同業務場景,Kubernetes 開發了 Deployment、ReplicaSet、DaemonSet、StatefuleSet、Job 等多種 Controller。我們首先學習最常用的 Deployment。
運行一個deployment
[root@k8s-master k8s]# kubectl run nginx-deployment --image=nginx:1.79 --replicas=2 kubectl run --generator=deployment/apps.v1beta1 is DEPRECATED and will be removed in a future version. Use kubectl create instead. deployment.apps/nginx-deployment created
[root@k8s-master k8s]# kubectl get deployment
NAME DESIRED CURRENT UP-TO-DATE AVAILABLE AGE
nginx-deployment 2 2 2 2 3m17s
[root@k8s-master k8s]# kubectl get pod -o wide
NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE
nginx-deployment-5fd98dbf5f-w94g4 1/1 Running 0 3m55s 10.244.2.7 k8s-node1 <none>
nginx-deployment-5fd98dbf5f-x5jt5 1/1 Running 0 3m55s 10.244.1.7 k8s-node2 <none>
部署一個deployment名稱叫 nginx-deployment 鏡像是nginx:1.79 2個副本
查看詳細信息
通過kubectl describe deployment 查看該deployment詳細信息
這個對象 nginx-deployment-5fd98dbf5f 2個副本被創建了 來自deployment-controller
查看pod
發覺這兩個pod的前綴都是 nginx-deployment-5fd98dbf5f 不同的是后面的5位隨機數
查看pod的詳細信息
通過查看pod的詳細信息,可以看到 控制管理器是 replicasset,事件(Events)記錄了 pod的創建過程,如果創建失敗可以從事件中查找原因
創建過程
1、kubectl創建deployment
2、deployment創建Replcasset
3、根據Replicaset創建pod
命名方式
replicas的命名方式 :deployment名稱+隨機數
pod的命名方式:replicas名稱+隨機數