利源投资 發表於 2022-9-7 17:51:00

CoreDNS实现自定义域名解析

<p>参考:https://support.huaweicloud.com/usermanual-cce/cce_01_0361.html</p>
<h4>一、修改CoreDNS Hosts配置</h4>
<p>修改CoreDNS配置文件,将自定义域名添加到hosts中。</p>
<p>例如将www.example.com指向192.168.1.1,通过CoreDNS解析www.example.com时,会返回192.168.1.1。</p>
<div class="cnblogs_Highlighter">
<pre class="brush:csharp;gutter:true;">须知:
此处配置不能遗漏fallthrough字段,fallthrough表示当在hosts找不到要解析的域名时,会将解析任务传递给CoreDNS的下一个插件。如果不写fallthrough的话,任务就此结束,不会继续解析,会导致集群内部域名解析失败的情况。
hosts的详细配置请参见https://coredns.io/plugins/hosts/。</pre>
</div>
<div class="cnblogs_code">
<pre># kubectl edit configmap coredns -n kube-<span style="color: rgba(0, 0, 0, 1)">system
# Please edit the </span><span style="color: rgba(0, 0, 255, 1)">object</span> below. Lines beginning with a <span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">#</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(0, 0, 0, 1)"> will be ignored,
# and an empty file will abort the edit. If an error occurs </span><span style="color: rgba(0, 0, 255, 1)">while</span> saving <span style="color: rgba(0, 0, 255, 1)">this</span><span style="color: rgba(0, 0, 0, 1)"> file will be
# reopened with the relevant failures.
#
apiVersion: v1
data:
Corefile: </span>|<span style="color: rgba(0, 0, 0, 1)">
    .:</span><span style="color: rgba(128, 0, 128, 1)">53</span><span style="color: rgba(0, 0, 0, 1)"> {
      errors
      health {
         lameduck 5s
      }
      ready
      kubernetes cluster.local </span><span style="color: rgba(0, 0, 255, 1)">in</span>-<span style="color: rgba(0, 0, 0, 1)">addr.arpa ip6.arpa {
         pods insecure
         fallthrough </span><span style="color: rgba(0, 0, 255, 1)">in</span>-<span style="color: rgba(0, 0, 0, 1)">addr.arpa ip6.arpa
         ttl </span><span style="color: rgba(128, 0, 128, 1)">30</span><span style="color: rgba(0, 0, 0, 1)">
      }
<span style="color: rgba(255, 102, 0, 1)">      hosts {
         </span></span><span style="color: rgba(255, 102, 0, 1)">172.16.43.178   bx-cdh01
         172.16.43.187   bx-cdh02
         172.16.43.189   bx-cdh03
         172.16.43.192   bx-cdh04
         172.16.43.193   bx-cdh05
         172.16.43.177   cdh01
         172.16.43.199   cdh02
         172.16.43.184   cdh03
         172.16.43.182   cdh04
         172.16.43.159</span><span style="color: rgba(0, 0, 0, 1)"><span style="color: rgba(255, 102, 0, 1)">   cdh05
         fallthrough
      }</span>
      prometheus :</span><span style="color: rgba(128, 0, 128, 1)">9153</span><span style="color: rgba(0, 0, 0, 1)">
      forward . </span>/etc/<span style="color: rgba(0, 0, 0, 1)">resolv.conf
      cache </span><span style="color: rgba(128, 0, 128, 1)">30</span><span style="color: rgba(0, 0, 0, 1)">
      loop
      reload
      loadbalance
    }
kind: ConfigMap
metadata:
creationTimestamp: </span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">2021-11-30T07:36:28Z</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)">
managedFields:
</span>-<span style="color: rgba(0, 0, 0, 1)"> apiVersion: v1
    fieldsType: FieldsV1
    fieldsV1:
      f:data: {}
    manager: kubeadm
    operation: Update
    time: </span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">2021-11-30T07:36:28Z</span><span style="color: rgba(128, 0, 0, 1)">"</span>
-<span style="color: rgba(0, 0, 0, 1)"> apiVersion: v1
    fieldsType: FieldsV1
    fieldsV1:
      f:data:
      f:Corefile: {}
    manager: Mozilla
    operation: Update
    time: </span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">2022-09-07T07:11:00Z</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)">
name: coredns
</span><span style="color: rgba(0, 0, 255, 1)">namespace</span>: kube-<span style="color: rgba(0, 0, 0, 1)">system
resourceVersion: </span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">112726088</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)">
selfLink: </span>/api/v1/namespaces/kube-system/configmaps/<span style="color: rgba(0, 0, 0, 1)">coredns
uid: 218630e6</span>-42f7-4e64-a0cf-cf97ac6bc6d6</pre>
</div>
<p>在CoreDNS中修改hosts后,就不用单独在每个Pod中配置hosts了,带来了一定的方便性。  </p>
<h4>二、添加CoreDNS Rewrite配置指向域名到集群内服务</h4>
<p id="cce_01_0361__p1220743313188">使用 CoreDNS 的 Rewrite 插件,将指定域名解析到某个 Service 的域名,相当于给Service取了个别名。</p>
<p id="cce_01_0361__li206365316219">修改CoreDNS配置文件,将example.com指向default命名空间下的example服务。</p>
<div class="cnblogs_code">
<pre>$ kubectl edit configmap coredns -n kube-<span style="color: rgba(0, 0, 0, 1)">system
apiVersion: v1
data:
Corefile: </span>|-<span style="color: rgba(0, 0, 0, 1)">
    .:</span><span style="color: rgba(128, 0, 128, 1)">5353</span><span style="color: rgba(0, 0, 0, 1)"> {
      bind {$POD_IP}
      cache </span><span style="color: rgba(128, 0, 128, 1)">30</span><span style="color: rgba(0, 0, 0, 1)">
      errors
      health {$POD_IP}:</span><span style="color: rgba(128, 0, 128, 1)">8080</span><span style="color: rgba(0, 0, 0, 1)">
      kubernetes cluster.local </span><span style="color: rgba(0, 0, 255, 1)">in</span>-<span style="color: rgba(0, 0, 0, 1)">addr.arpa ip6.arpa {
          pods insecure
          fallthrough </span><span style="color: rgba(0, 0, 255, 1)">in</span>-<span style="color: rgba(0, 0, 0, 1)">addr.arpa ip6.arpa
      }
      <span style="color: rgba(255, 102, 0, 1)">rewrite name example.com example.</span></span><span style="color: rgba(255, 102, 0, 1)">default</span><span style="color: rgba(0, 0, 0, 1)"><span style="color: rgba(255, 102, 0, 1)">.svc.cluster.local</span>
      loadbalance round_robin
      prometheus {$POD_IP}:</span><span style="color: rgba(128, 0, 128, 1)">9153</span><span style="color: rgba(0, 0, 0, 1)">
      forward . </span>/etc/<span style="color: rgba(0, 0, 0, 1)">resolv.conf
      reload
    }
kind: ConfigMap
metadata:
creationTimestamp: </span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">2021-08-23T13:27:28Z</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)">
labels:
    app: coredns
    k8s</span>-<span style="color: rgba(0, 0, 0, 1)">app: coredns
    kubernetes.io</span>/cluster-service: <span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">true</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)">
    kubernetes.io</span>/<span style="color: rgba(0, 0, 0, 1)">name: CoreDNS
    release: cceaddon</span>-<span style="color: rgba(0, 0, 0, 1)">coredns
name: coredns
</span><span style="color: rgba(0, 0, 255, 1)">namespace</span>: kube-<span style="color: rgba(0, 0, 0, 1)">system
resourceVersion: </span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">460</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)">
selfLink: </span>/api/v1/namespaces/kube-system/configmaps/<span style="color: rgba(0, 0, 0, 1)">coredns
uid: be64aaad</span>-<span style="color: rgba(128, 0, 128, 1)">1629</span>-441f-8a40-a3efc0db9fa9 </pre>
</div>
<h4 id="section6" class="sectiontitle">三、使用CoreDNS级联自建DNS</h4>
<p>修改CoreDNS配置文件,将forward后面的/etc/resolv.conf,改成外部DNS的地址</p>
<div class="cnblogs_code">
<pre>$ kubectl edit configmap coredns -n kube-<span style="color: rgba(0, 0, 0, 1)">system
apiVersion: v1
data:
Corefile: </span>|-<span style="color: rgba(0, 0, 0, 1)">
    .:</span><span style="color: rgba(128, 0, 128, 1)">5353</span><span style="color: rgba(0, 0, 0, 1)"> {
      bind {$POD_IP}
      cache </span><span style="color: rgba(128, 0, 128, 1)">30</span><span style="color: rgba(0, 0, 0, 1)">
      errors
      health {$POD_IP}:</span><span style="color: rgba(128, 0, 128, 1)">8080</span><span style="color: rgba(0, 0, 0, 1)">
      kubernetes cluster.local </span><span style="color: rgba(0, 0, 255, 1)">in</span>-<span style="color: rgba(0, 0, 0, 1)">addr.arpa ip6.arpa {
          pods insecure
          fallthrough </span><span style="color: rgba(0, 0, 255, 1)">in</span>-<span style="color: rgba(0, 0, 0, 1)">addr.arpa ip6.arpa
      }
      loadbalance round_robin
      prometheus {$POD_IP}:</span><span style="color: rgba(128, 0, 128, 1)">9153</span><span style="color: rgba(255, 102, 0, 1)">
      forward . 192.168.1.1</span><span style="color: rgba(0, 0, 0, 1)">
      reload
    }
kind: ConfigMap
metadata:
creationTimestamp: </span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">2021-08-23T13:27:28Z</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)">
labels:
    app: coredns
    k8s</span>-<span style="color: rgba(0, 0, 0, 1)">app: coredns
    kubernetes.io</span>/cluster-service: <span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">true</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)">
    kubernetes.io</span>/<span style="color: rgba(0, 0, 0, 1)">name: CoreDNS
    release: cceaddon</span>-<span style="color: rgba(0, 0, 0, 1)">coredns
name: coredns
</span><span style="color: rgba(0, 0, 255, 1)">namespace</span>: kube-<span style="color: rgba(0, 0, 0, 1)">system
resourceVersion: </span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">460</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)">
selfLink: </span>/api/v1/namespaces/kube-system/configmaps/<span style="color: rgba(0, 0, 0, 1)">coredns
uid: be64aaad</span>-<span style="color: rgba(128, 0, 128, 1)">1629</span>-441f-8a40-a3efc0db9fa9</pre>
</div>
<p>&nbsp;</p>
<p>  </p><br><br>
来源:https://www.cnblogs.com/lina-2159/p/16666696.html
頁: [1]
查看完整版本: CoreDNS实现自定义域名解析