在Kubernetes集群中,Pods通常需要与外部域名进行通信。为了解析这些域名,Kubernetes使用自定义DNS服务器来管理Pods的DNS解析。但是,在AWS EKS上,可能会出现nameserver相关的问题,从而导致Pod无法解析外部域名。以下是解决该问题的步骤:
kubectl get cm -n kube-system kube-dns -o yaml
apiVersion: v1 data: stubDomains: | { "eks.amazonaws.com": [ "10.100.0.10" ] } kind: ConfigMap metadata: name: kube-dns namespace: kube-system
kubectl apply -f kube-dns.yaml
kubectl delete pod -l k8s-app=kube-dns -n kube-system
kubectl run -it --rm dnstest --image=busybox --restart=Never -- nslookup kubernetes
如果DNS配置生效,则输出应该包含相关的IP地址。如果仍然无法解析,请检查VPC DHCP设置和安全组规则。