kubernetes中的副本控制器rc(replicationcontrollers)和rs(replicasets)

一、rc控制器replicationcontrollers

        rc控制器就是控制相同pod副本数量

        使用rc控制器资源创建pod,设定创建pod资源的数量

1.1 案例

1.1.1、创建资源清单

[root@master rc-demo]# cat rc.yaml 
apiVersion: v1
kind: ReplicationController
metadata:
  name: rc01
spec:
  replicas: 3 #控制要创建的副本数量
  selector:
    k8s: dolphin
  template:
    metadata:
      name: pod-01
      labels:
        k8s: dolphin
    spec:
      containers:
      - name: c1
        image: nginx
        ports:
        -  containerPort: 80
 

1.1.2、创建资源

[root@master rc-demo]# kubectl apply -f rc.yaml 

1.1.3、查看资源

1.1.4、删除资源

[root@master rc-demo]# kubectl delete -f rc.yaml 
replicationcontroller "rc01" deleted

1.1.5、总结

  • rc控制器创建的pod是按照标签进行父辈数量控制的;
  • rc控制器资源创建的pod,直接删除pod,还会重新拉起,只有删除rc资源,pod才会消失
  • 修改rc资源,需要重新编辑rc资源清单,再次apply就可以修改了

1.2 rc控制器实现资源业务的升级与回滚

1.2.1 创建2个镜像的版本

第一个镜像

[root@master rc-demo]# cat Dockerfile 
FROM nginx:1.20.1-alpine

RUN echo  rc-v1 >  /usr/share/nginx/html/index.html

CMD   ["/usr/sbin/nginx", "-g", "daemon off;"]
 

[root@master rc-demo]# docker build -t dolphinc/nginx:v1 .
[root@master rc-demo]# docker push dolphinc/nginx:v1
 

第二个镜像

[root@master rc-demo]# cat Dockerfile 
FROM nginx:1.20.1-alpine

RUN echo  rc-v2 >  /usr/share/nginx/html/index.html

CMD   ["/usr/sbin/nginx", "-g", "daemon off;"]
 

[root@master rc-demo]# docker build -t dolphinc/nginx:v2 .
[root@master rc-demo]# docker push dolphinc/nginx:v2

1.2.2 编辑资源清单

[root@master rc-demo]# cat rc.yaml 
apiVersion: v1
kind: ReplicationController
metadata:
  name: rc-nginx
spec:
 
  replicas: 3 #控制pod的副本数量
  selector: 
    k8s: dolphinc-rc
  #下面就是你要控制的pod了(就是pod资源的编辑);
  template:
    metadata:
      name: pod-nginx
      labels:
        k8s: dolphinc-rc
    spec:
      containers:
      - name: c1
        image: dolphinc/nginx:v1
        ports:
        - containerPort: 80
        command: 
        - "nginx"
        - "-g"
        - "daemon off;"
---
#编辑service资源用于外部访问
apiVersion: v1
kind: Service
metadata:
  name: svc-rc-nginx
spec:
  type: NodePort
  selector:
    k8s: dolphinc-rc
  ports:
  - port: 88
    targetPort: 80
    nodePort: 30001
 

1.2.3 创建资源

[root@master rc-demo]# kubectl apply -f rc.yaml 

1.2.4 查看资源

1.2.5 访问资源

1.2.6 修改rc.yaml 更换镜像

[root@master rc-demo]# cat rc.yaml 
apiVersion: v1
kind: ReplicationController
metadata:
  name: rc-nginx
spec:
 
  replicas: 3 #控制pod的副本数量
  selector: 
    k8s: dolphinc-rc
  #下面就是你要控制的pod了(就是pod资源的编辑);
  template:
    metadata:
      name: pod-nginx
      labels:
        k8s: dolphinc-rc
    spec:
      containers:
      - name: c1
        image: dolphinc/nginx:v2
        ports:
        - containerPort: 80
        command: 
        - "nginx"
        - "-g"
        - "daemon off;"
---
#编辑service资源用于外部访问
apiVersion: v1
kind: Service
metadata:
  name: svc-rc-nginx
spec:
  type: NodePort
  selector:
    k8s: dolphinc-rc
  ports:
  - port: 88
    targetPort: 80
    nodePort: 30001

1.2.7 重新执行创建资源命令

[root@master rc-demo]# kubectl apply -f rc.yaml 

 1.2.8 删除原有Pod(自动拉取新的pod)

[root@master rc-demo]# kubectl delete pods --all

 1.2.9 再次访问资源(升级迭代完成)

1.2.10 回滚操作

将版本号替换为v1删除pod,重新执行命令就回滚了,跟上述升级迭代操作一样

二、rs资源控制器replicasets

跟rc几乎一样,区别就是你支持标签匹配pod,也支持标签表达式

写法区别如下,一般很少用到这种写法,用的多的都是matchLabels标签匹配,了解即可

  • 11
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值