kubernetes-1.35.3 e2e_kubeadm/networking_test.go 源码深度分析
这份文件是Kubernetes kubeadm 集群的网络功能端到端(E2E)测试用例,核心目标:验证通过 kubeadm 部署的 Kubernetes 集群,核心网络连通性、DNS 解析、Service 网络、Pod 网络等基础能力完全符合预期。
文件路径:test/e2e_kubeadm/networking_test.go
适用版本:Kubernetes 1.35.3
测试框架:基于 Kubernetes E2E 测试框架 + Ginkgo/Gomega BDD 测试库
一、文件整体结构与作用
核心定位
这是kubeadm 专属的网络冒烟/验收测试,仅针对 kubeadm 搭建的集群,不覆盖其他部署方式。
它确保:
- Pod 之间可以跨节点通信
- Service 可以正常访问(ClusterIP/NodePort)
- 集群 DNS(CoreDNS)解析正常
- kube-proxy、CNI 网络插件工作正常
- 集群内外网络连通性符合规范
代码结构
packagee2e_kubeadm// 归属 kubeadm E2E 测试包import(// 测试框架依赖// Kubernetes 核心依赖(client-go、corev1、networkingv1)// 工具函数(pod 操作、service 操作、网络探测))// 全局常量/变量(测试镜像、端口、超时时间)var_=SIGDescribe("Networking",func(){// 所有网络测试用例集合Context("when a Pod and Service exist",func(){...})})二、核心依赖与前置条件
关键依赖
- 测试框架
k8s.io/kubernetes/test/e2e/framework:K8S E2E 测试核心库github.com/onsi/ginkgo/v2/gomega:BDD 断言库
- K8S 客户端
k8s.io/client-go/kubernetes:操作集群资源
- 测试工具
e2epod:Pod 创建、等待、探测e2eservice:Service 创建、访问测试e2enetwork:网络连通性、DNS 测试工具