K8S之Pod控制器ReplicaSet(RS)

文章目录

Replication Controller(RC)

Replica Set(RS)

ReplicaSet的资源清单文件

创建RS

扩缩容

镜像升级

删除ReplicaSet

Replication Controller(RC)

RC是K8s集群中最早的保证Pod高可用的API对象。通过监控运行中的Pod来保证集群中运行指定数目的Pod副本。

指定的数目可以是多个也可以是1个;少于指定数目,RC就会启动运行新的Pod副本;多于指定数目,RC就会杀死多余的Pod副本。

即使在指定数目为1的情况下,通过RC运行Pod也比直接运行Pod更明智,因为RC也可以发挥它高可用的能力,保证永远有1个Pod在运行。

RC是K8s较早期的技术概念,只适用于长期伺服型的业务类型,比如控制小机器人提供高可用的Web服务。

Replica Set(RS)

RS是新一代RC,提供同样的高可用能力,区别主要在于RS后来居上,能支持更多种类的匹配模式。副本集对象一般不单独使用,而是作为Deployment的理想状态参数使用。

Kubernetes 官方建议使用 RS(ReplicaSet ) 替代 RC (ReplicationController ) 进行部署,RS 跟 RC 没有本质的不同,只是名字不一样,并且 RS 支持集合式的 selector (选择标签)

Replica Set的主要作用是保证一定数量的pod能够正常运行,它会持续监听这些pod的运行状态,一旦pod发生故障,就会对pod进行重启或重建。同时它还支持对pod数量的扩缩容和版本镜像的升级

ReplicaSet的资源清单文件

apiVersion: apps/v1 # 版本号

kind: ReplicaSet # 类型

metadata: # 元数据

name: # RS名称

namespace: # 所属命名空间

labels: #标签

controller: rs

spec: # 详情描述

replicas: 3 # pod副本数量

selector: # 选择器,通过它指定该控制器管理哪些pod

matchLabels: # 匹配规则,匹配该RS管理的指定标签的pod

app: nginx-pod

# matchExpressions: # Expressions匹配规则

# - {key: app, operator: In, values: [nginx-pod]}

template: # 创建的pod的配置信息模板,当副本数量不足时,会根据下面的模板创建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所使用的模板配置信息

创建RS

# 根据以上配置文件创建RS

[root@k8s-master ~]# vim pc-replicaset.yaml

apiVersion: apps/v1

kind: ReplicaSet

metadata:

name: pc-replicaset

namespace: test

labels:

controller: rs

spec:

replicas: 3

selector:

matchLabels:

app: nginx-pod

template:

metadata:

labels:

app: nginx-pod

spec:

containers:

- name: nginx

image: nginx:1.17.1

ports:

- containerPort: 80

# 创建运行3个nginx容器的pod的RS

# 创建

[root@k8s-master ~]# kubectl create -f pc-replicaset.y


䘏的意思,䘏的解释,䘏的拼音,䘏的部首
醉仙武礼包大全 醉仙武礼包激活码大全