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
Facebook评论