kubernetes - busybox dns 解析在 kuberenetes 的某些节点中不起作用
问题描述
我在 kubernetes 集群(v1.15.2)的 3 个节点中部署 3 个busybox(1.28.3),每个节点都包含一个 pod,这是我的 yaml:
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
name: busybox-deployment
spec:
replicas: 1
template:
metadata:
labels:
app: busybox
spec:
restartPolicy: Always
containers:
- name: busybox
command:
- sleep
- "3600"
image: busybox:1.28.3
当我登录每个 pod 并执行 nslookup 时:
nslookup kubernetes.default.svc.cluster.local
只有一个节点响应正确:
/ # nslookup kubernetes.default.svc.cluster.local
Server: 10.254.0.2
Address 1: 10.254.0.2 kube-dns.kube-system.svc.cluster.local
Name: kubernetes.default.svc.cluster.local
Address 1: 10.254.0.1 kubernetes.default.svc.cluster.local
其他 2 个节点响应如下:
/ # nslookup kubernetes.default.svc.cluster.local
Server: 10.254.0.2
Address 1: 10.254.0.2
nslookup: can't resolve 'kubernetes.default.svc.cluster.local'
为什么 CoreDNS(1.3.1) 在某些节点中不起作用?
解决方案
这可能有多个问题。一些常见的故障排除步骤是:
- 检查本地 DNS 配置
- 检查 core-dns pod 及其日志
您可以按照 DNS 解析调试(https://kubernetes.io/docs/tasks/administer-cluster/dns-debugging-resolution/)页面获取详细的故障排除指南。
推荐阅读
- javascript - Javascript - 如何创建一个对象数组,其中对象的键都具有相同的值
- angular - 如何在不包含角度 6 的情况下从另一个组件调用方法
- java - 无法将应用内产品添加到已发布的应用
- linux - Oracle JDBC 驱动程序是否适用于 Active Directory 身份验证?
- jquery - jQuery 选择一个类的下一个实例
- python - 日期列中的 Python 范围
- c# - 按钮发送命令 SerialPort1_DataReceived (EventArgs e) 发送和接收响应,与不需要它的人产生冲突
- ruby-on-rails - Docker build 说的是无法满足的约束
- angular - AngularJS 6 中的表单
- reporting - Pentaho 报告