云容器实例 CCI-Deployment:Deployment如何控制Pod

时间:2025-02-12 14:55:26

Deployment如何控制Pod

继续查询Pod,如下所示。

$ kubectl get pods -n $namespace_nameNAME                     READY     STATUS    RESTARTS   AGEnginx-7f98958cdf-tdmqk   1/1       Running   0          13snginx-7f98958cdf-txckx   1/1       Running   0          13s

如果删掉一个Pod,您会发现立马会有一个新的Pod被创建出来,如下所示,这就是前面所说的Deployment会确保有2个Pod在运行,如果删掉一个,Deployment会重新创建一个,如果某个Pod崩溃或有什么问题,Deployment会自动拉起这个Pod。

$ kubectl delete pod nginx-7f98958cdf-txckx -n $namespace_name$ kubectl get pods -n $namespace_name NAME                     READY     STATUS    RESTARTS   AGEnginx-7f98958cdf-tdmqk   1/1       Running   0          21snginx-7f98958cdf-tesqr   1/1       Running   0          21s

看到有如下两个名为nginx-7f98958cdf-tdmqk和nginx-7f98958cdf-tesqr的Pod, 其中nginx是直接使用Deployment的名称,-7f98958cdf-tdmqk和-7f98958cdf-tesqr是kubernetes随机生成的后缀。

您也许会发现这两个后缀中前面一部分是相同的,都是7f98958cdf,这是因为Deployment不是直接控制Pod的,Deployment是通过一种名为ReplicaSet的控制器控制Pod,通过如下命令可以查询ReplicaSet,其中rs是ReplicaSet的缩写。

$ kubectl get rs -n $namespace_nameNAME               DESIRED   CURRENT   READY     AGEnginx-7f98958cdf   3         3         3         1m

这个ReplicaSet的名称为nginx-7f98958cdf,后缀-7f98958cdf也是随机生成的。

Deployment控制Pod的方式如图1所示,Deployment控制ReplicaSet,ReplicaSet控制Pod。

图1 Deployment通过ReplicaSet控制Pod

如果使用kubectl describe命令查看Deployment的详情,您就可以看到ReplicaSet,如下所示,可以看到有一行 NewReplicaSet: nginx-7f98958cdf (2/2 replicas created),而且 Events 里面事件确是把ReplicaSet的实例扩容到2个。在实际使用中您也许不会直接操作ReplicaSet,但了解Deployment通过控制ReplicaSet来控制Pod会有助于您定位问题。

$ kubectl describe deploy nginx -n $namespace_nameName:                   nginxNamespace:              defaultCreationTimestamp:      Sun, 16 Dec 2018 19:21:58 +0800Labels:                 app=nginx...NewReplicaSet:   nginx-7f98958cdf (2/2 replicas created)Events:  Type    Reason             Age   From                   Message  ----    ------             ----  ----                   -------  Normal  ScalingReplicaSet  5m    deployment-controller  Scaled up replica set nginx-7f98958cdf to 2
support.huaweicloud.com/devg-cci/cci_05_0005.html