You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

kubeadm部署Kubernetes集群时Prometheus无法抓取控制平面指标如何解决

kubeadm集群控制平面指标暴露持久化解决方案

kubeadm官方支持通过ClusterConfiguration自定义控制平面组件参数,配置会被持久化保存,集群升级时不会被覆盖,具体操作步骤如下:

1. 导出当前集群的ClusterConfiguration

执行以下命令导出集群现存的kubeadm配置到本地文件:

kubectl get cm kubeadm-config -n kube-system -o jsonpath='{.data.ClusterConfiguration}' > kubeadm-config.yaml

2. 编辑配置文件添加组件自定义参数

打开导出的kubeadm-config.yaml文件,在对应字段下添加监听地址配置:

  • 针对kube-scheduler添加:
    scheduler:
      extraArgs:
        bind-address: 0.0.0.0
    
  • 针对kube-controller-manager添加:
    controllerManager:
      extraArgs:
        bind-address: 0.0.0.0
    
  • 针对etcd添加:
    etcd:
      local:
        extraArgs:
          listen-metrics-urls: http://0.0.0.0:2381
    

注意:如果配置文件中已经存在对应组件的配置块,只需在extraArgs下新增参数即可,不要重复定义组件配置块。

3. 应用配置到集群

执行以下命令应用修改后的配置,kubeadm会自动重建控制平面静态Pod使配置生效:

kubeadm upgrade apply --config kubeadm-config.yaml -y

如果是多控制平面高可用集群,在主控制节点执行完上述命令后,需要在其余所有控制平面节点依次执行kubeadm upgrade node同步配置。

4. 验证配置生效

配置生效后可执行以下命令验证参数是否正确加载:

  • 验证kube-scheduler:ps aux | grep kube-scheduler | grep "bind-address=0.0.0.0"
  • 验证kube-controller-manager:ps aux | grep kube-controller-manager | grep "bind-address=0.0.0.0"
  • 验证etcd:ps aux | grep etcd | grep "listen-metrics-urls=http://0.0.0.0:2381"

确认参数加载正常后,查看Prometheus的抓取目标状态,三个组件的指标抓取会恢复正常,后续集群升级时配置不会被重置。

内容的提问来源于stack exchange,提问作者Krist van Besien

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.12 15:09:04