kubeadm upgrade修改kubeadm-config方法及kube-prometheus部署配置问题求助
嘿,针对你的两个Kubernetes相关问题,我来给你详细梳理解决方案:
问题1:如何使用kubeadm upgrade修改kubeadm-config中的部分特性?
要通过kubeadm upgrade调整kubeadm-config里的特性,核心是先导出当前集群的配置,修改后再通过upgrade命令应用变更,具体步骤如下:
- 首先导出当前集群的kubeadm配置到本地文件:
kubeadm config view > kubeadm-config.yaml - 打开
kubeadm-config.yaml,找到你需要修改的特性字段(比如组件启动参数、feature gates开关等),按照需求调整内容。 - 执行kubeadm upgrade命令时指定修改后的配置文件,确保变更生效:
注意替换kubeadm upgrade apply v1.x.x --config kubeadm-config.yamlv1.x.x为你集群对应的Kubernetes版本(哪怕是同版本调整配置,也可以用这个命令触发配置同步)。 - 验证配置:可以再次执行
kubeadm config view查看目标字段是否更新,或者直接检查对应组件的启动参数确认效果。
问题2:修改controller/scheduler地址未生效的解决办法
你之前执行的命令kubeadm upgrade --feature-gates controllerManagerExtraArgs.address=0.0.0.0是错误的——controllerManagerExtraArgs并不是feature gate(特性开关),它是kubeadm配置里的组件参数字段,用--feature-gates参数来设置完全不对,这就是配置未生效的核心原因。正确操作步骤如下:
- 导出当前kubeadm配置:
kubeadm config view > kubeadm-config.yaml - 编辑
kubeadm-config.yaml,找到ClusterConfiguration区块,添加或修改以下内容(注意apiVersion要匹配Kubernetes v1.10对应的版本,v1.10的kubeadm apiVersion为kubeadm.k8s.io/v1beta1):apiVersion: kubeadm.k8s.io/v1beta1 kind: ClusterConfiguration # 保留原有其他配置... controllerManagerExtraArgs: address: 0.0.0.0 schedulerExtraArgs: address: 0.0.0.0 - 应用修改后的配置执行升级:
替换kubeadm upgrade apply v1.10.x --config kubeadm-config.yamlv1.10.x为你集群的具体版本号,比如v1.10.12。 - 验证生效情况:
- 检查controller-manager启动参数:
kubectl get pods -n kube-system kube-controller-manager-<你的节点名> -o yaml | grep -A5 -B5 "address" - 检查scheduler启动参数:
kubectl get pods -n kube-system kube-scheduler-<你的节点名> -o yaml | grep -A5 -B5 "address"
--address=0.0.0.0的参数,就说明配置已经生效了。 - 检查controller-manager启动参数:
另外提醒下,Kubernetes v1.10是比较老旧的版本,安装kube-prometheus时要注意选择对应兼容的版本,避免出现其他兼容性问题。
内容的提问来源于stack exchange,提问作者Feiyu Zhou
相关产品推荐
相关产品推荐

