Prometheus监控Kubernetes提示报错“401.server returned HTTP status 401 Unauthorized“
文章目录背景报错信息排查背景kubernetes 通过prometheus 采集容器指标信息,会不定时的出现连接认证异常异常,怀疑是api-server 安全认证问题。(k8s API Server提供了k8s各类资源对象(pod,RC,Service等)的增删改查及watch等HTTP Rest接口,是整个系统的数据总线和数据中心。)报错信息通过prometheus 访问targets目标节点采
背景
kubernetes 通过prometheus 采集容器指标信息,会不定时的出现连接认证异常异常,怀疑是api-server 安全认证问题。(k8s API Server提供了k8s各类资源对象(pod,RC,Service等)的增删改查及watch等HTTP Rest接口,是整个系统的数据总线和数据中心。)
报错信息
通过prometheus 访问targets目标节点采集状态,节点状态报错信息为
401.server returned HTTP status 401 Unauthorized
访问endpoint
https://kubernetes.default.svc/api/v1/nodes/10.10.183.12/proxy/metrics/cadvisor
提示kubernetes.default.svc dns地址无法解析
排查
检查prometheus cadvisor配置job
https配置
- job_name: 'prometheus-kubernetes-cadvisor'
scheme: https
tls_config:
ca_file: /var/run/secrets/kubernetes.io/serviceaccount/ca.crt
bearer_token_file: /var/run/secrets/kubernetes.io/serviceaccount/token
kubernetes_sd_configs:
- role: node
relabel_configs:
- action: labelmap
regex: __meta_kubernetes_node_label_(.+)
- target_label: __address__
replacement: kubernetes.default.svc:6443
- source_labels: [__meta_kubernetes_node_name]
regex: (.+)
target_label: __metrics_path__
replacement: /api/v1/nodes/${1}/proxy/metrics/cadvisor
可以发现 scheme 为 https , target_label 为 kubernetes.default.svc 端口为6443,401报错就是安全校验的问题,现调整为http请求,使用http端口52080
在 master 节点确认api-server http http端口
ps -aux|grep kubelet|grep insecure-port
http配置
- job_name: 'prometheus-kubernetes-cadvisor'
scheme: http
tls_config:
ca_file: /var/run/secrets/kubernetes.io/serviceaccount/ca.crt
bearer_token_file: /var/run/secrets/kubernetes.io/serviceaccount/token
kubernetes_sd_configs:
- role: node
relabel_configs:
- action: labelmap
regex: __meta_kubernetes_node_label_(.+)
- target_label: __address__
replacement: 172.16.25.151:52080
- source_labels: [__meta_kubernetes_node_name]
regex: (.+)
target_label: __metrics_path__
replacement: /api/v1/nodes/${1}/proxy/metrics/cadvisor
重建prometheus pod 容器后再次查看采集状态,全部为UP状态
更多推荐
所有评论(0)