【Kubernetes】Deployment 控制器

Deployment 控制器

Kubernetes 通过创建 控制器 来管理 Pod 的生命周期。为了满足不同需求的场景,Kubernete 提供了不同的控制器,如 DeploymentDaemonSetJobCronJobStatefuleSet 等。

在这里插入图片描述
Pod 在 Kubernetes 中是存在生命周期的,因此需要有一种方式去操作和管理其状态和生命期。这就需要用到 Kubernetes 提供的控制器了。

试想一下以下两种场景:

  • 在双十一期间,用户访问量暴增,服务器正承受着巨大的压力。
  • node 节点突然宕机了,运行在其上的 Pod 不能正常提供服务了。

如何解决这两种问题?

开发人员当然可以手动增加 node 节点,以启动更多的 Pod 来应对暴增的访问量;或者通过动重启 node 节点来达到重新启动 Pod 的目的。但是,对于一个大型且复杂的系统来说,采用人工的方式去解决这样的问题太不现实了。

利用 Kubernetes 的控制器,可以非常方便地解决问题

  • 当 Pod 数量不够时,控制器会自动增加 Pod 的副本,以应对客户端的请求。
  • 当 Pod 出现故障时,控制器会自动在其他合适的 node 节点启动新的 Pod。

下表列举了 Kubernetes 提供的几种控制器,其中最常用的是 Deployment。

控制器
说明
Deployment定义无状态管理的 Pod。该控制器可以定义 Pod 的数量、更新方式、使用的镜像,资源限制等。
DaemonSet将 Pod 定义为节点的守护进程。该控制器适合运行那些在后台运行的应用。
Job将 Pod 定义为一次性任务。该控制器可以保证批处理任务的 Pod 能成功运行。
CronJob将 Pod 定义为周期性任务计划。该控制器可以保证批处理任务的 Pod 能成功运行。
StatefuleSet定义有状态管理的 Pod。该控制器可以保证 Pod 具有固定的网络标记、持久化存储、顺序部署和扩展、顺序滚动更新等。

Deployment 控制器将 Pod 部署成无状态的应用,它只关心 Pod 的 数量更新方式使用的镜像资源限制 等。由于是无状态的管理方式,因此在 Deployment 控制器中没有 角色顺序 的概念,即在 Deployment 控制器中 没有状态

通过使用 Deployment 控制器,开发人员可以 部署 Pod设置 Pod 的副本实现 Pod 的升级与回滚。在 YAML 文件中描述清楚了 Deployment 控制器的目标是什么,Deployment 控制器会自动完成对 Pod 和 ReplicaSet 的管理。Kubernetes 可以直接运行一个新的 Deployment 控制器,也可以用一个新的 Deployment 控制器替换旧的 Deployment 控制器。

🚀 ReplicaSet 是下一代 副本控制器,可以独立使用。但在 Kubermetes 中,它主要被 Deployment 用来进行 Pod 的创建、更新和删除。在使用 Deployment 控制器时,它会自动创建 ReplicaSets,并对其进行管理。

Deployment 控制器、ReplicaSet 和 Pod 之间的关系如下图所示。
在这里插入图片描述
下面介绍创建和更新 Deployment 的过程。

  • 创建 Deployment 的过程。在用户创建 Deployment 时,Kubernetes 会创建一个 ReplicaSet。ReplicaSet 在后台根据指定的副本数创建 Pod,并检查 Pod 的状态,以确定 Pod 是启动成功还是失败。
  • 更新 Deployment 的过程。当用户更新 Deployment 时,Kubernetes 会创建一个新的 ReplicaSet。Deployment 会将 Pod 从旧的 ReplicaSet 中迁移到新的 ReplicaSet 中。
    • 如果迁移失败或 Pod 不稳定,则 Deployment 会自动回滚到上一个版本。
    • 如果迁移成功,则 Deployment 将清除旧的、不必要的 ReplicaSet。

在这里插入图片描述

  • 17
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

G皮T

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值