在gcloud中添加名称服务器

时间:2018-11-05 19:57:20

标签: kubernetes google-cloud-platform kube-dns

我有一条从gcloud到我们本地站点的VPN隧道。 本地站点有两个在172.16.248.32172.16.248.32上运行的名称服务器

这些名称服务器解析我们的本地域名,例如mycompany.local

如何使用gcloud中的这些名称服务器,以便Kubernetes集群中的Pod也可以解析mycompany.local?

1 个答案:

答案 0 :(得分:2)

您必须将上游DNS服务器配置为172.16.248.32和其他IP。

您可以在per pod basis上执行以下操作:

apiVersion: v1
kind: Pod
metadata:
  namespace: default
  name: dns-example
spec:
  containers:
    - name: test
      image: nginx
  dnsPolicy: "None"
  dnsConfig:
    nameservers:
      - 172.16.248.32
    searches:
      - ns1.svc.cluster.local
      - mycompany.local
    options:
      - name: ndots
        value: "2"
      - name: edns0

因此,在创建广告连播后,它们会包含一个/etc/resolv.conf,如下所示:

nameserver 172.16.248.32
search ns1.svc.cluster.local my.dns.search.suffix
options ndots:2 edns0

无论您使用的是coredns还是kube-dns,另一个选项都将有所不同,即正在配置存根域(这些配置还将传播到pod中的/etc/resolv.conf文件中,所有记录在here中:

核心域名

# coredns in the coredns ConfigMap
apiVersion: v1
kind: ConfigMap
metadata:
  name: coredns
  namespace: kube-system
data:
  Corefile: |
    .:53 {
        errors
        health
        kubernetes cluster.local in-addr.arpa ip6.arpa {
           pods insecure
           upstream 172.16.0.1
           fallthrough in-addr.arpa ip6.arpa
        }
        prometheus :9153
        proxy . 172.16.0.1
        cache 30
        loop
        reload
        loadbalance
    }
    mycompany.local:53 {
        errors
        cache 30
        proxy . 172.16.248.32
    }

kube-dns

# kube-dns in the kube-dns ConfigMap
apiVersion: v1
kind: ConfigMap
metadata:
  name: kube-dns
  namespace: kube-system
data:
  stubDomains: |
    {"mycompany.local": ["172.16.248.32"]}
  upstreamNameservers: |
    ["8.8.8.8", "8.8.4.4"]
相关问题