方案 | 优势 |
简单直观,可以添加任意解析记录。 | |
无需提前知道解析记录的 IP 地址,但要求解析记录指向的地址必须部署在集群中。 | |
可以管理大量的解析记录,记录的管理都在自建 DNS 中,增删记录无需修改 CoreDNS 配置。 |
kubectl edit configmap coredns -n kube-system
hosts {192.168.1.6 harbor.example.com192.168.1.8 es.example.comfallthrough}
harbor.example.com
指向192.168.1.6;es.example.com
指向192.168.1.8。apiVersion: v1data:Corefile: |2-.:53 {errorshealthkubernetes cluster.local. in-addr.arpa ip6.arpa {pods insecureupstreamfallthrough in-addr.arpa ip6.arpa}hosts {192.168.1.6 harbor.example.com192.168.1.8 es.example.comfallthrough}prometheus :9153forward . /etc/resolv.confcache 30reloadloadbalance}kind: ConfigMapmetadata:labels:addonmanager.kubernetes.io/mode: EnsureExistsname: corednsnamespace: kube-system
kubectl edit configmap coredns -n kube-system
rewrite name es.example.com es.logging.svc.cluster.local
es.example.com
指向部署在 logging
命名空间下的 es
服务,如有多个域名可添加多行。apiVersion: v1data:Corefile: |2-.:53 {errorshealthkubernetes cluster.local. in-addr.arpa ip6.arpa {pods insecureupstreamfallthrough in-addr.arpa ip6.arpa}rewrite name es.example.com es.logging.svc.cluster.localprometheus :9153forward . /etc/resolv.confcache 30reloadloadbalance}kind: ConfigMapmetadata:labels:addonmanager.kubernetes.io/mode: EnsureExistsname: corednsnamespace: kube-system
/etc/resolv.conf
文件中配置的 nameserver 解析。forward . /etc/resolv.conf
/etc/resolv.conf
显式替换为自建的 DNS 服务器地址。示例如下:forward . 10.10.10.10
apiVersion: v1data:Corefile: |2-.:53 {errorshealthkubernetes cluster.local. in-addr.arpa ip6.arpa {pods insecureupstreamfallthrough in-addr.arpa ip6.arpa}prometheus :9153forward . 10.10.10.10cache 30reloadloadbalance}kind: ConfigMapmetadata:labels:addonmanager.kubernetes.io/mode: EnsureExistsname: corednsnamespace: kube-system
/etc/resolv.conf
中的 nameserver 添加到自建 DNS 的上游,因为部分服务依赖腾讯云内部 DNS 解析,如果未将其设为自建 DNS 的上游,可能导致部分服务无法正常工作。本文以 BIND 9 为例修改配置文件,将上游 DNS 地址写入 forwarders 中。示例如下:options {forwarders {183.60.83.19;183.60.82.98;};...
本页内容是否解决了您的问题?