GKE集群安装Kube Prometheus Stack后出现组件Down告警求助
解决GKE集群中kube-prometheus-stack告警KubeControllerManager/KubeProxy/KubeScheduler Down的问题
KubeProxy metrics配置方案
GKE作为托管K8s集群,kube-proxy的配置并非通过kube-system下的kube-proxy-config ConfigMap直接修改,需通过节点池参数调整:
- 更新现有节点池,开启kube-proxy metrics暴露:
替换命令中的gcloud container node-pools update [NODE_POOL_NAME] \ --cluster [CLUSTER_NAME] \ --region [REGION] \ --kube-proxy-config=metricsBindAddress=0.0.0.0:10249[NODE_POOL_NAME]、[CLUSTER_NAME]、[REGION]为你的集群实际信息。 - 若创建新节点池,可直接在创建时指定参数:
gcloud container node-pools create [NODE_POOL_NAME] \ --cluster [CLUSTER_NAME] \ --region [REGION] \ --kube-proxy-config=metricsBindAddress=0.0.0.0:10249
KubeControllerManager与KubeScheduler告警处理
GKE中这两个托管组件默认不对外暴露metrics,需先开启集群组件可见性,再调整prometheus采集配置:
- 开启集群组件暴露功能:
gcloud container clusters update [CLUSTER_NAME] \ --region [REGION] \ --enable-kube-controller-manager-visibility \ --enable-kube-scheduler-visibility - 调整kube-prometheus-stack的采集配置:
创建custom-values.yaml文件,添加以下内容:
执行helm升级应用配置:kubeControllerManager: enabled: true service: enabled: true port: 10252 targetPort: 10252 serviceMonitor: enabled: true kubeScheduler: enabled: true service: enabled: true port: 10251 targetPort: 10251 serviceMonitor: enabled: truehelm upgrade prometheus prometheus-community/kube-prometheus-stack \ --namespace monitoring \ -f custom-values.yaml
验证配置生效
- 检查kube-proxy的metrics端口监听状态:
kubectl exec -n kube-system -it [KUBE_PROXY_POD_NAME] -- netstat -plnt | grep 10249 - 确认ServiceMonitor资源已创建:
kubectl get servicemonitors -n monitoring - 查看Prometheus Target页面,确认三个组件的采集状态为
UP
内容的提问来源于stack exchange,提问作者Sameer Malhotra
相关产品推荐
相关产品推荐

