概念:
    image.png

    ReplicationController用来确保容器应用的副本数始终保持在用户定义的副本数,即如果有容器异常退出,会自动创建新的Pod来替代,而如果异常多出来的容器也会自动回收

    虽然ReplicaSet可以独立使用,但一般还是建议使用 Deployment 来自动管理ReplicaSet,这样就无需担心跟其他机制的不兼容问题(比如ReplicaSet不支持rolling-update但Deployment支持)

    示例:
    image.png

    [root@master ~]# kubectl explain rs

    [root@master manifests]# vim rs-demo.yaml
    apiVersion: apps/v1 #群组/版本
    kind: ReplicaSet #类型 注意大小写
    metadata: #元数据
    name: myapp
    namespace: default
    spec:
    replicas: 2 #定义ReplicaSet副本数量
    selector: #定义选择器
    matchLabels: #匹配 ,创建的模板的标签需要包含此处的标签,不然无法被创建 app: myapp
    release: canary
    template: #定义模板
    metadata: #模板元数据
    name: myapp-pod #此处名称定义没有用,被控制器创建的pod都会以控制器的名称后加随机字符串来命名
    labels: #此处要包含replicaset处定义的标签选择器
    app: myapp
    release: canary
    spec:
    containers: #定义模板的容器 - name: myapp-container
    image: ikubernetes/myapp:v1
    ports: #端口
    - name: http
    containerPort: 80**

    运行后验证:
    image.png

    [root
    @master manifests]# kubectl create -f rs-demo.yaml
    replicaset.apps/myapp created

    **[root@master manifests]# kubectl get rs #replicaset 简写rs NAME DESIRED CURRENT READY AGE
    client-f5cdb799f 1 1 1 3d19h
    myapp 2 2 2 10s
    nginx-deploy-84cbfc56b6 1 1 1 3d23h**

    查看Pod:
    image.png

    [root
    @master manifests]# kubectl get pods
    NAME READY STATUS RESTARTS AGE
    client-f5cdb799f-pklmc 1/1 Running 0 3d19h
    myapp-fxmjz 1/1 Running 0 59s
    myapp-hxvnz 1/1 Running 0 59s
    nginx-deploy-84cbfc56b6-tcssz 1/1 Running 0 3d22h
    pod-demo 2/2 Running 7 2d22h
    poststart-pod 1/1 Running 1 2d16h
    readiness-httpget-pod 1/1 Running 0 2d16h

    **#可以使用kubectl describe pods 来查看详细信息

    修改Pod的副本数量:
    image.png

    [root@master manifests]# kubectl edit rs myapp
    replicas: 5(把这个值修改成5)

    [root@master manifests]# kubectl get pods
    NAME READY STATUS RESTARTS AGE
    client-f5cdb799f-pklmc 1/1 Running 0 3d19h
    myapp-64qnb 1/1 Running 0 9s
    myapp-fxmjz 1/1 Running 0 3m53s
    myapp-hdv9c 1/1 Running 0 9s
    myapp-hxvnz 1/1 Running 0 3m53s
    myapp-mwb27 1/1 Running 0 9s
    nginx-deploy-84cbfc56b6-tcssz 1/1 Running 0 3d23h
    pod-demo 2/2 Running 7 2d22h
    poststart-pod 1/1 Running 1 2d16h
    readiness-httpget-pod

    修改Pod的镜像版本:
    image.png

    [root@master manifests]# kubectl edit rs myapp - image: ikubernetes/myapp:v2(修改此位置的参数)**

    参考文献:https://www.cnblogs.com/wlbl/p/10694306.html