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