【问题标题】:Kubespray ansible extra args for pods specifications are not deployed on the target k8s clusterKubespray ansible extra args for pods 规范未部署在目标 k8s 集群上
【发布时间】:2021-05-24 06:33:38
【问题描述】:

根据documentation,可以使用以下变量指定 API 服务器、控制器和调度程序组件的额外标志,以将插入 kubeadm 的配置参数的键值对字典的形式YAML 配置文件:

  • kube_kubeadm_apiserver_extra_args
  • kube_kubeadm_controller_extra_args
  • kube_kubeadm_scheduler_extra_args

但我真的不知道将它们添加到 ansible playbook 的哪个位置,以便在集群部署期间可以在主节点上呈现它们。

我尝试使用这个文件 kubespray/roles/kubernetes/master/defaults/main/main.yml 和这个文件 kubespray/roles/kubespray-defaults/defaults/main.yaml 但这两个文件都不起作用,ansible 不会部署它们,就像 ansible 不读取它们一样。

kubeadm YAML 配置文件在哪里?

这里有人可以帮忙管理这些参数吗?

【问题讨论】:

    标签: kubernetes ansible kubespray


    【解决方案1】:

    https://kubespray.io/#/docs/ansible?id=group-vars-and-overriding-variables-precedence 中所述,您应该查看inventory/<mycluster>/group_vars/all/all.ymlinventory/<mycluster>/group_vars/k8s-cluster/k8s-cluster.yml 以了解您的集群配置。

    其中inventory/<mycluster>inventory/sample folder 提供的kubespray 的副本,其中包含inventory.ini 文件和group_vars 中的文件的改编。

    Kubespray 使用 https://docs.ansible.com/ansible/latest/user_guide/sample_setup.html#alternative-directory-layout 中建议的库存布局

    无论您的布局如何,要加载 group_vars,必须与 --inventory-file/--inventory/-i 选项或 defaults.inventory 配置引用的文件位于同一文件夹中。

    例如,如果您的库存是文件config/inventory,则需要复制config/group_vars 中的示例库存group_vars。

    【讨论】:

    • @zigam,我已经阅读了文档并在 kubespray 目录下查看了这些文件,但我不确定在 kubespray 上下文中的何处以及如何读取和使用它们。我已经有一个清单文件,其中包含在我的ansible.cfg 中指定的节点及其 IP,供ansible-playbook 使用。请问您上面提到的文件何时以及如何发挥作用? 'mycluster' 的目的是什么?我有点迷失了,请你给我更精确的说明如何让我的主组件参数被kubeadm extra args覆盖?
    • Ansible 清单包含多个部分:具有分组的机器列表(ini 文件)、组变量(在 group_vars/<group-name>/<whatever>.yml 中和机器变量(在 host_vars/<inventory_hostname>/<whatever>.yml 中)。当引用库存文件时,ansible 会自动从与inventory ini文件相同的目录加载group_vars和host_vars。您可以使用命令ansible-inventory --graph --vars查看inventory加载的结果
    • 我把我的 kubeadm 额外参数放在这里:kubespray/inventory/local/group_vars/k8s-cluster/k8s-cluster.yml。我像这样运行剧本ansible-playbook -l k8s-cluster -I config/inventory playbooks/k8s-cluster.yml 这里config/inventory 是包含我的主机清单的文件。主配置是未部署的样式。我想知道 kubespray 如何在部署过程中使用这些变量。似乎在以前的 kubespray 版本中,在这个文件中设置这些 kubeadm exra arags :kubespray/roles/kubernetes/master/defaults/main/main.yml 工作。
    • 正如我之前的评论中所说:group_vars 必须与引用的清单位于同一目录中,ansible 不会从另一个文件夹加载 group_vars。我更新了我的答案。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-01-07
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多