Operator 是 Kubernetes 的扩展软件,它利用自定义资源管理应用及其组件。 Operator 遵循 Kubernetes 的理念,特别是在控制环方面。
Operator 模式旨在捕获(正在管理一个或一组服务的)运维人员的关键目标。 负责特定应用和 service 的运维人员,在系统应该如何运行、如何部署以及出现问题时如何处理等方面有深入的了解。
在 Kubernetes 上运行工作负载的人们都喜欢通过自动化来处理重复的任务。Operator 模式会封装您编写的(Kubernetes 本身提供功能以外的)任务自动化代码。
Kubernetes 为自动化而生。无需任何修改,您即可以从 Kubernetes 核心中获得许多内置的自动化功能。 您可以使用 Kubernetes 自动化部署和运行工作负载, 甚至 可以自动化 Kubernetes 自身。
Kubernetes 控制器控制器通过 apiserver 监控集群的公共状态,并致力于将当前状态转变为期望的状态。 使您无需修改 Kubernetes 自身的代码,即可以扩展集群的行为。 Operator 是 Kubernetes API 的客户端,充当自定义资源的控制器。
使用 Operator 可以自动化的事情包括:
想要更详细的了解 Operator?这儿有一个详细的示例:
部署 Operator 最常见的方法是将自定义资源及其关联的控制器添加到您的集群中。跟运行容器化应用一样,Controller 通常会运行在 控制平面容器编排层,它暴露 API 和接口来定义、部署容器和管理容器的生命周期。 之外。例如,您可以在集群中将控制器作为 Deployment 运行。
部署 Operator 后,您可以对 Operator 所使用的资源执行添加、修改或删除操作。按照上面的示例,您将为 Operator 本身建立一个 Deployment,然后:
kubectl get SampleDB # 查找所配置的数据库
kubectl edit SampleDB/example-database # 手动修改某些配置
可以了!Operator 会负责应用所作的更改并保持现有服务处于良好的状态
如果生态系统中没可以实现您目标的 Operator,您可以自己编写代码。在接下来一节中,您会找到编写自己的云原生 Operator 需要的库和工具的链接。
您还可以使用任何支持 Kubernetes API 客户端的语言或运行时来实现 Operator(即控制器)。
此页是否对您有帮助?
感谢反馈。如果您有一个关于如何使用 Kubernetes 的特定的、需要答案的问题,可以访问 Stack Overflow. 在 GitHub 仓库上登记新的问题 报告问题 或者 提出改进建议.