首页 > 后端开发 > Golang > 正文

构建 Kubernetes Operator 用于滚动更新

WBOY
发布: 2024-02-09 22:18:19
转载
438 人浏览过

构建 Kubernetes Operator 用于滚动更新

php小编小新在这里为大家介绍如何构建 Kubernetes Operator 用于滚动更新。Kubernetes Operator 是一种自定义控制器,可以扩展 Kubernetes 平台的功能。滚动更新是一种在不中断服务的前提下,逐步更新应用程序的方式。通过构建一个专门用于滚动更新的 Operator,我们可以更加灵活地管理应用程序的升级和回滚。本文将介绍构建 Kubernetes Operator 的基本步骤,并详细解释如何实现滚动更新功能。让我们一起深入了解吧!

问题内容

我创建了一个 Kubernetes 应用程序(例如部署 D1,使用 docker 映像 I1),它将在客户端集群上运行。

要求1:

现在,我想在每次更新我的 docker 镜像 I1 时滚动更新,而不需要客户端做任何努力 (不知何故,客户端集群应该自动拉取最新的docker镜像)

要求2:

每当我更新特定的 configMap 时,客户端集群都应该自动开始使用新的 configMap

我应该如何实现这个目标?

  1. 使用 Kubernetes Cronjobs ?
  2. Kubernetes 操作员?
  3. 或者其他什么?

我听说 k8s Operator 很有用

解决方法

要求 2 开始:

每当我更新特定的 configMap 时,客户端集群都应该 自动开始使用新的configMap

如果 configmap 已安装到部署中,它将自动更新,但是如果作为环境重新启动而注入是唯一的选项,除非您使用 sidecar 解决方案或重新启动进程。

参考:更新 configmap 而不重新启动 POD

我应该如何实现这一目标?

  • ImagePullpolicy 不是一个好的选择,但是,在这种情况下,需要手动干预才能重新启动部署,并且 从客户端提取最新图像,并且它不会在 受控方式。

使用 Kubernetes Cronjobs ?

  • 您将在哪一边运行 Cronjobs?如果是客户端就可以了 也是这样。

    否则,您可以使用公开的 API 来保持部署,这将运行作业到 当推送任何镜像时,使用最新标签更新部署 到您的 docker 注册表。

Kubernetes 操作员?

  • 运算符是一个很好的原生 K8s 选项,您可以用 Go 编写, Python 或您的首选语言,带/不带 Operator 框架或客户端库。

或者其他什么?

如果您只是想更新部署,请在部署或作业中运行 API,您可以以受控方式安排时间,操作员也不会出现任何问题,这将是一个更原生的问题如果您可以创建、管理和部署一个方法,那么这是一种很好的方法。

如果将来您需要从单一真实来源管理多个客户端的所有集群(部署、服务、防火墙、网络),您可以探索 Anthos

Git 存储库同步的配置管理安托斯

以上是构建 Kubernetes Operator 用于滚动更新的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:stackoverflow.com
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板