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> </p>
<p> </p><br><br>
来源:https://www.cnblogs.com/lina-2159/p/16666696.html
頁:
[1]