kubernetes - 名称在 Kubernetes 中无法使用 docker 解析

标签 kubernetes google-kubernetes-engine

当我运行 nslookup在我的 docker 容器上,我收到此错误

 nslookup  10.0.96.xx
 nslookup: can't resolve '(null)': Name does not resolve

 Name:      10.0.96.xx
 Address 1: 10.0.96.xx

我已经读到问题来自 docker,它在 resolv.conf 上注入(inject)了这个。 :
nameserver 10.109.0.xx
nameserver 10.96.0.xx
search devlan.xxx.corp poc.svc.cluster.local svc.cluster.local cluster.local
options ndots:2 edns0

使用 kubernetes,我尝试在我的 PodConfFile.yaml 上使用以下参数覆盖它.
spec:
  dnsPolicy: "None"
#  dnsPolicy: ClusterFirst
  dnsConfig:
   nameservers:
     - 10.109.0.xx
     - 10.96.0.xx
   searches:
     - devlan.xxx.corp
     - poc.svc.cluster.local
     - svc.cluster.local
     - cluster.local
   options:
     - name: ndots
       value: "2"
     - name: edns0

你对解决这个问题有什么建议吗?
  • Docker 版本:18.03.1-ce
  • go1.9.3
  • 最佳答案

    我找到了解决这个问题的方法。在您的 Pod 上删除此参数

    nameserver options searches



    并添加一个
    spec:
      dnsPolicy: Default
    

    它将直接继承 DNS 配置。

    您将能够 ping 外部服务。

    关于kubernetes - 名称在 Kubernetes 中无法使用 docker 解析,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51138175/

    相关文章:

    kubernetes - 使用 Airflow KubernetesPodOperator 的私有(private)镜像

    Kubernetes 通过复制获取集群锁

    kubernetes - Kubernetes 更新 minReplicas 和 max Replica

    google-kubernetes-engine - 我可以在带有 NGINX INGRESS Controller 的 Google Kubernetes 引擎中使用 Google 托管证书吗?

    google-cloud-platform - 具有服务帐号滞后日志记录角色日志的 GCP 资源

    java - 微服务调用同一 kubernetes 集群中的另一个微服务

    kubernetes - 启用Istio的GKE群集无法与Google Service Infrastructure API可靠地通信

    google-kubernetes-engine - GCP Composer Airflow 任务卡住或卡住

    google-cloud-platform - Heapster 没有将指标推送到 Google 容器引擎上的 Stackdriver

    kubernetes - GKE自定义内部服务域