合理配置Coredns的Hosts

在日常运维Kubernetes中经常会遇到很多网络问题,比如在一个Pod中常常需要访问一些业务域名,或者别的集群的域名,如果想要解决那就要搭建一整套DNS系统,来让所有集群跟环境统一使用,但这样未免太麻烦,有时候我们只是想简单的实现Pod能把这个域名解析到某个IP即可,我记得Coredns支持自定义Hosts文件,在配置更新后,Pod可以优先使用coredns定义好的hosts,话不多说,开始修改。


直接编辑coredns的cm更改即可

kubectl edit cm -n kube-system coredns
apiVersion: v1
data:
  Corefile: |-
    .:5353 {
        bind {$POD_IP}
        cache 30
        errors
        health {$POD_IP}:8080
        kubernetes cluster.local in-addr.arpa ip6.arpa {
          pods insecure
          fallthrough in-addr.arpa ip6.arpa
        }
        #加入下方hosts字段即可
        hosts {
          192.168.1.1 www.example.com
          fallthrough
        }
        loadbalance round_robin
        prometheus {$POD_IP}:9153
        forward . /etc/resolv.conf
        reload
    }
kind: ConfigMap
metadata:
  labels:
    app: coredns
    k8s-app: coredns
    kubernetes.io/cluster-service: "true"
    kubernetes.io/name: CoreDNS
    release: cceaddon-coredns
  name: coredns
  namespace: kube-system
  resourceVersion: "460"
kubernetes中使用Prometheus-Operator和BlackBox—Exporter实现监控域名钉钉告警
使用k8spacket对k8s集群中微服务之间链路调用可视化