0

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

4

1 回答 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 回答