Kubernetes手记(7)- 控制器配置清单
  TEZNKK3IfmPf 2023年11月14日 36 0

这是我参与更文挑战的第10天,活动详情查看: ​​更文挑战​

7.1 ReplicaSet 控制器

详见:kubectl explain replicaset

  • 清单规范
    •  
apiVersion  <string>    # api 版本号,一般为 apps/v1
kind <string> # 资源类别,标记创建什么类型的资源
metadata <Object> # POD 元数据
spec <Object> # 元数据
复制代码

7.1.1 replicaset.spec 规范

    1.  
  1. replicas 副本数量,指定一个数字
  2. selector 标签选择器,可以使用 matchLabels、matchExpressions 两种类型的选择器来选中目标 POD
    1.  
matchLabels:直接给定键值
matchExpressions:基于给定的表达式来定义使用标签选择器:{key:"KEY",operator:"OPERATOR",value:[VAL1,VAL2,...]}
使用 key 与 value 进行 operator 运算,复合条件的才被选择
操作符:
In、NotIn:其 value 列表必须有值
Exists、NotExists:其 value 必须为空
复制代码
    1.  
  1. template 模板,这里面定义的就是一个 POD 对象,这个对象只包含了 pod.metadata 和 pod.spec 两部分。
    1.  

7.1.2 清单示例

apiVersion: apps/v1
kind: ReplicaSet
metadata:
name: myrs
namespace: default
spec:
replicas: 2
selector:
matchLabels:
app: myapp
release: canary
template:
metadata:
name: myapp-pod # 这个其实没用,因为创建的 POD 以 rs 的名字开头
labels:
app: myapp # 标签一定要符合 replicaset 标签选择器的规则,否则将陷入创建 pod 的死循环,直到资源耗尽
release: canary
spec:
containers:
- name: myapp-containers
image: ikubernetes/myapp:v1
ports:
- name: http
containerPort: 80
复制代码

7.2 Deployment控制器

Deployment 通过控制 ReplicaSet 来实现功能,除了支持 ReplicaSet 的扩缩容意外,还支持滚动更新和回滚等,还提供了声明式的配置,这个是我们日常使用最多的控制器。它是用来管理无状态的应用。

Deployment 在滚动更新时候,通过控制多个 ReplicaSet 来实现,ReplicaSet 又控制多个 POD,多个 ReplicaSet 相当于多个应用的版本。

Kubernetes手记(7)- 控制器配置清单

apiVersion  <string>    # apps/v1

kind <string> # 资源类别,标记创建什么类型的资源

metadata <Object> # POD 元数据

spec <Object> # 元数据
复制代码
【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

  1. 分享:
最后一次编辑于 2023年11月14日 0

暂无评论

推荐阅读
  TEZNKK3IfmPf   2023年11月14日   31   0   0 kubernetes
TEZNKK3IfmPf