
在 K8s 集群中,除了可以通过 Cluster IP 访问 Service 外,还可通过 DNS 进行访问,在查看系统名称空间的 deployment 时,你会发现有个叫 coredns 的组件,如下图所示:

coredns 是一个 DNS 服务器,每次创建 Service 时,coredns 都会添加该 Service 的 DNS 记录。
接下来创建一个临时 Pod 来验证通过 DNS 来访问 Service:
# 创建Pod
kubectl run busybox --rm -it --image=busybox /bin/sh
# 验证(由于namespace都是default,所以可以忽略不写)
wget <ServiceName>:<namaspace>

如果 namespace 不同,就需要跟上 namespace,具体案例如下:
# 先创建个namespace
kubectl create namespace dns-test
# 再启动一个测试deployment/Service资源
kubectl apply -f nginx1.yml

验证:

以上就是 DNS 访问 Service 的具体方法。
本文详细介绍了如何在Kubernetes(K8s)集群中使用DNS访问Service,包括核心DNS组件Coredns的作用,创建Pod验证DNS访问的过程,以及在不同Namespace下的操作步骤。
1万+

被折叠的 条评论
为什么被折叠?



