前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >一款 AI 编写的 Kubernetes 实用小工具,助你批量检查容器服务健康状态

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

作者头像
iMike
发布2024-07-19 18:51:55
1530
发布2024-07-19 18:51:55
举报
文章被收录于专栏:运维之美

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

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

安装

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

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

代码语言:javascript
复制
$ 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 集群。
  3. 检查指定命名空间下所有 Pod 的 ICMP 连通性:
代码语言:javascript
复制
$ docker run --network host --rm \
  -v ~/.kube/config:/root/.kube/config \
  80imike/check-k8s-network:latest -n hi-linux --icmp   
  1. 检查指定命名空间和 Pod 的 TCP 连通性 (需指定端口):
代码语言:javascript
复制
$ docker run --network host --rm \
  -v ~/.kube/config:/root/.kube/config \
  80imike/check-k8s-network:latest -n hi-linux -c blog --tcp 80
  1. 检查指定命名空间下所有 Pod 的 HTTP 连通性 (自动查找端口):
代码语言:javascript
复制
$ docker run --network host --rm \
  -v ~/.kube/config:/root/.kube/config \
  80imike/check-k8s-network:latest -n hi-linux --auto-http
  1. 检查指定命名空间下所有 Pod 的 TCP 连通性 (自动查找端口):
代码语言:javascript
复制
$ docker run --network host --rm \
  -v ~/.kube/config:/root/.kube/config \
  80imike/check-k8s-network:latest -n hi-linux --auto-tcp
  1. 检查指定命名空间下所有 Pod 的 UDP 连通性 (自动查找端口):
代码语言:javascript
复制
$ docker run --network host --rm \
  -v ~/.kube/config:/root/.kube/config \
  80imike/check-k8s-network:latest -n kube-system --auto-udp
  1. 同时检查指定命名空间下所有 Pod 的 ICMP、TCP、UDP 和 HTTP 连通性:
代码语言:javascript
复制
$ docker run --network host --rm \
  -v ~/.kube/config:/root/.kube/config \
  80imike/check-k8s-network:latest -n hi-linux --all

一些复杂的参数组合示例

  1. 对特定命名空间中名为 blog 的容器执行 ICMP 和指定 TCP(端口 80)检查:
代码语言:javascript
复制
$ docker run --network host --rm \
  -v ~/.kube/config:/root/.kube/config \
  80imike/check-k8s-network:latest -n hi-linux -c blog --icmp --tcp 80 
  1. 对特定命名空间中名为 blog 的容器同时执行 ICMP、TCP 、UDP 和 HTTP 检查:
代码语言:javascript
复制
$ 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

总结

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

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

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2024-07-12,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 奇妙的Linux世界 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 安装
  • 常用参数说明
  • 输出结果
  • 使用示例
    • 常用使用示例
      • 一些复杂的参数组合示例
      • 总结
      相关产品与服务
      容器服务
      腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档