Kubespray Ansible剧本促进了Kubernetes Ops的协作

今天的嘉宾帖子是开放式基础设施自动化项目的联合创始人,Digital Rebar以及SIG Cluster Ops的联合主席Rob Hirschfeld。  

为什么选择Kubespray?

使Kubernetes具有较强的可操作性是一个广为人知的优先事项,我跟踪了该项目的许多部署工作。的 孵化的Kubespray项目 我特别感兴趣,因为它使用流行的Ansible工具集在云和物理目标上构建健壮,可升级的集群。我相信使用操作员熟悉的工具可以扩大我们的社区。

我们很高兴看到Kubespray支持的平台的广泛性以及它如何很好地处理各种选项,例如将Ceph集成为 有状态集 持久性和Helm,可轻松上传应用程序。这些增加使我们能够完全整合 OpenStack Helm图表 ( 演示视频 )。

通过使用上游源代码而不是创建不同的安装脚本,我们可以获得更大社区的好处。这需要一些额外的开发工作;但是,我们认为,帮助共享运营实践可以使整个社区变得更强大。那也是背后的动机 SIG集群运营.

通过Kubespray提供强大的安装,我们可以专注于更广泛的运营问题。

例如,我们现在可以驱动并行部署,因此可以同时充分利用Kubespray启用的选项进行开发和测试。  

这有助于在自动化管道中将CentOS,Red Hat和Ubuntu上的内置测试销毁协调的Kubernetes安装。我们还可以使用以下命令从一个命令建立一个完整的教室环境 数字钢筋 提供者,租户和集群定义JSON。

让我们研究一下课堂示例:

首先,我们定义一个 JSON中的学生集群 像下面的代码片段

| {

 "attribs": {

   “ k8s-version”:“ v1.6.0”,

   “ k8s-kube_network_plugin”:“ calico”,

   “ k8s-docker_version”:“ 1.12”

 },

 "name": "cluster01",

 “ tenant”:“ cluster01”,

 "public_keys": {

   “ cluster01”:“ ssh-rsa AAAAB ..... user@example.com"

 },

 "provider": {

   “ name”:“ google-provider”

 },

 "nodes": [

   {

     “ roles”:[“ etcd”,“ k8s-addons”,“ k8s-master”],

     "count": 1

   },

   {

     “角色”:[“ k8s-worker”],

     "count": 3

   }

 ]

} |

然后我们运行 数字钢筋工作负载Multideploy.sh 参考脚本,该脚本检查部署文件以提取关键信息。基本上,它会自动执行以下步骤:

| 钢筋提供商创建{“名称”:“ google-provider”,[秘密内容]}

钢筋租户创建{“名称”:“ cluster01”}

钢筋部署创建[cluster01文件中的内容] |

部署创建命令将自动从提供程序请求节点。由于我们使用的是租户和SSH密钥,因此每个学生只能访问自己的集群。完成后,添加--destroy标志将撤消节点和部署的过程,但保留提供者和租户。

我们投资了使用Kubespray和Digital Rebar这样的示例的操作脚本,因为如果我们不能以一致的方式管理变体,那么我们注定会出现操作分散的情况。  

我很高兴看到社区的一部分,并成为社区的一部分,以在云和本地上实现企业级Kubernetes运营。这意味着我看到可共享/可重复使用的自动化出现了合理的模式。如果您甚至在实验规模上部署Kubernetes,我强烈建议观察(或更好地进行协作)这些努力。成为社区的一分子需要付出更多的前期努力,但是随着您从共享经验和改进中受益,您可以获得回报。

在进行大规模部署时,如何在不影响规模或安全性的情况下将系统设置为可重复和多平台的?

使用Kubespray和Digital Rebar作为可重复的基础,扩展变得更快,更容易。更好的是,直接使用上游可以使改进迅速循环回上游。这意味着我们将更接近于建立一个专注于Kubernetes运营方面的社区, SRE心态.

如果这很有趣,请与我们联系 集群运营SIG, Kubespray  or 数字钢筋 社区。 

-RackN联合创始人兼Cluster Ops SIG联合主席Rob Hirschfeld