虚拟主机域名注册-常见问题其他问题 → 其他问题

什么是Kubernetes Operator模式

  Operator 模式

  Operator 是 Kubernetes 的扩展软件,它利用 定制资源 管理应用及其组件。 Operator 遵循 Kubernetes 的理念,特别是在控制器 方面。

  初衷

  Operator 模式旨在捕获(正在管理一个或一组服务的)运维人员的关键目标。 负责特定应用和 service 的运维人员,在系统应该如何运行、如何部署以及出现问题时如何处理等方面有深入的了解。

  在 Kubernetes 上运行工作负载的人们都喜欢通过自动化来处理重复的任务。 Operator 模式会封装你编写的(Kubernetes 本身提供功能以外的)任务自动化代码。

  Kubernetes 上的 Operator

  Kubernetes 为自动化而生。无需任何修改,你即可以从 Kubernetes 核心中获得许多内置的自动化功能。 你可以使用 Kubernetes 自动化部署和运行工作负载, 甚至 可以自动化 Kubernetes 自身。

  Kubernetes 的 Operator 模式概念允许你在不修改 Kubernetes 自身代码的情况下,通过为一个或多个自定义资源关联控制器 来扩展集群的能力。 Operator 是 Kubernetes API 的客户端,充当 自定义资源 的控制器。

  Operator 示例

  使用 Operator 可以自动化的事情包括:

  按需部署应用

  获取/还原应用状态的备份

  处理应用代码的升级以及相关改动。例如,数据库 schema 或额外的配置设置

  发布一个 service,要求不支持 Kubernetes API 的应用也能发现它

  模拟整个或部分集群中的故障以测试其稳定性

  在没有内部成员选举程序的情况下,为分布式应用选择首领角色

  想要更详细的了解 Operator?下面是一个示例:

  有一个名为 SampleDB 的自定义资源,你可以将其配置到集群中。

  一个包含 Operator 控制器部分的 Deployment,用来确保 Pod 处于运行状态。

  Operator 代码的容器镜像。

  控制器代码,负责查询控制平面以找出已配置的 SampleDB 资源。

  Operator 的核心是告诉 API 服务器,如何使现实与代码里配置的资源匹配。

  如果添加新的 SampleDB,Operator 将设置 PersistentVolumeClaims 以提供 持久化的数据库存储,设置 StatefulSet 以运行 SampleDB,并设置 Job 来处理初始配置。

  如果你删除它,Operator 将建立快照,然后确保 StatefulSet 和 Volume 已被删除。

  Operator 也可以管理常规数据库的备份。对于每个 SampleDB 资源,Operator 会确定何时创建(可以连接到数据库并进行备份的)Pod。这些 Pod 将依赖于 ConfigMap 和/或具有数据库连接详细信息和凭据的 Secret。

  由于 Operator 旨在为其管理的资源提供强大的自动化功能,因此它还需要一些 额外的支持性代码。在这个示例中,代码将检查数据库是否正运行在旧版本上, 如果是,则创建 Job 对象为你升级数据库。

  部署 Operator

  部署 Operator 最常见的方法是将自定义资源及其关联的控制器添加到你的集群中。 跟运行容器化应用一样,控制器通常会运行在 控制平面 之外。 例如,你可以在集群中将控制器作为 Deployment 运行。

  使用 Operator

  部署 Operator 后,你可以对 Operator 所使用的资源执行添加、修改或删除操作。 按照上面的示例,你将为 Operator 本身建立一个 Deployment,然后:

  kubectl get SampleDB # 查找所配置的数据库

  kubectl edit SampleDB/example-database # 手动修改某些配置

  可以了!Operator 会负责应用所作的更改并保持现有服务处于良好的状态。

  编写你自己的 Operator

  如果生态系统中没可以实现你目标的 Operator,你可以自己编写代码。

  你还可以使用任何支持 Kubernetes API 客户端 的语言或运行时来实现 Operator(即控制器)。

  以下是一些库和工具,你可用于编写自己的云原生 Operator。

  Charmed Operator Framework

  Kopf (Kubernetes Operator Pythonic Framework)

  kubebuilder

  KubeOps (dotnet operator SDK)

  KUDO (Kubernetes 通用声明式 Operator)

  Metacontroller,可与 Webhooks 结合使用,以实现自己的功能。

  Operator Framework

  shell-operator




版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 bkook@qq.com 举报,一经查实,本站将立刻删除。
【 双击滚屏 】 【 推荐朋友 】 【 收藏 】 【 打印 】 【 关闭 】 【 字体: 】 
上一篇:如何启动Docker容器
下一篇:linux教程:匿名访问模式
  >> 相关文章
没有相关文章。

服务热线

198-9911-5815

功能和特性

价格和优惠

技术支持及售后

微信关注