首页 > 其他 > 详细

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

时间:2018-10-03 00:12:08      阅读:290      评论:0      收藏:0      [点我收藏+]

>原创文章,欢迎转载。转载请注明:转载自IT人故事会,谢谢!
>原文链接地址:『中级篇』K8S横向扩展功能ReplicaSet和ReplicationController(63)

上次说了,pod的如何管理。这次说说pod的横向扩展。源码:https://github.com/limingios/docker/tree/master/No.9

ReplicationController

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

  • 开始演示
#启动k8s
minikube start
#删除上次的pod
kubectl 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

技术分享图片

#创建一个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

    技术分享图片

技术分享图片

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创建的pod
    kubectl 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的方式,基本上可以抛弃上次的直接pod的方式创建app了。下次说说Deployment。

技术分享图片

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

原文:http://blog.51cto.com/12040702/2289756

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!