使用 Kubernetes 动态清单插件
Kubernetes 动态清单插件
与 Pod 交互的最佳方式是使用 Kubernetes 动态清单插件,该插件使用控制器节点上可用的 kubectl
命令行查询 Kubernetes API,并告诉 Ansible 可以管理哪些 Pod。
需求
要使用 Kubernetes 动态清单插件,您必须在控制节点(运行 Ansible 的主机)上安装 Kubernetes Python 客户端 和 kubectl。
$ pip install kubernetes
请参考 Kubernetes 官方文档,了解如何在给定的操作系统上 安装 kubectl。
要使用此 Kubernetes 动态清单插件,您需要首先在 ansible.cfg
文件中指定以下内容来启用它。
[inventory]
enable_plugins = kubernetes.core.k8s
然后,在您的工作目录中创建一个以 .k8s.yml
或 .k8s.yaml
结尾的文件。
kubernetes.core.k8s
清单插件采用与任何其他 Kubernetes 模块相同的身份验证信息。
这是一个有效的清单文件示例。
plugin: kubernetes.core.k8s
执行 ansible-inventory --list -i <filename>.k8s.yml
将创建一个准备使用 Ansible 配置的 Pod 列表。
您还可以提供命名空间来收集有关给定命名空间中特定 Pod 的信息。例如,要收集有关 test
命名空间下的 Pod 的信息,您将指定 namespaces
参数。
plugin: kubernetes.core.k8s
connections:
- namespaces:
- test
使用加密配置文件
由于清单配置文件以纯文本形式包含与 Kubernetes 相关的敏感信息,存在安全风险,因此您可能需要加密整个清单配置文件。
您可以按如下方式加密有效的清单配置文件:
$ ansible-vault encrypt <filename>.k8s.yml
New Vault password:
Confirm New Vault password:
Encryption successful
$ echo "MySuperSecretPassw0rd!" > /path/to/vault_password_file
您可以使用此加密的清单配置文件:
$ ansible-inventory -i <filename>.k8s.yml --list --vault-password-file=/path/to/vault_password_file
另请参阅
- Kubernetes Python 客户端 - 问题追踪器
Kubernetes Python 客户端的问题追踪器
- Kubectl 安装
安装 Kubectl 的安装指南
- 使用 playbook
playbook 入门介绍
- 使用加密变量和文件
在 playbook 中使用 Vault