CC00319.CloudKubernetes——|KuberNetes&运维.V38|——|监控.v02|ControllerManager解决方案v02|
一、告警处理:ControllerManager告警解决方案### --- 告警处理方案:配置以下2点,即可解决~~~第一点:把监听地址更改为0.0.0.0~~~第二点:把servicemonitor对应的service给创建上二、打开ControllerManager的监听地址为0.0.0.0### --- 打开ControllerMa...
·
一、告警处理:ControllerManager告警解决方案
### --- 告警处理方案:配置以下2点,即可解决
~~~ 第一点:把监听地址更改为0.0.0.0
~~~ 第二点:把servicemonitor对应的service给创建上
二、打开ControllerManager的监听地址为0.0.0.0
### --- 打开ControllerManager的配置文件
[root@k8s-master01 ~]# vim /usr/lib/systemd/system/kube-controller-manager.service
--v=2 \
--logtostderr=true \
--address=0.0.0.0 \ // 更改监听地址为0.0.0.0
### --- 重启ControllerManager
[root@k8s-master01 ~]# systemctl daemon-reload
[root@k8s-master01 ~]# systemctl restart kube-controller-manager.service
### --- 查看监听地址是否为0.0.0.0
~~~ # 注:0.0.0.0:安全说明
~~~ 主节点一般都是放在内网服务器的,不会放置在公网的
~~~ 通信是需要证书的,双向证书认证的,开0.0.0.0是绝对安全的。
[root@k8s-master01 ~]# netstat -lntp |grep kube-control
tcp6 0 0 :::10252 :::* LISTEN 125501/kube-control
tcp6 0 0 :::10257 :::* LISTEN 125501/kube-control
三、创建service:无select的service
### --- 创建service:无select的service
~~~ 第一步:先创建一个endpoint,endpoint指向宿主机的IP地址+10252这个地址,
~~~ 第二步:再创建一个和endpoint名称一样的service,然后endpoint就会和这个service建立连接
~~~ 然后Prometheus就可以通过这个具有这个labele:kube-controller-manager的service;连接到Prometheus,然后在Prometheus-UI配置即可
### --- 创建endpoint和service的yaml文件
[root@k8s-master01 prometheus]# vim controller-manager-monitor.endpoint.svc.yaml
apiVersion: v1
items:
- apiVersion: v1
kind: Service
metadata:
labels:
k8s-app: kube-controller-manager
name: kube-controller-manage-monitor
namespace: kube-system
spec:
ports:
- name: http-metrics
port: 10252
protocol: TCP
targetPort: 10252
sessionAffinity: None
type: ClusterIP
status:
loadBalancer: {}
- apiVersion: v1
kind: Endpoints
metadata:
labels:
k8s-app: kube-controller-manager
name: kube-controller-manage-monitor
namespace: kube-system
resourceVersion: "10081388"
selfLink: /api/v1/namespaces/kube-system/endpoints/kube-controller-manage-monitor
subsets:
- addresses:
- ip: 192.168.1.11
ports:
- name: http-metrics
port: 10252
protocol: TCP
kind: List
metadata:
resourceVersion: ""
selfLink: ""
### --- 创建endpoint和service
[root@k8s-master01 prometheus]# kubectl create -f controller-manager-monitor.endpoint.svc.yaml
service/kube-controller-manage-monitor created
endpoints/kube-controller-manage-monitor created
### --- 查看这个service是否创建成功
[root@k8s-master01 prometheus]# kubectl get svc -n kube-system -l k8s-app=kube-controller-manager
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
kube-controller-manage-monitor ClusterIP 10.110.53.35 <none> 10252/TCP 102s
四、验证这个service是否可以访问
### --- 访问ControllerManager的10252端口是否可以正常访问
[root@k8s-master01 prometheus]# kubectl get svc -n kube-system -l k8s-app=kube-controller-manager
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
kube-controller-manage-monitor ClusterIP 10.110.53.35 <none> 10252/TCP 102s
~~~ # 访问本地地址+10252返回值
[root@k8s-master01 prometheus]# curl 192.168.1.11:10252
404 page not found
~~~ # 访问service地址+10252返回值
~~~ 注:结果,它俩的返回值是一样的,说明是可以访问到ControllerManager的10252
[root@k8s-master01 prometheus]# curl 10.110.53.35:10252
404 page not found
五、查看ControllerManager在Prometheus下是否恢复正常,输出采集状态
### --- 查看ControllerManager在Prometheus下是否恢复正常,输出采集状态
~~~ status——>Targets:显示也是1/1up:说明状态正常
更多推荐




所有评论(0)