zoukankan      html  css  js  c++  java
  • CoreDNS Plugins ---> hosts

    需求

    kubernetes集群外部有少量服务,kubernetes集群内部pod需要通过服务所在的主机的hostname访问服务。

    解决方案

    通过coredns的hosts插件配置kubernetes集群的dns服务,使集群内部可通过hostname/域名访问外部服务。
    参考:CoreDNS hosts

    hosts插件格式

    hosts [FILE [ZONES...]] {
        [INLINE]
        fallthrough [ZONES...]
    }
    
    • FILE:需要读取与解析的hosts文件;如果省略,默认取值"/etc/hosts";每5s扫描一次hosts文件的变更。
    • ZONES:如果为空,取配置块中的zone。
    • INLINE:宿主机hosts文件在corefile中的内联;在"fallthrough"之前的所有"INLINE"都可视为hosts文件的附加内容,hosts文件中相同条目将被覆盖,以"INLINE"为准。
    • fallthrough:如果zone匹配且无法生成记录,将请求传递给下一个插件;如果省略,对所有zones有效,如果列出特定zone,则只有列出的zone受到影响。

    范例

    Kubernetes采用CoreDNS中的coredns-cm.yaml为基础变更,如下:

    cat coredns-cm.yaml
    
    apiVersion: v1
    kind: ConfigMap
    metadata:
      name: coredns
      namespace: kube-system
      labels:
          addonmanager.kubernetes.io/mode: EnsureExists
    data:
      Corefile: |
        .:53 {
            errors
            health
            # 省略了”FILE“,"ZONES"等字段
            hosts {
                # 1个hostname映射1个ip;
                # 虽然格式"172.30.200.21 172.30.200.22 172.30.200.23 kubenode1"可以正常下发configmap资源,但只有第一个ip生效
                172.30.200.21   kubenode1
                172.30.200.22   kubenode2
                172.30.200.23   kubenode3
                fallthrough
            }
            kubernetes cluster.local in-addr.arpa ip6.arpa {
                pods insecure
                upstream
                fallthrough in-addr.arpa ip6.arpa
            }
            prometheus :9153
            proxy . /etc/resolv.conf
            cache 30
            loop
            reload
            loadbalance
        }
    

    验证

    # 替换configmap
    kubectl replace -f coredns-cm.yaml
    
    # ping外部hostname
    kubectl exec -it dnstest -- ping kubenode1
    kubectl exec -it dnstest -- ping kubenode2
    kubectl exec -it dnstest -- ping kubenode3
    

  • 相关阅读:
    程序员优化程序流程
    iOS开发优化的25个方案
    彻底解决_OBJC_CLASS_$_某文件名", referenced from:问题转
    svn服务器搭建与配置
    mac 显示隐藏文件夹
    HDU 2276 Kiki & Little Kiki 2 矩阵构造
    HDU 3306 Another kind of Fibonacci ---构造矩阵***
    HDU 1575 Tr A----矩阵相乘题。
    矩阵的模板----
    HDU 1757 矩阵求第n的递推式
  • 原文地址:https://www.cnblogs.com/netonline/p/9953921.html
Copyright © 2011-2022 走看看