22、k8s-pod的控制器-第一种-ReplicaSet(RS)
作用:ReplicaSet的主要作用是保证一定数量的pod能够正常的运行、他会:
·持续监听这些pod的运行状态、一旦发生故障、就会重启或重建、
·同时它还支持对pod数量的扩容、缩减pod和版本镜像的 升级
1、创建Rs:新建文件 -------------------------------------- apiVersion: apps/v1 kind: ReplicaSet metadata: name: pc-replicaset namespace: dev spec: replicas: 3 selector: matchLabels: app: nginx-pod template: metadata: labels: app: nginx-pod spec: containers: - name: nginx image: nginx:1.17.1 ------------------------------------------------ 2、创建replicaset:kubectl create -f pc-replicaset.yaml 3、查看:kubectl get rs pc-replicaset -ndev -o wide ----------------------------------------------------------------------------- NAME DESIRED CURRENT READY AGE CONTAINERS IMAGES SELECTOR pc-replicaset 3 3 3 82s nginx nginx:1.17.1 app=nginx-pod #DESIRED 期望的副本数量 #CURRENT 当前副本的数量 #READY 已经准备好提供服务的副本数量 ----------------------------------------------------------------------------------------------------
replicaset的功能 pod扩增缩减
1、命令行输入:kubectl edit rs pc-replicaset -ndev #相当于vim文档编辑、只不过edit是动态的 ------------------------------------------------- #修改replicas的数量、增加或减少pod的数量 #注意这里edit修改后保存退出即可立马生效 spec: replicas: 6 selector: matchLabels: app: nginx-pod -------------------------------------------------- 2、we!保存退出 3、查看rs: kubectl get rs -ndev -o wide pc-replicaset --------------------------------------------------------------------------------------------- #这时候pod就增加为了6个 NAME DESIRED CURRENT READY AGE CONTAINERS IMAGES SELECTOR pc-replicaset 6 6 6 37m nginx nginx:1.17.1 app=nginx-pod ----------------------------------------------------------------------------------------------- 4、查看rs下的pod:kubectl get pods -ndev 扩展:使用scale也可以实现pod数量的增加与减少 1、kubectl scale rs pc-replicaset --replicas=2 -ndev 2、查看:kubectl get rs pc-replicaset -ndev #此时rs下的pod变为了2个 ------------------------------------------------------------------ NAME DESIRED CURRENT READY AGE pc-replicaset 2 2 2 42m ------------------------------------------------------------------
replicaset的功能 :镜像版本的更换
输入:kubectl edit rs pc-replicaset -ndev -------------------------------------- #修改镜像版本 spec: containers: - image: nginx:1.17.2 --------------------------------------- 2、查看rs: kubectl get rs pc-replicaset -ndev -o wide ----------------------------------------------------------------------------------------------- NAME DESIRED CURRENT READY AGE CONTAINERS IMAGES SELECTOR pc-replicaset 2 2 2 46m nginx nginx:1.17.2 app=nginx-pod #发现IMAGES从1.7.1变为了1.7.2了 --------------------------------------------------------------------------------------------- 扩展:使用命令直接修改镜像版本(没有edit方便) 输入:kubectl set image rs pc-replicaset nginx=nginx:1.7.1 -ndev 查看rs: kubectl get rs pc-replicaset -ndev -o wide ---------------------------------------------------------------------------------------------- NAME DESIRED CURRENT READY AGE CONTAINERS IMAGES SELECTOR pc-replicaset 2 2 2 49m nginx nginx:1.7.1 app=nginx-pod ----------------------------------------------------------------------------------------------
删除replicaset
方法1:直接删除replicaset ·kubectl delete rs pc-replicaset -ndev 方法2:使用yaml删除:(推荐) ·kubectl delete -f pc-replicaset.yaml 扩展(不建议这么做):只删除replicaset控制器而保留pod --cascade=false ·kubectl delete rs pc-replicaset -ndev --cascade=false 查看replicaset控制器:kubectl get rs pc-replicaset -ndev -o wide
本文作者:little小新
本文链接:https://www.cnblogs.com/littlecc/p/17655455.html
版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步