zoukankan      html  css  js  c++  java
  • 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
    ~~~

  • 相关阅读:
    杭电2054
    M1/M2总结
    软件开发相关的读书笔记 问题与方法
    代码复审1234跟我一起来
    电梯调度算法简述
    Pair_Work Project
    读书笔记摘录:
    Individual Project
    个人阅读作业——软件工程M1/M2的总结
    个人阅读作业2
  • 原文地址:https://www.cnblogs.com/kebibuluan/p/15719605.html
Copyright © 2011-2022 走看看