Kubernetes中Ansible运算符简介

多年来,Ansible一直是基础架构自动化的首选。 随着Kubernetes的采用猛增,Ansible在新兴的容器编排生态系统中继续发光。

Ansible使用YAML描述所需的世界状态,自然适合Kubernetes工作流程。 包括Automation Broker在内的多个项目正在使Ansible适应在特定的API之后使用。 本文将重点介绍由Ansible核心团队和Automation Broker开发人员共同努力创建的一种新技术,该技术使用Ansible轻松创建操作员。

什么是运算符?

Operator是Kubernetes控制器,用于在集群中部署和管理服务或应用程序。 它使人类操作知识和最佳实践自动化,以保持服务的运行和健康。 输入以定制资源的形式接收。 让我们以Memcached运算符为例来进行介绍。

可以将Memcached Operator部署为在群集中运行的服务,并且它包括名为Memcached的资源的自定义资源定义(CRD)。 最终用户创建该自定义资源的实例,以描述Memcached部署的外观。 以下示例请求具有三个Pod的Deployment。


   
   
apiVersion: "cache.example.com/v1alpha1"
kind: "Memcached"
metadata:
  name: "example-memcached"
spec:
  size: 3

运营商的工作称为对帐-不断确保“规格”中指定的内容与实际情况相符。 此示例操作员将Pod管理委托给Deployment控制器。 因此,尽管它不直接创建或删除Pod,但如果您更改大小,则操作员的对帐循环可确保将新值应用于它创建的Deployment资源。

成熟的操作员可以部署,升级,备份,修复,扩展和重新配置其管理的应用程序。 如您所见,Operator不仅提供了一种仅使用本机Kubernetes API部署任意服务的简单方法; 它启用了整天的第二天(部署后,例如更新,备份等)管理,仅受您可以编写代码的限制。

创建一个运算符

Operator SDK易于上手。 它奠定了新操作员的框架,其中已经处理了许多复杂的部分。 您可以集中精力定义自定义资源,并在Go中编码对帐逻辑。 SDK可以节省大量时间和持续的维护负担,但您最终仍将拥有大量软件项目。

Ansible最近被引入到Operator SDK中,这是一种更简单的制造Operator的方式,不需要编码。 要创建操作员,您只需:

  • 以YAML形式创建CRD
  • 通过创建Ansible角色或剧本来定义对帐应执行的操作

一直以来都是YAML-Kubernetes用户熟悉的体验。

它是如何工作的?

有一个预先存在的Ansible Operator基本容器映像,其中包括Ansible,ansible -runner和该Operator的可执行服务。 SDK有助于在其上构建一层,以添加一个或多个CRD,并将每个CRD与Ansible角色或剧本相关联。

运行时,操作员将使用Kubernetes功能“监视”已定义类型的任何资源的更改。 收到此类通知后,它会协调已更改的资源。 操作员运行相应的角色或剧本,有关资源的信息作为extra-vars传递给Ansible。

在Kubernetes中使用Ansible

经过几次迭代,Ansible社区产生了一个非常易于使用的模块,用于与Kubernetes一起工作。 特别是如果您对Ansible 2.6之前的Kubernetes模块有任何经验,那么您可以自己看一下k8s模块 。 创建,检索和更新资源是任何Kubernetes用户都熟悉的自然体验。 它使创建操作员变得容易得多。

试试看

如果您需要构建Kubernetes Operator,使用Ansible可以节省时间和复杂性。 要了解更多信息,请转到Operator SDK文档,并阅读基于Ansible的Operators 入门指南 。 然后加入我们到Operator Framework邮件列表中 ,让我们知道您的想法。


Michael Hrivnak将于10月29日至31日在美国田纳西州纳什维尔举行的LISA18 上展示 Kubernetes 上的自动化多服务部署

翻译自: https://opensource.com/article/18/10/ansible-operators-kubernetes

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值