在 gcloud 中添加名称服务器
Adding nameservers in gcloud
我有一个从 gcloud 到我们本地站点的 VPN 隧道。
本地站点在 172.16.248.32
和 172.16.248.32
上有 2 个名称服务器 运行
这些名称服务器解析我们的本地域名,例如mycompany.local
我如何使用 gcloud 中的这些名称服务器,以便我的 Kubernetes 集群中的 pods 也解析 mycompany.local?
您必须将上游 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
因此,当创建 pods 时,它们会包含一个 /etc/resolv.conf
,如下所示:
nameserver 172.16.248.32
search ns1.svc.cluster.local my.dns.search.suffix
options ndots:2 edns0
无论您使用的是 coredns 还是 kube-dns,另一个选项都会有所不同,那就是配置存根域(这些配置也会传播到 pods 中的 /etc/resolv.conf
文件,所有记录在案 here:
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
# 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"]
我有一个从 gcloud 到我们本地站点的 VPN 隧道。
本地站点在 172.16.248.32
和 172.16.248.32
这些名称服务器解析我们的本地域名,例如mycompany.local
我如何使用 gcloud 中的这些名称服务器,以便我的 Kubernetes 集群中的 pods 也解析 mycompany.local?
您必须将上游 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
因此,当创建 pods 时,它们会包含一个 /etc/resolv.conf
,如下所示:
nameserver 172.16.248.32
search ns1.svc.cluster.local my.dns.search.suffix
options ndots:2 edns0
无论您使用的是 coredns 还是 kube-dns,另一个选项都会有所不同,那就是配置存根域(这些配置也会传播到 pods 中的 /etc/resolv.conf
文件,所有记录在案 here:
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
# 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"]