k8s DNS无法解析集群内部域名问题
2020年1月16日大约 1 分钟
参考文档:https://kubernetes.io/docs/tasks/administer-cluster/dns-debugging-resolution/
问题排查步骤
- 使用busybox检查,创建
busybox.yml
文件内容如下:
apiVersion: apps/v1
kind: Deployment
metadata:
name: busybox-deployment
spec:
replicas: 1
selector:
matchLabels:
app: busybox
template:
metadata:
labels:
app: busybox
spec:
restartPolicy: Always
containers:
- name: busybox
command:
- sleep
- "3600"
image: busybox:1.28.3
- 执行命令
$ kubectl apply -f busybox.yml
启动, - 执行命令:
$ kubectl exec -it $(kubectl get pods -l app=busybox -o name) sh
进入busybox容器 - 执行命令:
$ nslookup kubernetes.default
若显示如图所示则表示正常,否则进行下一步检查。 
- 执行命令
# 查看coredns的pod是否正常
kubectl get pods -n kube-system | grep coredns
# 查看日志是否出现W,E,F开头的的日志,W表示warning,E表示ERROR,F表示Failure。若无异常则继续
for p in $(kubectl get pods --namespace=kube-system -l k8s-app=kube-dns -o name); do kubectl logs --namespace=kube-system $p; done
# 命令删除pod(pod会自动重启)之后再重复上述检查DNS步骤
$(kubectl get pods --namespace=kube-system -l k8s-app=kube-dns -o name); do kubectl delete pod $p -n kube-system; done
原创声明
平台文章均为原创文章,未经许可,禁止转载。
如需转载,请联系作者获取授权,并注明来源及原文链接。