9.2.k8s的控制器资源(rs控制器replicasets)

目录

一、replicaset副本控制器

二、rs控制器资源的管理

1.基于标签-创建rs资源

2.基于标签表达式创建rs资源

三、rs资源的升级和回滚


一、replicaset副本控制器

replicaset副本控制器,简称:rs控制器;

  1. 用法:与rc控制器"几乎"相同;
  2. 能力:可以指定pod的副本始终存活,相比于rc控制器;支持标签匹配,也支持标签表达式
  3. 注意:不论是rc还是rs资源,都是通过"标签"进行匹配pod的,如果有同样的标签,则算作一个副本;

二、rs控制器资源的管理

1.基于标签-创建rs资源

bash 复制代码
[root@k8s1 rs]# cat rs.yaml 
apiVersion: apps/v1
kind: ReplicaSet
metadata:
  name: rs01
spec: 
  #控制pod副本的数量(k8s系统集群中,匹配到标签的数量)
  replicas: 2
  #选择需要创建副本的pod的标签
  selector:
    #声明基于标签匹配pod(这里就是与rc控制器的区别,rc不需要这个资源)
    matchLabels:
      k8s: oslee
  #pod模板,就是编写pod资源
  template:
    metadata:
      name: pod-rs
      labels:
        k8s: oslee
    spec:
      containers:
      - name: c1
        image: harbor.oslee.com/oslee-private/my-nginx:v2
        ports:
        - containerPort: 80
        command: ["nginx","-g","daemon off;"]

[root@k8s1 rs]# kubectl apply -f rs.yaml 
replicaset.apps/rs01 created

2.基于标签表达式创建rs资源

bash 复制代码
[root@k8s1 rs]# cat rs.yaml 
apiVersion: apps/v1
kind: ReplicaSet
metadata:
  name: rs01
spec: 
  #控制pod副本的数量(k8s系统集群中,匹配到标签的数量)
  replicas: 9
  #选择需要创建副本的pod的标签
  selector:
    #1,声明基于标签匹配pod(这里就是与rc控制器的区别,rc不需要这个资源)
    #matchLabels:
    #2,基于标签表达式匹配pod
    matchExpressions:
    #指定标签的key值(:左边的)
    - key: k8s
      #指定key和value的关系,4个值可以选择
      #第一个In:只要
      #第二个Notin:只要不..
      #第三个值Exists:只要key匹配成功就行,value可以使任意值;
      #第四个值DoesNotExist:只要不存在指定的key,就算匹配成功;
      operator: In
      #指定value的列表
      values:
      - oslee
      - lee

  #pod模板,就是编写pod资源
  template:
    metadata:
      name: pod-rs
      labels:
        k8s: lee
    spec:
      containers:
      - name: c1
        image: harbor.oslee.com/oslee-private/my-nginx:v1
        ports:
        - containerPort: 80
        command: ["nginx","-g","daemon off;"]

[root@k8s1 rs]# kubectl apply -f rs.yaml 
replicaset.apps/rs01 created

三、rs资源的升级和回滚

  1. 方式与rc升级差不多;
  2. 可以全部删除由rs拉起新的pod,也可以一个一个pod删除,就等于逐渐的一个一个pod进行升级和回滚,也叫金丝雀发布。
  3. 在rs资源中,我们先不细讲,等到deployments资源时,会详细讲这个发布机制;

==============================至此,已成艺术===============================

相关推荐
这是谁的博客?8 小时前
微服务架构设计模式深度解析:从拆分策略到容灾机制
微服务·设计模式·云原生·架构·架构设计·后端开发·分布式系统
阿里云云原生10 小时前
AI 代码评审的下一个阶段:从“看 Diff”到“看上下文”,工程化落地还有多远?
云原生
姚不倒10 小时前
从零实现一个基于 Ollama + Go + MySQL 的 Text-to-SQL 智能体(M1 实战)
sql·mysql·云原生·golang
身如柳絮随风扬11 小时前
Docker 部署 MongoDB:从零搭建到生产环境配置详解
mongodb·docker·容器
Kingairy13 小时前
Docker环境安装
运维·docker·容器
向上的车轮16 小时前
何时使用Serverless?
云原生·serverless
淡漠的蓝精灵17 小时前
Pulsar 入门:云原生分布式消息流平台
分布式·其他·云原生
牛奶咖啡1317 小时前
k8s容器编排技术实践——OpenEuler的k8s高可用集群构建实战
云原生·kubernetes·信创·openeuler·keepalived·haproxy·k8s高可用集群部署
步步为营DotNet17 小时前
探索.NET 11:.NET Aspire 在云原生微服务治理中的创新实践
微服务·云原生·.net
Benszen17 小时前
docker架构
docker·容器·架构