Kubernetes集群域名解析配置指南
方法1:通过修改系统文件实现(不推荐)
警告:直接修改系统文件可能导致DNS配置异常,请谨慎操作
操作步骤
- 修改宿主机DNS配置文件
sudo tee -a /etc/resolv.conf <<EOF
nameserver 8.8.8.8
nameserver 114.114.114.114
EOF
- 配置本地域名解析
sudo tee -a /etc/hosts <<EOF
xx.xx.xx.xx harbor.hly.com
EOF
方法2:通过CoreDNS配置实现(推荐)
操作步骤
- 修改CoreDNS配置
# 获取当前ConfigMap
kubectl get cm coredns -n kube-system -o yaml > coredns-cm.yaml
修改coredns-cm.yaml
中的Corefile部分:
apiVersion: v1
kind: ConfigMap
metadata:
name: coredns
namespace: kube-system
data:
Corefile: |
.:53 {
errors
health {
lameduck 5s
}
ready
kubernetes cluster.local in-addr.arpa ip6.arpa {
pods insecure
fallthrough in-addr.arpa ip6.arpa
}
hosts {
xx.xx.xx.xx harbor.hly.com # 自定义域名
fallthrough
}
prometheus :9153
forward . /etc/resolv.conf {
prefer_udp
}
}
- 应用修改后的配置
kubectl apply -f coredns-cm.yaml
- 重启CoreDNS组件
# 查看当前Pod
kubectl get pods -n kube-system | grep coredns
# 删除现有Pod(示例)
kubectl delete pod coredns-6b55b6764d-7wdsq -n kube-system
kubectl delete pod coredns-6b55b6764d-d4q72 -n kube-system
验证配置
- 创建测试Pod
kubectl run -i --tty --image=busybox dns-test --restart=Never --rm -- /bin/sh
- 执行域名解析测试
nslookup harbor.hly.com
评论区