K8S常用的控制器

Pod与controllers(控制器)的关系
• controllers:在集群上管理和运行容器的对象
• 通过label-selector相关联
• Pod通过控制器实现应用的运维,如伸缩,滚动升级等
K8S常用的控制器_第1张图片

1. Deployment

• 部署无状态应用
• 管理Pod和ReplicaSet
• 具有上线部署、副本设定、滚动升级、回滚等功能
• 提供声明式更新,例如只更新一个新的Image
应用场景:Web服务,微服务
更新策略
maxSurge最多可用多少个,或者百分比,如果百分比不足1将补1
maxUnavailable 更新过程中最多不可用为多少个,或者可以写百分比,如果百分比不足1将补1
创建deployment的时候会根据pod模板创建rs,
pod的名字格式 deployment的name-rs的name-随机字符串

2. DaemonSet (简称ds)

官网文档地址https://kubernetes.io/docs/concepts/workloads/controllers/daemonset/
• 在每一个Node上运行一个Pod
• 新加入的Node也同样会自动运行一个Pod
• 也支持滚动更新
• 也支持pod死亡重新拉起一个新的,包括健康监测
更新类型type
RollingUpdate
OnDelete:在删除的时候更新
更新策略
只有maxUnavailabl(这里的数量指的节点数量)一次更新几个节点也可以百分比 只能先删1或多个个节点的在更新一个, 删除以后更新
kubectl set 也支持ds
应用场景:Agent
而且创建daemonset的时候,因为是每个节点一个也可以使用hostNetwork、hostIPC、hostPID,使用宿主机网络,能做到访问宿主机直接访问该服务,在pod模板中定义

3. Job

官网文档地址:https://kubernetes.io/docs/concepts/workloads/controllers/jobs-run-to-completion/
Job分为普通任务(Job)和定时任务(CronJob)
• 一次性执行
应用场景:离线数据处理,视频解码等业务

4. CronJob

官网文档地址:https://kubernetes.io/docs/tasks/job/automated-tasks-with-cron-jobs/
定时任务,像Linux的Crontab一样。
• 定时任务
应用场景:通知,备份

小结:
• Deployment:无状态部署
• DaemonSet:守护进程部署
• Job & CronJob:批处理

你可能感兴趣的:(kubernetes)