【问题标题】:Adding nameservers in gcloud在 gcloud 中添加名称服务器
【发布时间】:2018-11-05 19:57:20
【问题描述】:

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

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

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

【问题讨论】:

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


    【解决方案1】:

    您必须将上游 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
    

    因此,当创建 pod 时,它们会包含一个 /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"]
    

    【讨论】:

    • 是否可以将 dnsConfig: 添加到部署?目前我看到这个错误:spec.template.spec.dnsConfig: Forbidden: DNSConfig: custom pod DNS is disabled by feature gate
    • 您需要启用CustomPodDNS 功能门。更多信息:kubernetes.io/docs/reference/command-line-tools-reference/… 可能需要在 kubeletkube-apiserver 上启用
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-05-18
    • 2013-01-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多