Kubernetes详解(二十一)——ReplicaSet控制器实战应用

今天继续给大家介绍Linux运维相关知识,本文主要内容是ReplicaSet控制器实战应用。
在上文Kubernetes详解(二十)——ReplicaSet控制器中,我们讲解了ReplicaSet控制器的基本内容和创建,今天,我们来进行ReplicaSet控制器的实战。

一、ReplicaSet控制器应用升级

首先,我们来使用ReplicaSet控制器进行应用升级。在上文中,ReplicaSet控制器在创建后,我们来查看一下该控制器控制的Pod的镜像版本,执行命令:

kubectl get pods -o custom-columns=Name:metadata.name,Image:spec.contianers[0].image

在上述命令中,我们使用了-o custom-columns参数,用于指定显示的列。其中Name和Image为列名,后面跟冒号,然后再指定显示的内容。显示的内容使用Kubernetes的关键字段名表示,不同的列之间用逗号分割。
该命令执行结果如下:
在这里插入图片描述
从上图中可以看出,当前Kubernetes集群中Pod的版本是v1。接下来,我们来将该ReplicaSet控制器所控制的Pod的版本升级为v2。打开该ReplicaSet控制器的资源清单配置文件,将image字段由v1修改为v2,修改内容如下图红圈部分所示:
在这里插入图片描述
之后,我们重新创建ReplicaSet控制器,执行命令:

kubectl apply -f ReplicaSet.yaml

执行完成后,再次执行命令:

kubectl get pods -o custom-columns=Name:metadata.name,Image:spec.contianers[0].image

查看ReplicaSet控制器所控制的Pod的镜像版本,结果我们发现ReplicaSet控制器并没有完成版本更新的操作。这是因为ReplicaSet不会自动完成更新,该命令只会使得新创建的Pod控制器更新为新的版本。我们如果完成Pod的版本更新,还需要手动删除原有的Pod控制器,才能够彻底的完成Pod的更新。
因此,我们执行命令:

kubectl delete pods -l demo=replicaset

删除该ReplicaSet控制器控制的Pod资源对象,然后再次执行命令:

kubectl get pods -o custom-columns=Name:metadata.name,Image:spec.contianers[0].image

查看Pod的版本,就会发现Pod控制器已经更新完毕。
全过程如下所示:
在这里插入图片描述
从上图中可以看出,当前ReplicaSet控制器所控制的Pod的Image版本为v2,我们的ReplicaSet控制器版本升级实战成功!

二、ReplicaSet控制器扩容和缩容

接下来,我们进行ReplicaSet控制器的扩容和缩容实战。首先,我们执行命令:

kubectl get rs

查看该ReplicaSet控制器下的Pod数量。之后,我们执行扩容命令:

kubectl scale replicasets rs --replicas=3

在该命令中,scale为扩容命令的关键字,replicasets指定扩容的对象为ReplicaSet控制器,后面的rs为该ReplicaSet控制器的名称,后面的–replicas=3表示将该控制器所控制的Pod数量设定为3。
之后,我们再次执行rs的查看命令,以查看ReplicaSet控制器扩容后的Pod数量。
上述过程执行情况如下:
在这里插入图片描述
从上图中可以看出,在扩容前,ReplicaSet控制的Pod数量为2,在扩容后,ReplicaSet控制的Pod数量为3,ReplicaSet的扩容实战成功!
至于ReplicaSet控制器的缩容,则其基本命令与扩容的命令相同,所不同之处在于–replicas参数后面的值要小于当前实际的Pod数量。在以上的基础上,执行命令:

kubectl scale replicasets rs --replicas=1

可以将ReplicaSet控制器的Pod数量缩容至1个,该命令执行结果如下:
在这里插入图片描述

三、ReplicaSet控制器资源删除

最后,我们来介绍一下ReplicaSet控制器资源的删除。
如果我们想删除该ReplicaSet资源控制器,可以执行执行命令:

kubectl delete 【ReplicaSet控制器名称】

如下所示:
在这里插入图片描述
然而,从上图中可以看出,这样删除ReplicaSet后,该控制器所管理的Pod也会随之删除。
有时,我们希望删除ReplicaSet控制器,但是又希望该控制器所管理Pod依然存在,那么我们可以在删除命令的后面加上–cascade=false,执行命令:

kubectl delete replicasets rs --cascade=false

这样,就可以在删除ReplicaSet控制器但是不删除其控制的Pod了,该命令执行结果如下:
在这里插入图片描述
原创不易,转载请说明出处:https://blog.csdn.net/weixin_40228200

猜你喜欢

转载自blog.csdn.net/weixin_40228200/article/details/124349230