ReplicationController
ReplicationController(简称为RC)。在旧版本的Kubernetes中,只有ReplicationController对象。它的主要作用是确保Pod以你指定的副本数运行,即如果有容器异常退出,会自动创建新的 Pod 来替代;而异常多出来的容器也会自动回收。可以说,通过ReplicationController,Kubernetes实现了集群的高可用性。
开始演示
#启动k8sminikube start#删除上次的podkubectl delete -f pod_nginx.yml
查看rc_nginx.yml
apiVersion: v1 kind: ReplicationController metadata: name: nginx spec: replicas: 3 selector: app: nginx template: metadata: name: nginx labels: app: nginx spec: containers: - name: nginx image: nginx ports: - containerPort: 80
image.png
#创建一个ReplicationController的横向扩展kubectl create -f rc_nginx.yml kubectl get pods kubectl get rc
删除一个看看效果如何
通过delete pods 的方式删除一个容器,立刻就有一个新的容器起来
kubectl get rc kubectl get pod kubectl delete pods nginx-h2qbt kubectl get pods kubectl get rc
scale 水平扩展的数量
kubectl scale rc nginx --replicas=2 kubectl get rc kubectl scale rc nginx --replicas=5 kubectl get pods -o wide
image.png
ReplicaSet
Kubernetes官方强烈建议避免直接使用ReplicaSet,而应该通过Deployment来创建RS和Pod。
由于ReplicaSet是ReplicationController的代替物,因此用法基本相同,唯一的区别在于ReplicaSet支持集合式的selector。
查看rc_nginx.yml
apiVersion: apps/v1 kind: ReplicaSet metadata: name: nginx labels: tier: frontend spec: replicas: 3 selector: matchLabels: tier: frontend template: metadata: name: nginx labels: tier: frontend spec: containers: - name: nginx image: nginx ports: - containerPort: 80
#删除ReplicationController创建的podkubectl delete -f rc_nginx.yml#创建一个ReplicationController的横向扩展kubectl create -f rs_nginx.yml kubectl get pods -o wide kubectl get pods kubectl get rc
删除一个看看效果如何
通过delete pods 的方式删除一个容器,立刻就有一个新的容器起来
kubectl get rs kubectl get pod kubectl delete pods nginx-h2qbt kubectl get pods kubectl get rs
scale 水平扩展的数量
kubectl scale rs nginx --replicas=2 kubectl get rs kubectl scale rs nginx --replicas=5 kubectl get pods -o wide
PS:通过这次了解了pod的扩展,ReplicaSet和ReplicationController的方式
作者:IT人故事会
链接:https://www.jianshu.com/p/77f8cfd0f539
点击查看更多内容
为 TA 点赞
评论
共同学习,写下你的评论
评论加载中...
作者其他优质文章
正在加载中
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦