CKA [Installation] – Ubuntu 从0架设,安装CoreDns

在 Kubernetes (K8s) 中,CoreDNS 是集群内的 DNS 服务,它在整个集群的网络通信中扮演非常关键的角色。

🧩 一、CoreDNS 的作用

CoreDNS 是 Kubernetes 默认的 Cluster DNS 插件,主要功能如下:

1. Pod 之间的名称解析(Service Discovery)

Kubernetes 中的服务(Service)会自动分配一个域名,例如:

my-service.my-namespace.svc.cluster.local

当某个 Pod 想访问 my-service 时,它其实通过 DNS 查询到该 Service 对应的 ClusterIP(虚拟 IP)。

✅ CoreDNS 就是负责回答这个“my-service 是哪个 IP”的问题。

2. 解析外部域名

CoreDNS 不只解析集群内部的名字。
如果 Pod 想访问外部网站(如 google.com),CoreDNS 会把查询转发给外部的上游 DNS(比如 /etc/resolv.conf 中配置的 DNS)。

✅ 实践测试

1. 查看cluster info

kubectl cluster-info

2. 开启busybox, 然后进入container内执行ping和nslookup,在还没装之前是完全无法从域名解析ip的

kubectl run busybox --image=busybox:1.28 --command -- sleep 3600
kubectl exec -it busybox -- sh
nslookup google.com
ping 8.8.8.8

3. 安装CoreDns

wget https://raw.githubusercontent.com/zealvora/certified-kubernetes-administrator/master/Domain%206%20-%20Cluster%20Architecture%2C%20Installation%20%26%20Configuration/coredns.yaml
kubectl create -f coredns.yaml

4. 安装CoreDns之后进行测试,就能nslookup到ip了

kubectl exec -it busybox -- sh
nslookup google.com

Loading

Facebook评论