场景: 测试环境k8s内部pod程序需要访问k8s集群外部的域名服务,之前是在pod写死hosts,域名多的情况下这种方式太难以维护。
实现使用外部dns也很简单,修改coredns.yaml文件即可
略...
---
apiVersion: v1
kind: ConfigMap
metadata:
name: coredns
namespace: kube-system
labels:
addonmanager.kubernetes.io/mode: EnsureExists
data:
Corefile: |
.:53 {
errors
health
kubernetes cluster.local in-addr.arpa ip6.arpa { #cluster.local集群域名
pods insecure
upstream
fallthrough in-addr.arpa ip6.arpa
ttl 30
}
prometheus :9153
#forward . /etc/resolv.conf
forward . 192.168.6.242
cache 30
loop
reload
loadbalance
}
---
略...
修改forward . /etc/resolv.conf 成 forward . 192.168.6.242
重启coredns (先删除后创建)
测试
进入pod
ping 外部域名
能ping通证明成功。