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/
我按照这个 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/