Red Hat 与微软、谷歌 Cloud 和 Amazon Web Services 合作,推出了 OperatorHub.io。OperatorHub.io 是一个公共注册表,用于查找由 Kubernetes Operators 支持的服务。
Operators 最初由 CoreOS 于 2016 年推出,旨在成为特定于应用程序的控制器,通过扩展 Kubernetes API 为 Kubernetes 用户创建、配置和管理应用程序实例。此外,Kubernetes 用户可以从 Operators 那里获得自动执行例程、复杂任务、更新、备份、扩展应用程序等方面的好处。
Operators 是一种打包、部署和管理应用程序的方法,这些应用程序部署在 Kubernetes 上,并使用 Kubernetes API 和 kubectl 工具进行管理,它们被称为 Kubernetes 应用程序。
为了简化 Kubernetes 应用程序的构建,Red Hat 和 Kubernetes 开源了Operators框架。Operator 是一个工具包,提供了以下主要内容:
Operators SDK——使开发人员能够根据他们的专业知识构建 Operators,而无需了解 Kubernetes API 的复杂性;
Operator Lifecycle Manager——监督在 Kubernetes 集群上运行的所有 Operators 的安装、更新和管理等生命周期;
Operator Metering——为提供专门服务的 Operators 启用使用情况报告。
Operator SDK 支持使用 Go 语言、Ansible 或 Helm 等一系列语言来开发 operator。构建 Go operator 的基本工作流程是这样的:
使用 SDK 命令行界面(CLI)创建新的 operator 项目;
通过添加 Custom Resource Definitions(CRD)来定义新的资源 API;
定义控制器来监控和协调资源;
使用 SDK 和控制器运行时 API 编写控制器的协调逻辑;
使用 SDK CLI 构建并生成 operator 部署清单。
要了解有关编写 operator 的更多信息,可以参考 Go、Ansible 和 Helm 的相关指南。此外,可以在operator-sdk-samples存储库上探索使用 Operator SDK 构建的一系列 operator。
谷歌 Cloud 产品经理 Aparna Sinha 表示,他们已经在构建和认证社区开发的 Operators 上做了大量投入,并且很高兴看到超过 40%的谷歌 Kubernetes Engine(GKE)集群运行的是有状态的应用程序。
Red Hat 社区开发总监 Diane Mueller 认为,要考虑将一个 operator 纳入到 OperatorHub.io,这个 operator 必须能够成功地展示集群生命周期功能,可通过 Operators 框架的 Operators 生命周期管理来维护打包过程,并为目标用户提供可接受的文档。
OperatorHub.io 中目前列出的 operator 包括:AWS Operator、Couchbase Autonomous Operator,CrunchyData PostgreSQL etcd Operator、Kubernetes 的 Jaeger Operator、Kubernetes Federation Operator、MongoDB Enterprise Operator、Percona MySQLOperator、PlanetScale 的 Vitess Operator、Prometheus Operator 和 Redis Operator。
要提交 operator,必须向 OperatorHub.io 社区 operator 存储库提交 PR,在 community-operator/目录中创建一个新目录,目录名称与提交的 operator 名称保持一致:
请注意,目录名称应该与 package.yaml 中新 operator 的名称相匹配,这一点很重要。
每个 OperatorHub 条目都包含所有 Custom Resource Definitions(CRD)、访问控制规则、安装和安全运行 operator 所需的容器镜像引用、功能说明以及受支持的 Kubernetes 版本。
有关提交或更新 operator 的更多详细信息,请参阅贡献指南。
查看英文原文:OperatorsHub.io, a Public Registry for Kubernetes Operators
评论 1 条评论