一款 AI 编写的 Kubernetes 实用小工具,助你批量检查容器服务健康状态

公众号关注 「奇妙的 Linux 世界」

设为「星标」,每天带你玩转 Linux !

daab50cf794a108c60cca4092cbeb085.jpeg

check-k8s-network 是一款 AI 编写的 Kubernetes 网络连通性检查小工具,它主要用于检查 Kubernetes 集群中各个容器的网络连通性,支持 ICMPTCPUDPHTTP 检查。

你可以在指定的命名空间内查找符合条件的 Pod,并对其进行网络连通性进行自动检测。

安装

check-k8s-network 使用 Python 编写,需要安装 Python 3.9 版本和一些依赖库。

为了更好的体验,我们发布了 Docker 镜像,你只需要下载 Docker 镜像即可使用。

$ docker pull 80imike/check-k8s-network:latest

常用参数说明

  • -n, --namespace:指定 Kubernetes 命名空间,默认值为 default

  • -c, --container:指定容器名,根据该容器名匹配 Pod,支持模糊匹配。

  • -i, --icmp:使用 ICMP 协议进行检查。

  • -t, --tcp:使用 TCP 协议进行检查,并指定端口号。

  • -u, --udp:使用 UDP 协议进行检查,并指定端口号。

  • -w, --http:使用 HTTP 协议进行检查,并指定 URL。

  • --auto-http:自动查找当前 Pod 的 IP 和服务端口进行 HTTP 检查。

  • --auto-tcp:自动查找当前 Pod 的 IP 和服务端口进行 TCP 检查。

  • --auto-udp:自动查找当前 Pod 的 IP 和服务端口进行 UDP 检查。

  • --all:同时使用 ICMP、TCP、UDP 和 HTTP 四种检查方式进行检测。

输出结果

check-k8s-network 会输出一个包含检查结果的表格,内容包括:

  • 序号

  • 检查类型

  • 源 Pod

  • 目标

  • 结果 (成功 or 失败)

  • 错误信息

该表格会对每个 Pod 进行自动排序,并对结果进行对齐和格式化。

使用示例

常用使用示例

注意:

  1. 该工具请在 Kubernetes 集群内的主机上使用,并确保您所在主机上已经配置了 K8s 集群认证文件 ~/.kube/config

  2. -v 参数用于将宿主机上的 ~/.kube/config 文件映射到容器内的 /root/.kube/config 文件中,以便容器内的 Python 脚本可以访问 Kubernetes 集群。

  1. 检查指定命名空间下所有 Pod 的 ICMP 连通性:

$ docker run --network host --rm \
  -v ~/.kube/config:/root/.kube/config \
  80imike/check-k8s-network:latest -n hi-linux --icmp
1609de42e37b1d64893e9993fc141673.png
  1. 检查指定命名空间和 Pod 的 TCP 连通性 (需指定端口):

$ docker run --network host --rm \
  -v ~/.kube/config:/root/.kube/config \
  80imike/check-k8s-network:latest -n hi-linux -c blog --tcp 80
12fa83bc8465f1c64c2e5ba6f833fdc1.png
  1. 检查指定命名空间下所有 Pod 的 HTTP 连通性 (自动查找端口):

$ docker run --network host --rm \
  -v ~/.kube/config:/root/.kube/config \
  80imike/check-k8s-network:latest -n hi-linux --auto-http
292fbc38405ac916c5d229085d42b050.png
  1. 检查指定命名空间下所有 Pod 的 TCP 连通性 (自动查找端口):

$ docker run --network host --rm \
  -v ~/.kube/config:/root/.kube/config \
  80imike/check-k8s-network:latest -n hi-linux --auto-tcp
52188660cd09d22c4db58129db4e19e1.png
  1. 检查指定命名空间下所有 Pod 的 UDP 连通性 (自动查找端口):

$ docker run --network host --rm \
  -v ~/.kube/config:/root/.kube/config \
  80imike/check-k8s-network:latest -n kube-system --auto-udp
033ee5f14953b83f1cad1e8c3a2c8fc3.png
  1. 同时检查指定命名空间下所有 Pod 的 ICMP、TCP、UDP 和 HTTP 连通性:

$ docker run --network host --rm \
  -v ~/.kube/config:/root/.kube/config \
  80imike/check-k8s-network:latest -n hi-linux --all
fc39491ced804eeba2ab0434385c62d3.png

一些复杂的参数组合示例

  1. 对特定命名空间中名为 blog 的容器执行 ICMP 和指定 TCP(端口 80)检查:

$ docker run --network host --rm \
  -v ~/.kube/config:/root/.kube/config \
  80imike/check-k8s-network:latest -n hi-linux -c blog --icmp --tcp 80
7ff9a226361fdc56aeff82c921e07b33.png
  1. 对特定命名空间中名为 blog 的容器同时执行 ICMP、TCP 、UDP 和 HTTP 检查:

$ docker run --network host --rm \
  -v ~/.kube/config:/root/.kube/config \
  80imike/check-k8s-network:latest -n hi-linux -c blog --icmp --auto-tcp --auto-udp --auto-http
0e05409bb218b8a52095fff1c3da32db.png

总结

check-k8s-network 这款小工具,是我尝试 AI 编程的一次小成果。所有代码全部通过和 ChatGPT 对话编写完成,Docker 镜像和使用文档大部分也是 AI 编写的。

check-k8s-network 可以帮助你快速检查 Kubernetes 集群中容器的网络连通性,非常适合需要批量检查容器网络连接状态的场景。

f963d79a48e5e69432f274099eb8b125.gif

🚀 最近,我们建立了一个技术交流微信群。目前群里已加入了不少行业内的大神,有兴趣的同学可以加入和我们一起交流技术,在 「奇妙的 Linux 世界」 公众号直接回复 「加群」 邀请你入群。

🌟『极客视界』科技达人必备综合资讯指南,等你来探索!访问网址 https://bestgeek.org 即可打开新世界。

📕 关注『奇妙的 Linux 世界』公众号,带你开启有趣新生活!更多好用好玩的软件资源,可访问 https://666666.dev 免费获取。

d4878e511e4d944a2fdf6b3a8dca0e54.png

你可能还喜欢

点击下方图片即可阅读

73df7a58394a7f13724c2cca28fc9d60.png

Github 星标 1.2K,一款简约不简单的网易云音乐播放器

c320adb8621ef39fbf19276bf6625ab0.png

点击上方图片,『美团|饿了么』大额外卖红包天天免费领

f5f633767dcae86f2d00a70fdb20ba73.png

更多有趣的互联网新鲜事,关注「奇妙的互联网」视频号全了解!

  • 17
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值