1

我有一个 Kubernetes 集群 1.17,我想在 apiserver 中添加一些extraArgsextraVolumes(如在https://kubernetes.io/docs/setup/production-environment/tools/kubeadm/control-plane-flags/中)。通常,我会更新清单文件/etc/kubernetes/manifests/kube-apiserver.yaml以应用我的新配置,然后更新kubeadm-configConfigMap 以保留此新配置以供下一次 Kubernetes 升级(因为升级时会从此 ConfigMap 重新生成静态 pod 清单)。

是否可以只更新kubeadm-configConfigMap 然后使用类似的命令应用配置kubeadm init phase control-plane apiserver?有什么风险?

4

2 回答 2

1

这就是升级static pod definitions的方法,但我猜你的意思control plane components不是init命令,而是升级

$ kubeadm upgrade每次应用更改之前,该命令都会从ConfigMap ( )查询当前集群配置。$ kubectl -n kube-system get cm kubeadm-config -o yaml

谈到风险,您可以尝试通过研究 kubeadm upgrade diff 命令的输出来设想它们,例如

kubeadm upgrade diff v1.20.4. 本文档中的更多详细信息。您也可以尝试使用此文档--dry-run中的标志。它不会改变任何状态,它会显示将要执行的动作。

--experimental-patches此外,您还可以阅读此文档

于 2021-03-04T14:38:53.590 回答
0

如果您的意思是更改实时集群中的 apiserver 配置,您可以更改 /etc/kubernetes/manifest/kubeadm-apiserver.conf 以应用。

但是你必须小心,因为旧的静态 pod 会在新的 pod 准备好之前被杀死。

于 2021-07-12T06:40:15.690 回答