首页 > 解决方案 > 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) 在某些节点中不起作用?

标签: kubernetes

解决方案


这可能有多个问题。一些常见的故障排除步骤是:

  • 检查本地 DNS 配置
  • 检查 core-dns pod 及其日志

您可以按照 DNS 解析调试(https://kubernetes.io/docs/tasks/administer-cluster/dns-debugging-resolution/)页面获取详细的故障排除指南。


推荐阅读