我对Kubernetes还是很陌生,他试图把头放在如何在已经运行的集群中管理ComponentConfig上。
例如: 最近,我在运行Ubuntu的测试环境中初始化了kubeadm集群。当我这样做时,我发现CoreDNS位于CrashLoopBackoff中,事实证明是这样的,因为Ubuntu配置为使用systemd-resolved,因此resolv.conf中配置了回送解析器。阅读coredns的文档后,我发现解决方案是通过命令行参数或在配置中更改kubelet的resolvConf参数。
那么如何在kubeadm管理的集群中正确地做到这一点?
阅读[文档中的本页] [1]时,我并没有真正的头绪,因为它似乎是为初始化新集群或加入新节点而设计的。
当然,在这种特殊情况下,我可以使用“ Kubeadm重置”并使用--config
参数再次对其进行初始化,但这似乎不是运行集群的正确解决方案。
因此,在深入研究之后,我发现了一些信息:
/var/lib/kubelet/kubeadm-flags.env
,但是AFAICT仅对特定于节点的更改有意义。kubelet-config-1.14
的ConfigMap。对于即将加入群集的节点来获得正确的配置,这似乎很有希望-但是更改CM是否会影响已经在运行的Kubelet?/var/lib/config/kubelet.yaml
中正在运行的配置的编组版本,但AFAIU会被kubelet本身定期(?)或至少在kubeadm升级期间覆盖。我似乎通过更改上述CM,随后运行kubeadm upgrade something
并重新启动计算机的某种组合获得了成功(因为重新启动kubelet不能解决CoreDNS问题……但是也许我没耐心)。
所以我现在问:
kubeadm ... config --config
-如何提取现有的Kubeadm-config并将其反馈回kubeadm? 我对指向正确文档的指针感到非常满意,只是我自己没有找到正确的线索。
TIA
答案 0 :(得分:0)
official documentation中对您要查找的内容进行了详细说明。
配置Kubelet的基本工作流程如下:
此外,从Kubernetes v1.11开始,默认情况下启用了DynamicKubeletConfig Feature Gate,但是您需要一些其他步骤来激活它。您需要记住,必须将Kubelet的--dynamic-config-dir标志设置为Node上的可写目录。