k8s部署zabbix_zabbix监控k8s(kubernetes)pod到service的网络
文章目录[隐藏]部署sa-tool监控脚本配置key配置监控项最近k8s测试环境不时地出现无法访问一些service endpoint的问题。排查发现是某些节点的kube-proxy没有同步最新的service来配置iptables,至于为什么没有同步service,目前还不知道。不过现在先加对service的监控来及时发现问题,争取到更多时间排查吧。部署sa-toolsa-tool其实就是一个c
文章目录
[隐藏]
部署sa-tool
监控脚本
配置key
配置监控项
最近k8s测试环境不时地出现无法访问一些service endpoint的问题。排查发现是某些节点的kube-proxy没有同步最新的service来配置iptables,至于为什么没有同步service,目前还不知道。不过现在先加对service的监控来及时发现问题,争取到更多时间排查吧。
部署sa-tool
sa-tool其实就是一个centos镜像容器,为了方便在上面执行一些检测网络的命令。我们这里使用daemonset来部署。
apiVersion: extensions/v1beta1 kind: DaemonSet metadata: name: sa-tool spec: template: metadata: labels: app: sa-tool spec: containers: - command: - /bin/sh - -c - while true; do sleep 3600; done name: sa-tool image: centos:7 restartPolicy: Always nodeSelector: ibd/worktype: "true"
监控脚本
#!/bin/bash cat /dev/null > /tmp/test-pod-network.tmp for pod in `kubectl --request-timeout 5s get pod | awk 'NR>1{print $1}'`;do for addr in `kubectl --request-timeout 5s get service --all-namespaces -o=custom-columns=NAME:metadata.name,NAMESPACE:metadata.namespace,PORT:spec.ports[0].port | awk 'NR>1{print ""$1"."$2".svc.ibd.lan/"$3}'`;do if ! kubectl --request-timeout 5s exec -i $pod -- timeout 3 bash -c 'exec 3<> /dev/tcp/'$addr 2>/dev/null;then echo "$pod $addr" >> /tmp/test-pod-network.tmp fi done done cp /tmp/test-pod-network.tmp /tmp/test-pod-network.log
配置key
打开agent配置文件,加入如下key
UserParameter=pod.network, cat /tmp/test-pod-network.log
配置监控项
登录zabbix后台,添加如下监控项:
pod.network
zabbix监控k8s(kubernetes)pod到service的网络
更多推荐
所有评论(0)