首先,我是一个完整的 ansible 剧本菜鸟。我正忙于了解我工作场所的混乱情况。我尝试遵循自述文件的快速入门指南,同时也遵循我的公司 kubespray fork。现在真正困扰我的一件事是,我们个人集群的配置散布在整个分叉中。有没有办法将集群的个人配置文件与 kubespray 存储库分开?我的想法是我有一个 kubespray 目录,它是 kubespray 存储库的分支或主控,当运行“kubespray”时,我将集群的配置提供给 kubespray。因为目前我看不到这是一种干净且易于管理的方式,可以通过提交来维护集群资源,同时在我想应用新版本时尝试更新 kubespray。
问问题
198 次
1 回答
1
所以我最终找到了一个很好的解决方案,可以从 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 模块中进行配置要干净得多。
于 2021-01-06T09:19:23.063 回答