新的Operator SDK可以轻松创建Kubernetes掌握器,以支配和管理群集中的做事或运用程序。
多年来,Ansible一贯是根本举动步伐自动化的首选。随着Kubernetes的采取量激增,Ansible连续在新兴的容器编排生态系统中大放异彩。
Ansible自适宜Kubernetes事情流程,利用YAML描述空想状态。包括Automation Broker在内的多个项目正在使Ansible适应特定API的利用。本文将重点先容一种新技能,该技能是由Ansible核心团队和Automation Broker的开拓职员共同创建的,它使Ansible以最小的努力创建Operator。

Operator是什么?
Operator是一个Kubernetes掌握器,用于支配和管理集群中的做事或运用程序。它可以自动化人类操作知识和最佳实践,以保持做事的运行和康健。输入以自定义资源的形式吸收。让我们以Memcached Operator为例进行谈论。
Memcached Operator可以支配为集群中运行的做事,它包含一个名为Memcached的自定义资源定义(CRD)。终极用户创建该自定义资源的实例,以描述Memcached Deployment的外不雅观。以下示例要求利用三个Pod进行支配。
apiVersion: \"大众cache.example.com/v1alpha1\"大众
kind: \"大众Memcached\公众
metadata:
name: \"大众example-memcached\"大众
spec:
size: 3
Operator的事情称为调和,持续确保“规范”中指定的内容与实际状态相匹配。此示例Operator将Pod管理委派给Deployment掌握器。因此,虽然它不直接创建或删除Pod,但如果变动大小,则Operator的折衷循环可确保将新值运用于它创建的Deployment资源。
成熟的Operator可以支配,升级,备份,修复,扩展和重新配置其管理的运用程序。如你所见,运Operator不仅供应了一种仅利用本机Kubernetes API支配任意做事的大略方法; 它可以实现完全的第二天(支配后,例如更新,备份等)管理,仅受你可以编码的内容的限定。
创建Operator
Operator SDK使你可以轻松入门。它规定了新Operator的框架,个中许多繁芜的部件已经处理完毕。你可以专注于定义自定义资源并在Go中编码折衷逻辑。SDK可以为你节省大量韶光和持续的掩护包袱,你终极仍将拥有一个本色性的软件项目。
Ansible最近被引入到Operator SDK中,作为一种更大略的制作运算符的方法,无需编码。 要创建Operator,你只需:
以YAML的形式创建CRD通过创建Ansible角色或playbook来定义折衷该当实行的操作这是YAML一贯以来的办法,对Kubernetes用户来说是一种熟习的体验。
如何事情
有一个预先存在的Ansible Operator基本容器映像,包括Ansible,ansible-runner和Operator的可实行做事。SDK有助于在顶部构建一个层,用于添加一个或多个CRD,并将每个CRD与Ansible角色或playbook干系联。
当它运行时,Operator利用Kubernetes功能“监视”对所定义类型的任何资源的变动。收到此类关照后,它会折衷变动的资源。Operator运行相应的role或playbook,有关资源的信息将作为extra-vars通报给Ansible。
在Kubernetes中利用Ansible
经由几次迭代,Ansible社区已经为Kubernetes供应了一个非常易于利用的模块。特殊是如果你对Ansible 2.6之前的Kubernetes模块有任何履历,那么你该当自己去看看k8s模块。创建,检索和更新资源是一种自然体验,任何Kubernetes用户都会对此感到熟习。 它使创建Operator变得更加随意马虎。
试试看
如果你须要构建一个Kubernetes Operator,利用Ansible这样做可以节省韶光和繁芜性。要理解更多信息,请阅读Operator SDK文档并完成基于Ansible Operator入门指南。
原文链接:
https://opensource.com/article/18/10/ansible-operators-kubernetes