【问题标题】:How to change kubelet configuration via kubeadm如何通过 kubeadm 更改 kubelet 配置
【发布时间】:2020-01-10 12:00:03
【问题描述】:

我对 Kubernetes 还很陌生,我正在努力思考如何在已经运行的集群中管理 ComponentConfigs。

例如: 最近在运行Ubuntu的测试环境中初始化了一个kubeadm集群。当我这样做时,我发现 CoreDNS 位于 CrashLoopBackoff 中,事实证明是这种情况,因为 Ubuntu 配置为使用 systemd-resolved,因此 resolv.conf 配置了环回解析器。在阅读 coredns 的文档后,我发现解决方案是更改 kubelet 的 resolvConf 参数 - 通过命令行参数或在配置中。

那么如何在 kubeadm 管理的集群中正确执行此操作?

阅读[文档中的此页面][1] 我并没有真正得到任何线索,因为它似乎是针对初始化新集群或加入新节点的情况量身定制的。

当然,在这种特殊情况下,我可以使用“Kubeadm reset”并使用--config 参数再次对其进行初始化,但这似乎不是运行集群的正确解决方案。

所以在深入挖掘之后,我发现了几个信息:

  1. 我可以直接更改节点上的/var/lib/kubelet/kubeadm-flags.env,但 AFAICT 这只对特定于节点的更改有意义。
  2. 在 kube-system 命名空间中有一个名为 kubelet-config-1.14 的 ConfigMap。这对于即将加入集群以获得正确配置的节点来说似乎很有希望 - 但是更改该 CM 会影响已经运行的 Kubelet 吗?
  3. /var/lib/config/kubelet.yaml 中有一个运行配置的编组版本,我可以更改它,但 AFAIU 会定期(?)或至少在 kubeadm 升级期间被 kubelet 本身覆盖。
  4. 似乎有一个选项可以在节点对象中指定一个 configmap,让 kubelet 从那里动态加载配置,但鉴于已经有一个现有的 configmap,更改它似乎更明智。

似乎通过更改上述 CM、之后运行 kubeadm upgrade something 并重新启动机器的某种组合取得了成功(因为重新启动 kubelet 并没有解决 CoreDNS 问题......但也许我要不耐烦)。

所以我现在问:

  1. 工作并正在升级的 kubelet 配置(或我可以通过 kubeadm-config.yaml 影响的任何其他配置)进行更改的推荐方法是什么? -在配置不是特定于节点的情况下安全吗?
  2. 如果这涉及到运行kubeadm ... config --config - 我如何提取现有的 Kubeadm-config 以将其反馈给 kubeadm?

我对指向正确文档的指针非常满意,只是我自己没有找到正确的线索。

TIA

【问题讨论】:

    标签: kubernetes kubeadm


    【解决方案1】:

    official documentation 中详细描述了您要查找的内容。

    配置 Kubelet 的基本工作流程如下:

    • 编写包含 Kubelet 配置的 YAML 或 JSON 配置文件。
    • 将此文件包装在 ConfigMap 中并将其保存到 Kubernetes 控制平面。 更新 Kubelet 对应的 Node 对象以使用这个 ConfigMap。

    此外还有DynamicKubeletConfig Feature Gate 从 Kubernetes v1.11 开始默认启用,但您需要一些额外的步骤来激活它。您需要记住,Kubelet 的 --dynamic-config-dir 标志必须设置为节点上的可写目录。

    【讨论】:

    • 嗯,这就是我在最初问题的第 4 项中提到的内容,对我而言感觉不是正确的解决方案。我看到了两个问题:首先,它复制了已经存在的东西(这是由 kubeadm 编写的 ConfigMap),其次我需要为每个节点都这样做(虽然配置不是特定于节点的)。抛开重复,这是否意味着我必须在两个地方进行更改才能将其应用于以后添加 kubeadm 的节点?
    • @PatrickSchönfeld 1) 它不会复制任何值,因为新配置完全覆盖了 --config 提供的配置,并被命令行标志覆盖 2) 只有一个地方可以按顺序修改为新节点应用 ConfigMap:您只需将 configSource 部分添加到您的节点规范中。
    猜你喜欢
    • 1970-01-01
    • 2018-03-14
    • 2019-08-09
    • 2020-05-20
    • 2018-10-22
    • 2019-04-10
    • 2019-02-24
    • 2019-07-25
    • 2019-03-03
    相关资源
    最近更新 更多