WLinux
发布于 2026-04-13 / 0 阅读
0
0

测试Kubernetes集群

测试k8s中创建的pod是否可以正常访问网络

执行下面命令,在k8s集群上创建一个名为busybox的pod,然后在该pod内运行一个BusyBox的容器

[root@bs-m1 ~]# kubectl run busybox --image busybox:1.28 --restart=Never --rm -it busybox -- sh

命令解析:

  • kubectl run busybox:创建一个新的Pod或部署到已有的Deployment、StatefulSet中。这里使用此命令创建了一个新的Pod,Pod的名字是busybox。

  • --image busybox:1.28:Pod使用的Docker镜像的名称和版本。这里使用的是版本为1.28的busybox镜像。

  • --restart=Never:Pod的重启策略。这里设置为Never,即如果该Pod出现故障,就不会自动重启。

  • --rm:容器退出后,自动清理该容器的资源(例如存储卷等)。

  • -it:以交互式终端的方式运行容器。

  • busybox:要启动的容器的名字。这里使用了busybox,因为我们正在运行一个busybox镜像。

  • sh:在容器中执行的命令是shell(sh)。

进入容器后,执行下面命令探测网络情况

/ # ping www.baidu.com 
PING www.baidu.com (220.181.111.232): 56 data bytes
64 bytes from 220.181.111.232: seq=0 ttl=52 time=3.971 ms
64 bytes from 220.181.111.232: seq=1 ttl=52 time=18.702 ms
64 bytes from 220.181.111.232: seq=2 ttl=52 time=3.854 ms

可以看到,在Kubemnetes中创建的Pod能访问百度网站,说明Calico网络插件已经被正常安装了,可以访问网络。

测试CoreDNS是否正常

CoreDNS是一个Kubemmetes集群中非常重要的DNS服务器,它通过提供命名服务简化了服务间通信和DNS解析的管理和维护。

在Kubernetes中,每个Pod都有一个唯一的DNS名称,例如pod-name.namespace-name.svc.cluster-domain.tld,其中cluster-domain.tld是集群中使用的域名后缀。每个服务都有一个DNS名称,例如service-name.namespace-name.svc.cluster-domain.tld,它将解析为该服务的群集P地址。

CoreDNS使用插件来支持各种DNS记录类型,例如A、CNAME、SRV等。它可以与Kubernetes的API服务器进行交互,以了解Kuberetes中运行的应用程序和服务的状态。CoreDNS还支持在Kubermetes中使用自定义DNS名称,这些名称将映射到外部DNS记录。

如果要测试CoreDNS是否正常工作,可执行以下命令:

/ # nslookup kubernetes.default.svc.cluster.local
Server:    192.168.24.10
Address 1: 192.168.24.10 kube-dns.kube-system.svc.cluster.local

Name:      kubernetes.default.svc.cluster.local
Address 1: 192.168.24.1 kubernetes.default.svc.cluster.local

nslookup kubernetes.default.svc.cluster.local用于解析Kubernetes中的apiserver这个Pod前面的代理Service域名,内部Service的名称是通过coreDNS来解析的。192.168.24.10就是coreDNS的clusterIP,说明coreDNS配置好了。


评论