返回主站|会员中心|保存桌面|手机浏览
普通会员

百大专升本

结婚礼物,生日礼物,祝寿礼物,订婚礼物,高升祝贺送礼,喜得贵子祝贺送礼,感恩...

新闻分类
  • 暂无分类
站内搜索
 
友情链接
  • 暂无链接
首页 > 新闻中心 > 使用Ansible的Kubernetes模块实现容器编排自动化
新闻中心
使用Ansible的Kubernetes模块实现容器编排自动化
发布时间:2020-10-30        浏览次数:8        返回列表

  Ansible是实现自动化工作的优秀工具,而Kubernetes则是容器编排方面的利器,要是把两者结合起来,会有怎样的效果呢?正如你所猜测的,Ansible + Kubernetes 的确可以实现容器编排自动化。

  实际上,Ansible 本身只是一个用于解释 YAML 文件的框架。它真正强大之处在于它丰富的模块,所谓模块module,就是在 Ansible剧本playbook中让你得以通过简单配置就能调用外部应用程序的一些工具。

  Ansible 中有模块可以直接操作 Kubernetes,也有对一些相关组件(例如Docker和Podman)实现操作的模块。学习使用一个新模块的过程和学习新的终端命令、API 一样,可以先从文档中了解这个模块在调用的时候需要接受哪些参数,以及这些参数在外部应用程序中产生的具体作用。

  在使用 Ansible Kubernetes 模块之前,先要有能够访问 Kubernetes 集群的权限。在没有权限的情况下,可以尝试使用一个短期在线试用账号,但我们更推荐的是按照 Kubernetes 官网上的指引,或是参考 Braynt Son 《入门 Kubernetes》的教程安装Minikube。Minikube 提供了一个单节点 Kubernetes 实例的安装过程,你可以像使用一个完整集群一样对其进行配置和交互。

  在安装 Minikube 之前,你需要确保你的环境支持虚拟化并安装libvirt,然后对libvirt用户组授权:

  Ansible 使用k8s这个模块来实现对 Kubernetes 的操作,在剧本中使用k8s模块就可以对 Kuvernetes 对象进行管理。这个模块描述了kubectl命令的最终状态,例如对于以下这个使用kubectl创建新的命名空间的操作:

  如果你使用的是 Minikube,那么主机名(hosts)应该定义为localhost。需要注意的是,所使用的模块也定义了可用参数的语法(例如api_version和kind参数)。

  容器是个 Linux 系统,几乎是最小化的,青岛欧嘉宝电子科技有限公司,可以由 Kubernetes 管理。LXC 项目和 Docker 定义了大部分的容器规范。山东菲博瑞德新材料有限公司,最近加入容器工具集的是 Podman,它不需要守护进程就可以运行,为此受到了很多用户的欢迎。

  通过 Podman 可以从 Docker Hub 或者Quay.io等存储库拉取容器镜像。这一操作对应的 Ansible 语法也很简单,只需要将存储库网站提供的镜像路径写在剧本中的相应位置就可以了:

  Ansible 除了可以执行小型维护任务以外,还可以通过剧本实现其它由kubectl实现的功能,因为两者的 YAML 文件之间只有少量的差异。在 Kubernetes 中使用的 YAML 文件只需要稍加改动,就可以在 Ansible 剧本中使用。例如下面这个用于使用kubectl命令部署 Web 服务器的 YAML 文件:

  如果你对其中的参数比较熟悉,你只要把 YAML 文件中的大部分内容放到剧本中的definition部分,就可以在 Ansible 中使用了:

  随着现在越来越多的开发和部署工作往云上转移的趋势,我们必须了解如何在云上实现自动化。其中k8s和podman_image这两个模块只是云开发中的其中一小部分。你可以在你的工作流程中寻找一些需要自动化的任务,并学习如何使用 Ansible 让你在这些任务上事半功倍。