为了账号安全,请及时绑定邮箱和手机立即绑定

『中级篇』K8S横向扩展功能ReplicaSet和ReplicationController(63)

标签:
Java

ReplicationController

ReplicationController(简称为RC)。在旧版本的Kubernetes中,只有ReplicationController对象。它的主要作用是确保Pod以你指定的副本数运行,即如果有容器异常退出,会自动创建新的 Pod 来替代;而异常多出来的容器也会自动回收。可以说,通过ReplicationController,Kubernetes实现了集群的高可用性。

  • 开始演示

#启动k8sminikube start#删除上次的podkubectl delete -f pod_nginx.yml

webp

  • 查看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

webp

image.png

#创建一个ReplicationController的横向扩展kubectl create -f rc_nginx.yml
kubectl get pods
kubectl get rc

webp

  • 删除一个看看效果如何

通过delete pods 的方式删除一个容器,立刻就有一个新的容器起来

kubectl get  rc
kubectl get pod
kubectl delete pods nginx-h2qbt
kubectl get pods
kubectl get  rc

webp

  • scale 水平扩展的数量

kubectl scale rc nginx --replicas=2
kubectl get  rc
kubectl scale rc nginx --replicas=5
kubectl get  pods -o wide

webp

webp

image.png

ReplicaSet

Kubernetes官方强烈建议避免直接使用ReplicaSet,而应该通过Deployment来创建RS和Pod。
由于ReplicaSet是ReplicationController的代替物,因此用法基本相同,唯一的区别在于ReplicaSet支持集合式的selector。

webp

  • 查看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

webp

webp

  • 删除一个看看效果如何

通过delete pods 的方式删除一个容器,立刻就有一个新的容器起来

kubectl get  rs
kubectl get pod
kubectl delete pods nginx-h2qbt
kubectl get pods
kubectl get  rs

webp

  • scale 水平扩展的数量

kubectl scale rs nginx --replicas=2
kubectl get  rs
kubectl scale rs nginx --replicas=5
kubectl get  pods -o wide

webp

PS:通过这次了解了pod的扩展,ReplicaSet和ReplicationController的方式



作者:IT人故事会
链接:https://www.jianshu.com/p/77f8cfd0f539


点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消