当prometheus监控出现下列情况:
该问题的原因是webhook的授权地址使用的是127.0.0.1,所以其他IP发起的请求都会被拒绝,将该地址改为0.0.0.0,然后在controller和scheduler上允许数据请求。
1、在master节点操作
#先备份下列文件
/etc/kubernetes/manifests/kube-controller-manager.yaml
/etc/kubernetes/manifests/kube-scheduler.yaml
/etc/systemd/system/kubelet.service.d/10-kubeadm.conf
#修改授权地址,yaml文件修改以后,响应的pod会自动重启
sed -e "s/- --address=127.0.0.1/- --address=0.0.0.0/" -i /etc/kubernetes/manifests/kube-controller-manager.yaml
sed -e "s/- --address=127.0.0.1/- --address=0.0.0.0/" -i /etc/kubernetes/manifests/kube-scheduler.yaml
2、修改master节点的kubelet的配置文件
KUBEADM_SYSTEMD_CONF=/etc/systemd/system/kubelet.service.d/10-kubeadm.conf
sed -e "/cadvisor-port=0/d" -i "$KUBEADM_SYSTEMD_CONF"
if ! grep -q "authentication-token-webhook=true" "$KUBEADM_SYSTEMD_CONF"; then
sed -e "s/--authorization-mode=Webhook/--authentication-token-webhook=true --authorization-mode=Webhook/" -i "$KUBEADM_SYSTEMD_CONF"
fi
systemctl daemon-reload
systemctl restart kubelet
- 如果controller和scheduler的配置均正常,那只需要修改kubelet的配置即可。