文章目录

[隐藏]

部署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的网络

Logo

K8S/Kubernetes社区为您提供最前沿的新闻资讯和知识内容

更多推荐