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 ~~~
posted on 2021-12-22 15:06 luzhouxiaoshuai 阅读(105) 评论(0) 编辑 收藏 举报