使用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来解析不同域名了。
原文地址:https://cloud.tencent.com/developer/article/2024565
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。