卓越飞翔博客卓越飞翔博客

卓越飞翔 - 您值得收藏的技术分享站
技术文章35060本站已运行393

构建 Kubernetes Operator 用于滚动更新

构建 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 存储库同步的配置管理安托斯

卓越飞翔博客
上一篇: Windows 上的 goland 无法识别导入并抛出错误
下一篇: 返回列表
留言与评论(共有 0 条评论)
   
验证码:
隐藏边栏