Kubernetes dns 外部资源

Kubernetes dns external resources

我按照这个 tutorial.

安装了 kubernetes

我的一个容器试图从外部域获取资源,例如 google.com。但它失败了,因为 kubernetes dns 不使用外部名称解析。

如何使用 dns 8.8.8.8 配置 kubernetes?

容器和节点中nslookup google.com的结果是什么?

如果 pod 的 dnsPolicy 是 ClusterFirst,google.comDNS 查询应该转发到节点指定的上游 DNS。

显示 kube-dns 容器配置和日志也很有用。

我们也在解决这个问题。 silverfox 已经提到 "dnsPolicy" -- 默认情况下,pod 配置为从托管节点继承 dns 配置。

我还没有尝试过(我们通过 api 控制我们的 pod 规范),但显然你可以通过在 pod 中将 Pods dnsPolicy 指定为 "None" 来覆盖它yaml。您需要使用 dnsConfig 自定义 pod 的配置。

在 yml 中:

spec:
   dnsPolicy: None
   dnsConfig:
     nameservers:
       - 1.1.1.1
       - 8.8.8.8

文档写得很好:https://kubernetes.io/docs/concepts/services-networking/dns-pod-service/