K8s 如何通过 DNS 访问 Service ?

K8s 如何通过 DNS 访问 Service ?_第1张图片


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

image-20221219101713029

coredns 是一个 DNS 服务器,每次创建 Service 时,coredns 都会添加该 Service 的 DNS 记录。

接下来创建一个临时 Pod 来验证通过 DNS 来访问 Service:

# 创建Pod
kubectl run busybox --rm -it --image=busybox /bin/sh

# 验证(由于namespace都是default,所以可以忽略不写)
wget <ServiceName>:<namaspace>

K8s 如何通过 DNS 访问 Service ?_第2张图片

如果 namespace 不同,就需要跟上 namespace,具体案例如下:

# 先创建个namespace
kubectl create namespace dns-test

# 再启动一个测试deployment/Service资源
kubectl apply -f nginx1.yml

K8s 如何通过 DNS 访问 Service ?_第3张图片

验证:

K8s 如何通过 DNS 访问 Service ?_第4张图片

以上就是 DNS 访问 Service 的具体方法。

你可能感兴趣的:(DevOps,kubernetes,docker,容器)