Kubernetes 1.30和1.32 kubeadm-config apiServer和apiVersion配置文件的区别

近期从1.30升级到1.31,每次升级cilium都会报错,错误见上一篇文章:https://www.luyouli.com/?p=797

cilium报错如下:

Errors: cilium cilium daemonsets.apps "cilium" not found
status check failed: [daemonsets.apps "cilium" not found, unable to retrieve ConfigMap "cilium-config": configmaps "cilium-config" not found]

今天趁着1.32发布了,索性就直接搞到1.32,也做好了重新部署的准备

经过不断的升级测试,发现有这些报错:

[preflight] Running pre-flight checks
[preflight] Reading configuration from the "kubeadm-config" ConfigMap in namespace "kube-system"...
[preflight] Use 'kubeadm init phase upload-config --config your-config.yaml' to re-upload it.
W1217 09:48:43.484026 6798 configset.go:78] Warning: No kubeproxy.config.k8s.io/v1alpha1 config is loaded. Continuing without it: configmaps "kube-proxy" is forbidden: User "system:bootstrap:qggnmv" cannot get resource "configmaps" in API group "" in the namespace "kube-system"
error execution phase preflight: unable to fetch the kubeadm-config ConfigMap: this version of kubeadm only supports deploying clusters with the control plane version >= 1.31.0. Current version: v1.30.7
To see the stack trace of this error execute with --v=5 or higher

经过研究,最终把问题定位到这一句:Reading configuration from the “kubeadm-config” ConfigMap in namespace “kube-system”

这句的意思是:没有加载 kubeproxy.config.k8s.io/v1alpha1 配置,并且用户 system:bootstrap:qggnmv 没有权限获取 kube-system 命名空间下的 configmaps 资源。这部分问题可能与 RBAC (基于角色的访问控制) 设置有关,但主要关注点在于 kubeadm-config ConfigMap 的版本不兼容问题

最终,知晓了为什么屡次升级不上去的原因了,是由于kubeadm-config配置文件升级了,但是我这个环境一直是旧版的配置,所以新版本不兼容

新旧版本对比如下:

很明显的看出:

1、apiServer内容去掉了authorization-mode

2、apiVersion版本升级到了beta4

这两点,应该就是导致我数次升级不上去的原因

留下评论

error: Content is protected !!