• k8s中ReplicaSet控制器的作用


    ## ReplicaSet(RS)
    
    ​    ReplicaSet的主要作用是**保证一定数量的pod正常运行**,它会持续监听这些Pod的运行状态,一旦Pod发生故障,就会重启或重建。同时它还支持对pod数量的扩缩容和镜像版本的升降级。
    
    ![](assets/image-20200612005334159.png)
    
    ReplicaSet的资源清单文件:
    
    ~~~yaml
    apiVersion: apps/v1 # 版本号
    kind: ReplicaSet # 类型       
    metadata: # 元数据
      name: # rs名称 
      namespace: # 所属命名空间 
      labels: #标签
        controller: rs
    spec: # 详情描述
      replicas: 3 # 副本数量
      selector: # 选择器,通过它指定该控制器管理哪些pod
        matchLabels:      # Labels匹配规则
          app: nginx-pod
        matchExpressions: # Expressions匹配规则
          - {key: app, operator: In, values: [nginx-pod]}
      template: # 模板,当副本数量不足时,会根据下面的模板创建pod副本
        metadata:
          labels:
            app: nginx-pod
        spec:
          containers:
          - name: nginx
            image: nginx:1.17.1
            ports:
            - containerPort: 80
    ~~~
    
    在这里面,需要新了解的配置项就是`spec`下面几个选项:
    
    - replicas:指定副本数量,其实就是当前rs创建出来的pod的数量,默认为1
    
    - selector:选择器,它的作用是建立pod控制器和pod之间的关联关系,采用的Label Selector机制
    
      ​               在pod模板上定义label,在控制器上定义选择器,就可以表明当前控制器能管理哪些pod了
    
    - template:模板,就是当前控制器创建pod所使用的模板板,里面其实就是前一章学过的pod的定义
    
    **创建ReplicaSet**
    
    创建pc-replicaset.yaml文件,内容如下:
    
    ~~~yaml
    apiVersion: apps/v1
    kind: ReplicaSet   
    metadata:
      name: pc-replicaset
      namespace: dev
    spec:
      replicas: 3
      selector: 
        matchLabels:
          app: nginx-pod
      template:
        metadata:
          labels:
            app: nginx-pod
        spec:
          containers:
          - name: nginx
            image: nginx:1.17.1
    ~~~

  • 相关阅读:
    py2与py3的字符编码的区别
    深浅拷贝大法
    列表、字典、元组、集合的内置方法
    数据类型的内置方法
    与while和for的爱恨情仇
    三种格式化输出以及运算符和if
    在outlook中发邮件判断邮件发送成功的方法
    修練營ASP.NET]淺談多層式架構 (Multi Tiers)
    软考编译原理小结
    0型文法、1型文法、2型文法、3型文法
  • 原文地址:https://www.cnblogs.com/kebibuluan/p/15719605.html
Copyright © 2020-2023  润新知