Kubespray 和 Ansible,如何分离配置(即清单和其他配置文件)

问题描述 投票:0回答:2

首先,我是一个完全的 ansible playbook 菜鸟。我正忙着试图理解工作场所的混乱情况。我尝试遵循自述文件的快速入门指南,同时也遵循我公司的 kubespray fork。现在真正困扰我的一件事是,我们个人集群的配置遍布整个分支。有没有办法将集群的个人配置文件与 kubespray 存储库分开?我的想法是,我有一个 kubespray 目录,它是 kubespray 存储库的分支或主目录,并且在运行“kubespray”时,我将集群的配置提供给 kubespray。因为目前我看不出这是一种干净且可管理的方式来通过提交维护集群资源,同时在我想要应用新版本时尝试更新 kubespray。当前的过程看起来一团糟!

kubernetes ansible kubespray
2个回答
3
投票

所以我最终找到了一个很好的解决方案,可以从 kubespray 存储库中推断出自定义的个人配置。我认为这对于经验丰富的 Ansible 用户来说实际上是非常明显的,但结构如下。

.
├── README.md
├── bin
├── docs
├── inventory
│   └── prod
│       ├── group_vars
│       │   ├── all
│       │   │   ├── all.yml
│       │   │   ├── azure.yml
│       │   │   ├── coreos.yml
│       │   │   ├── docker.yml
│       │   │   ├── oci.yml
│       │   │   └── openstack.yml
│       │   ├── balance.yml
│       │   ├── etcd.yml
│       │   └── k8s-cluster
│       │       ├── addons.yml
│       │       ├── ip.yml
│       │       ├── k8s-cluster.yml
│       │       ├── k8s-net-calico.yml
│       │       ├── k8s-net-canal.yml
│       │       ├── k8s-net-cilium.yml
│       │       ├── k8s-net-contiv.yml
│       │       ├── k8s-net-flannel.yml
│       │       ├── k8s-net-kube-router.yml
│       │       └── k8s-net-weave.yml
│       └── hosts.ini
└── kubespray

现在在主目录中,您可以像这样运行 kubespray 命令

ansible-playbook \
        $(pwd)/kubespray/scale.yml \
        --inventory $(pwd)/inventory/prod/hosts.ini \
        --user root \
        --become \
        --become-user=root \
        --limit=$node \
        --extra-vars 'ansible_python_interpreter=/usr/bin/python3' \
        --flush-cache

这种结构的伟大之处在于,您现在可以使用 git 仅跟踪对基础设施的更改,而不必担心干扰 Kubespray 中的文件。另外,通过将 kubespray 作为 gitsubmodule,您还可以通过服务器配置来跟踪不同版本。只是一般的 git 优点。

无论如何,我希望有人觉得这很有用。我已经使用了几个月,发现它比在 kubespray 模块中进行配置要干净得多。


0
投票

您可以依赖您自己的 ansible 项目文件夹中的 Kubespray 集合。甚至在自己的 git 存储库中隔离环境。

my_project/collections/requirements.yml:


收藏:

© www.soinside.com 2019 - 2024. All rights reserved.