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

使用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

kubectl edit cm coredns -n kube-system

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

修改方式如下

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来解析不同域名了。

相关文章

学习编程是顺着互联网的发展潮流,是一件好事。新手如何学习...
IT行业是什么工作做什么?IT行业的工作有:产品策划类、页面...
女生学Java好就业吗?女生适合学Java编程吗?目前有不少女生...
Can’t connect to local MySQL server through socket \'/v...
oracle基本命令 一、登录操作 1.管理员登录 # 管理员登录 ...
一、背景 因为项目中需要通北京网络,所以需要连vpn,但是服...