kubernetes Pod控制器 ReplicaSet
标签:
Kubernetes
ReplicaSet控制器
ReplicationController用来确保容器应用的副本数始终保持在用户定义的副本数,即如果有容器异常退出,会自动创建新的Pod来替代;而如果异常多出来的容器也会自动回收,属于旧版本的控制器,涉及面太复杂.
在新版本的Kubernetes中建议使用ReplicaSet来取代ReplicationController。ReplicaSet跟ReplicationController没有本质的不同,只是名字不一样,并且ReplicaSet支持集合式的selector。
虽然ReplicaSet可以独立使用,但一般还是建议使用 Deployment 来自动管理ReplicaSet,这样就无需担心跟其他机制的不兼容问题(比如ReplicaSet不支持rolling-update但Deployment支持),而且Deployment支持滚动升级及回滚
命令行查看ReplicaSet清单定义规则
kubectl explain replicaSetkubectl explain replicaSet.spec
ReplicaSet资源清单
[root@k8s-master01 learning]# vim replicaSet-demo.yaml apiVersion: apps/v1 #api版本定义kind: ReplicaSet #定义资源类型为ReplicaSetmetadata: #元数据定义 name: rs-demo namespace: learningspec: #ReplicaSet的规格定义 replicas: 2 #定义副本数量为2个 selector: #标签选择器,定义匹配pod的标签 matchLabels: app: rs-demo tag: learn-rs template: #pod的模板定义 metadata: #pod的元数据定义 name: rs-demo #自定义pod的名称 labels: #定义pod的标签,和上面保持一致或多余上面 app: rs-demo tag: learn-rs spec: #pod的规格定义 containers: #容器定义 - name: rs-demo #容器名称 image: nginx:1.10 #容器镜像 ports: #暴露端口 - name: http containerPort: 80[root@k8s-master01 learning]# kubectl create namespace learningnamespace/learning created [root@k8s-master01 learning]# kubectl apply -f replicaSet-demo.yaml replicaset.apps/rs-demo created
ReplicaSet常用命令
查看资源
# 查看现有rs[root@k8s-master01 learning]# kubectl get replicasets.apps -n learning NAME DESIRED CURRENT READY AGE rs-demo 2 2 2 4m44s# 查看详细信息[root@k8s-master01 learning]# kubectl describe replicasets. -n learning rs-demo Name: rs-demoNamespace: learningSelector: app=rs-demo,tag=learn-rsLabels: <none>Annotations: kubectl.kubernetes.io/last-applied-configuration: {"apiVersion":"apps/v1","kind":"ReplicaSet","metadata":{"annotations":{},"name":"rs-demo","namespace":"learning"},"spec":{"replicas":5,"se... Replicas: 5 current / 5 desired Pods Status: 5 Running / 0 Waiting / 0 Succeeded / 0 Failed Pod Template: Labels: app=rs-demo tag=learn-rs Containers: rs-demo: Image: nginx:1.11 Port: 80/TCP Host Port: 0/TCP Environment: <none> Mounts: <none> Volumes: <none> Events: Type Reason Age From Message ---- ------ ---- ---- ------- Normal SuccessfulCreate 22s replicaset-controller Created pod: rs-demo-5pd54 Normal SuccessfulCreate 22s replicaset-controller Created pod: rs-demo-gndz6 Normal SuccessfulCreate 22s replicaset-controller Created pod: rs-demo-p479c Normal SuccessfulCreate 22s replicaset-controller Created pod: rs-demo-bkc28 Normal SuccessfulCreate 22s replicaset-controller Created pod: rs-demo-x57kj
修改Pod数量
# 修改pod的副本数量# (1) 通过配置文件修改[root@k8s-master01 learning]# sed -i 's/ replicas: 2/ replicas: 5/g' replicaSet-demo.yaml [root@k8s-master01 learning]# kubectl apply -f replicaSet-demo.yaml replicaset.apps/rs-demo configured [root@k8s-master01 learning]# kubectl get rs -n learning NAME DESIRED CURRENT READY AGE rs-demo 5 5 5 7m37s [root@k8s-master01 learning]# kubectl get pods -n learning NAME READY STATUS RESTARTS AGE rs-demo-h29s7 1/1 Running 0 10s rs-demo-k778n 1/1 Running 0 7m5s rs-demo-mmvpz 1/1 Running 0 10s rs-demo-pw9l8 1/1 Running 0 10s rs-demo-s7q75 1/1 Running 0 7m5s# (2) edit直接编辑修改[root@k8s-master01 learning]# kubectl edit -n learning replicasets.apps rs-demo直接修改replicas字段为想要的pod个数, wq保存退出 [root@k8s-master01 learning]# kubectl -n learning get replicasets.NAME DESIRED CURRENT READY AGE rs-demo 3 3 3 12m
修改镜像版本
# 查看现有的[root@k8s-master01 learning]# kubectl -n learning get replicasets. -o wideNAME DESIRED CURRENT READY AGE CONTAINERS IMAGES SELECTOR rs-demo 3 3 3 13m rs-demo nginx:1.10 app=rs-demo,tag=learn-rs# (1) 通过配置文件修改[root@k8s-master01 learning]# sed -i 's/ image: nginx:1.10/ image: nginx:1.11/g' replicaSet-demo.yaml[root@k8s-master01 learning]# kubectl apply -f replicaSet-demo.yaml replicaset.apps/rs-demo configured [root@k8s-master01 learning]# kubectl -n learning get replicasets. -o wideNAME DESIRED CURRENT READY AGE CONTAINERS IMAGES SELECTOR rs-demo 5 5 5 29m rs-demo nginx:1.11 app=rs-demo,tag=learn-rs# (2) edit直接编辑修改[root@k8s-master01 learning]# kubectl edit -n learning replicasets.apps rs-demo直接修改image字段为想要的pod个数, wq保存退出 [root@k8s-master01 learning]# kubectl -n learning get replicasets. -o wideNAME DESIRED CURRENT READY AGE CONTAINERS IMAGES SELECTOR rs-demo 5 5 5 38m rs-demo nginx:1.12 app=rs-demo,tag=learn-rs
作者:baiyongjie
链接:https://www.jianshu.com/p/b2533c6cc3de
点击查看更多内容
为 TA 点赞
评论
共同学习,写下你的评论
评论加载中...
作者其他优质文章
正在加载中
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦