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标签匹配,了解即可

相关推荐

  1. Kafka分区副本机制

    2024-04-23 03:24:05       61 阅读
  2. MySQL5.7用于控制副本服务器 SQL 语句

    2024-04-23 03:24:05       49 阅读
  3. linux系统kubernetesServiceAccountRBAC角色访问控制

    2024-04-23 03:24:05       42 阅读
  4. elasticsearch副本分片

    2024-04-23 03:24:05       58 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-04-23 03:24:05       98 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-04-23 03:24:05       106 阅读
  3. 在Django里面运行非项目文件

    2024-04-23 03:24:05       87 阅读
  4. Python语言-面向对象

    2024-04-23 03:24:05       96 阅读

热门阅读

  1. std::tuple介绍和使用

    2024-04-23 03:24:05       36 阅读
  2. 大语言模型对于“长序列”的处理方法

    2024-04-23 03:24:05       34 阅读
  3. RTT设备驱动框架学习(UART)

    2024-04-23 03:24:05       39 阅读
  4. vim之一键替换

    2024-04-23 03:24:05       37 阅读
  5. Vue3 ts使用echarts

    2024-04-23 03:24:05       39 阅读
  6. Vue + Cesium(之一)

    2024-04-23 03:24:05       32 阅读
  7. Vim是一款功能强大的文本编辑器

    2024-04-23 03:24:05       37 阅读
  8. Spring注解@ResponseBody的作用与应用场景

    2024-04-23 03:24:05       37 阅读
  9. zabbix

    zabbix

    2024-04-23 03:24:05      28 阅读
  10. element-ui组件封装技巧

    2024-04-23 03:24:05       33 阅读
  11. 微信小程序中前端 授权登录获取用户的openid

    2024-04-23 03:24:05       39 阅读