TKE/EKS集群如何配置上游的dns解析域名

2022-06-16 13:08:48 浏览数 (1)

使用k8s的时候,很多人会有一个这样的需求,不同的域名通过不同的dns服务器来进行解析,k8s中域名解析都是通过coredns来说实现的,要想实现上面的场景,我们只需要在coredns的配置里面给不同的域名配置好上游的dns即可。

下面我们来说说如何在tke和eks集群配置,本次操作是在tke集群配置,eks参考同样的方式配置即可。

1. 获取域名和dns服务器关系

这里比如a.com的域名用1.1.1.1和2.2.2.2解析

b.com这类域名通过3.3.3.3和4.4.4.4解析

2. 修改coredns配置

如果是用kubectl命令操作集群,可以执行如下命令修改kube-system命名空间下的coredns这个configmap

代码语言:javascript复制
kubectl edit cm coredns -n kube-system

如果是控制台操作,可以直接编辑yaml

修改方式如下

代码语言:javascript复制
apiVersion: v1
data:
  Corefile: |2-
        .:53 {
            template ANY HINFO . {
                rcode NXDOMAIN
            }
            errors
            health
            kubernetes cluster.local. in-addr.arpa ip6.arpa {
                pods insecure
                upstream
                fallthrough in-addr.arpa ip6.arpa
            }
            prometheus :9153
            forward . /etc/resolv.conf {
                prefer_udp
            }
            cache 30
            reload
            loadbalance
        }
        a.com:53 {
            errors
            cache 30
            forward . 1.1.1.1 2.2.2.2
        }
        b.com:53 {
            errors
            cache 30
            forward . 3.3.3.3 4.4.4.4
        }
kind: ConfigMap
metadata:
  labels:
    addonmanager.kubernetes.io/mode: EnsureExists
  name: coredns
  namespace: kube-system

这里参考上面的方式加上配置即可,注意加的位置,是和最外层大括号同级,如果你的dns服务器有多个,可以用空格隔开。

3. 重建coredns pod生效

修改保存好coredns的configmap后,删除重建下coredns的pod,然后你到业务容器里面就可以用不通的dns来解析不同域名了。

0 人点赞