如何解决在实时集群中添加 apiserver extraArgs/extraVolumes
我有一个 Kubernetes 集群 1.17,我想在 apiserver 中添加一些 extraArgs
和 extraVolumes
(如 https://kubernetes.io/docs/setup/production-environment/tools/kubeadm/control-plane-flags/)。通常,我更新清单文件 /etc/kubernetes/manifests/kube-apiserver.yaml
以应用我的新配置,然后更新 kubeadm-config
ConfigMap 以保留此新配置以用于下一次 Kubernetes 升级(因为静态 pod 清单是从此 ConfigMap 重新生成的)升级时)。
是否可以只更新 kubeadm-config
ConfigMap,然后使用 kubeadm init phase control-plane apiserver
之类的命令应用配置?有哪些风险?
解决方法
这就是升级 static pod definitions
的 control plane components
的方法,但我猜你的意思是 init 而不是 upgrade 命令。
$ kubeadm upgrade
命令在每次应用更改之前参考来自 ConfigMap ($ kubectl -n kube-system get cm kubeadm-config -o yaml
) 的当前集群配置。
说到风险,你可以尝试通过研究 kubeadm upgrade diff 命令的输出来设想它们,例如
kubeadm upgrade diff v1.20.4
。 this documentation 中的更多详细信息。您也可以尝试使用 this doc 中的 --dry-run
标志。它不会改变任何状态,它会显示将要执行的操作。
此外,您还可以从 this docs
中阅读有关--experimental-patches
的信息
,
如果您的意思是更改实时集群中的 apiserver 配置,您可以更改 /etc/kubernetes/manifest/kubeadm-apiserver.conf 以应用。
但是你必须小心,因为旧的静态 pod 会在新 pod 准备好之前被杀死。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。