ReplicaSet是下一代Replication Controller。 现在,ReplicaSet和Replication Controller之间的唯一区别是selector支持。 ReplicaSet支持标签用户指南中描述的新的基于集合的选择器要求,而Replication Controller仅支持基于等级的选择器要求。

在开始之前,删除之前创建的RC

[root@k8s-01 ~]# kubectl delete rc nginx-rc 
replicationcontroller "nginx-rc" deleted

编写RS的YAML文件

[root@k8s-01 ~]# cat nginx-rs.yaml 
apiVersion: apps/v1
kind: ReplicaSet
metadata:
  name: nginx-rs
  labels:
    app: nginx
spec:
  replicas: 3
  selector:
    matchLabels:
      app: nginx
  template:
    metadata:
      labels:
        app: nginx
    spec:
      containers:
      - name: nginx
        image: nginx
        ports:
        - containerPort: 80

这是一个ReplicaSet类型的。

创建RS

[root@k8s-01 ~]# kubectl create -f nginx-rs.yaml 
replicaset.apps/nginx-rs created

查看RS

[root@k8s-01 ~]# kubectl get rs nginx-rs
NAME       DESIRED   CURRENT   READY   AGE
nginx-rs   3         3         3       29s

查看Pod

[root@k8s-01 ~]# kubectl get pod
NAME                        READY   STATUS    RESTARTS   AGE
nginx-rs-g9chx              1/1     Running   0          59s
nginx-rs-h6f7k              1/1     Running   0          59s
nginx-rs-lwcbf              1/1     Running   0          59s

扩容和缩容

[root@k8s-01 ~]# kubectl scale rs nginx-rs --replicas=2 
replicaset.apps/nginx-rs scaled

[root@k8s-01 ~]# kubectl get pod
NAME                        READY   STATUS    RESTARTS   AGE
nginx-rs-g9chx              1/1     Running   0          10m
nginx-rs-h6f7k              1/1     Running   0          10m

[root@k8s-01 ~]# kubectl get rs
NAME                  DESIRED   CURRENT   READY   AGE
nginx-rs              2         2         2       10m


[root@k8s-01 ~]# kubectl scale rs nginx-rs --replicas=4 
replicaset.apps/nginx-rs scaled

[root@k8s-01 ~]# kubectl get pod
NAME                        READY   STATUS              RESTARTS   AGE
nginx-rs-g9chx              1/1     Running             0          10m
nginx-rs-ghz7l              1/1     Running             0          7s
nginx-rs-h6f7k              1/1     Running             0          10m
nginx-rs-j5d4p              0/1     ContainerCreating   0          7s

[root@k8s-01 ~]# kubectl get rs
NAME                  DESIRED   CURRENT   READY   AGE
nginx-rs              4         4         4       11m

参考文章:
http://k8s.unixhot.com/kubernetes/rs.html

Logo

K8S/Kubernetes社区为您提供最前沿的新闻资讯和知识内容

更多推荐