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

简介: 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
1
在上述命令中,我们使用了-o custom-columns参数,用于指定显示的列。其中Name和Image为列名,后面跟冒号,然后再指定显示的内容。显示的内容使用Kubernetes的关键字段名表示,不同的列之间用逗号分割。
该命令执行结果如下:

从上图中可以看出,当前Kubernetes集群中Pod的版本是v1。接下来,我们来将该ReplicaSet控制器所控制的Pod的版本升级为v2。打开该ReplicaSet控制器的资源清单配置文件,将image字段由v1修改为v2,修改内容如下图红圈部分所示:

之后,我们重新创建ReplicaSet控制器,执行命令:

kubectl apply -f ReplicaSet.yaml
1
执行完成后,再次执行命令:

kubectl get pods -o custom-columns=Name:metadata.name,Image:spec.contianers[0].image
1
查看ReplicaSet控制器所控制的Pod的镜像版本,结果我们发现ReplicaSet控制器并没有完成版本更新的操作。这是因为ReplicaSet不会自动完成更新,该命令只会使得新创建的Pod控制器更新为新的版本。我们如果完成Pod的版本更新,还需要手动删除原有的Pod控制器,才能够彻底的完成Pod的更新。
因此,我们执行命令:

kubectl delete pods -l demo=replicaset
1
删除该ReplicaSet控制器控制的Pod资源对象,然后再次执行命令:

kubectl get pods -o custom-columns=Name:metadata.name,Image:spec.contianers[0].image
1
查看Pod的版本,就会发现Pod控制器已经更新完毕。
全过程如下所示:

从上图中可以看出,当前ReplicaSet控制器所控制的Pod的Image版本为v2,我们的ReplicaSet控制器版本升级实战成功!

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

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

kubectl scale replicasets rs --replicas=3
1
在该命令中,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
1
可以将ReplicaSet控制器的Pod数量缩容至1个,该命令执行结果如下:

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

kubectl delete 【ReplicaSet控制器名称】
1
如下所示:

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

kubectl delete replicasets rs --cascade=false
1
这样,就可以在删除ReplicaSet控制器但是不删除其控制的Pod了,该命令执行结果如下:

原创不易,转载请说明出处:https://blog.csdn.net/weixin_40228200
————————————————

                        版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。

原文链接:https://blog.csdn.net/weixin_40228200/article/details/124349230

相关实践学习
通过Ingress进行灰度发布
本场景您将运行一个简单的应用,部署一个新的应用用于新的发布,并通过Ingress能力实现灰度发布。
容器应用与集群管理
欢迎来到《容器应用与集群管理》课程,本课程是“云原生容器Clouder认证“系列中的第二阶段。课程将向您介绍与容器集群相关的概念和技术,这些概念和技术可以帮助您了解阿里云容器服务ACK/ACK Serverless的使用。同时,本课程也会向您介绍可以采取的工具、方法和可操作步骤,以帮助您了解如何基于容器服务ACK Serverless构建和管理企业级应用。 学习完本课程后,您将能够: 掌握容器集群、容器编排的基本概念 掌握Kubernetes的基础概念及核心思想 掌握阿里云容器服务ACK/ACK Serverless概念及使用方法 基于容器服务ACK Serverless搭建和管理企业级网站应用
目录
相关文章
|
28天前
|
人工智能 Kubernetes 安全
赋能加速AI应用交付,F5 BIG-IP Next for Kubernetes方案解读
赋能加速AI应用交付,F5 BIG-IP Next for Kubernetes方案解读
61 13
|
27天前
|
存储 Kubernetes 关系型数据库
阿里云ACK备份中心,K8s集群业务应用数据的一站式灾备方案
本文源自2024云栖大会苏雅诗的演讲,探讨了K8s集群业务为何需要灾备及其重要性。文中强调了集群与业务高可用配置对稳定性的重要性,并指出人为误操作等风险,建议实施周期性和特定情况下的灾备措施。针对容器化业务,提出了灾备的新特性与需求,包括工作负载为核心、云资源信息的备份,以及有状态应用的数据保护。介绍了ACK推出的备份中心解决方案,支持命名空间、标签、资源类型等维度的备份,并具备存储卷数据保护功能,能够满足GitOps流程企业的特定需求。此外,还详细描述了备份中心的使用流程、控制台展示、灾备难点及解决方案等内容,展示了备份中心如何有效应对K8s集群资源和存储卷数据的灾备挑战。
|
2月前
|
存储 运维 Kubernetes
K8s业务迁移最佳实践: 灵活管理资源备份与调整策略,实现高效简便的应用恢复
在当今快速变化的云原生领域,Kubernetes(K8s)集群的运维面临着诸多挑战,其中灾备与业务迁移尤为关键。ACK备份中心支持丰富的资源调整策略,在数据恢复阶段即可自动适配目标集群环境,确保业务无缝重启。
|
2月前
|
监控 持续交付 Docker
Docker 容器化部署在微服务架构中的应用有哪些?
Docker 容器化部署在微服务架构中的应用有哪些?
|
2月前
|
监控 持续交付 Docker
Docker容器化部署在微服务架构中的应用
Docker容器化部署在微服务架构中的应用
|
2月前
|
Kubernetes 监控 安全
容器化技术:Docker与Kubernetes的实战应用
容器化技术:Docker与Kubernetes的实战应用
|
2月前
|
存储 Kubernetes Devops
Kubernetes集群管理和服务部署实战
Kubernetes集群管理和服务部署实战
67 0
|
2月前
|
Java Docker 微服务
利用Docker容器化部署Spring Boot应用
利用Docker容器化部署Spring Boot应用
55 0
|
2月前
|
存储 Kubernetes 调度
【赵渝强老师】K8s中Deployment控制器与StatefulSet控制器的区别
K8s中的Deployment控制器用于管理无状态应用程序,关注Pod数量、更新方式等;而StatefulSets控制器则管理有状态应用程序,提供持久存储和唯一标识符,适用于需要稳定网络标识符和持久化存储的场景。两者的主要区别在于是否维护状态和顺序。
|
2月前
|
存储 Kubernetes 调度
【赵渝强老师】K8s的有状态控制器StatefulSet
在Kubernetes中,StatefulSets用于部署有状态应用程序,提供持久存储和唯一标识符。与Deployment不同,StatefulSets确保Pod的标识符在重新调度后保持不变,适用于需要稳定网络标识符和持久存储的场景。本文介绍了StatefulSets的创建、扩容与缩容、更新与回滚等操作,并提供了具体示例和视频讲解。

热门文章

最新文章