Black lives matter.
We stand in solidarity with the Black community.
Racism is unacceptable.
It conflicts with the core values of the Kubernetes project and our community does not tolerate it.
We stand in solidarity with the Black community.
Racism is unacceptable.
It conflicts with the core values of the Kubernetes project and our community does not tolerate it.
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(即控制器)。