Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/kubernetes/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Kubernetes 在gcloud中添加名称服务器_Kubernetes_Google Cloud Platform_Kube Dns - Fatal编程技术网

Kubernetes 在gcloud中添加名称服务器

Kubernetes 在gcloud中添加名称服务器,kubernetes,google-cloud-platform,kube-dns,Kubernetes,Google Cloud Platform,Kube Dns,我有一个从gcloud到本地站点的VPN隧道。 本地站点有两个名称服务器运行在172.16.248.32和172.16.248.32 这些名称服务器解析我们的本地域名,如mycompany.local 如何从gcloud使用这些名称服务器,以便Kubernetes集群中的POD也解析mycompany.local?您必须将上游DNS服务器配置为172.16.248.32和其他IP 你可以在这样的平台上进行: apiVersion: v1 kind: Pod metadata: namespa

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

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


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

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

你可以在这样的平台上进行:

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
nameserver 172.16.248.32
search ns1.svc.cluster.local my.dns.search.suffix
options ndots:2 edns0
因此,在创建POD时,它们包括一个
/etc/resolv.conf
,如下所示:

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
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
文件,所有这些文件都有文档记录:

coredns

# 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 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"]
kube dns

# 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 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:禁止:dnsConfig:自定义pod DNS被功能网关禁用您需要启用
CustomPodDNS
功能网关。此处的更多信息:可能需要在
kubelet
kube apiserver