中原游侠 發表於 2019-9-28 14:47:00

kubernetes配置自定义域名记录

<h1>&nbsp;问题背景</h1>

<h2>&nbsp; &nbsp; &nbsp; &nbsp; 客户业务pod运行在内网,无法访问外网,对于一些应用,需要访问企业微信,淘宝等外部api接口时,采用代理的方式,即配置pod要访问的外部域名解析为内部代理服务器的ip,如配置api.weixin.qq.com,pod请求访问此域名时,dns解析为内部代理服务器ip-10.xxx.xx.xx,即需要自定义域名解析,经调研,有如下方式:</h2>

<p>&nbsp;</p>

<h2 id="kubernetes配置自定义域名记录,通过coredns-1.客户存在内网dns,且该内网dns可以解析用户需要的域名。这种情况只需要确保coredns所在的宿主机的/etc/resolv.conf中配了该dns即可。">1.客户存在内网dns,且该内网dns可以解析用户需要的域名。这种情况只需要确保coredns所在的宿主机的/etc/resolv.conf中配了该dns即可。</h2>

<h2 id="kubernetes配置自定义域名记录,通过coredns-2.使用kubernetes原生的hostalias功能,对于每个pod额外配置dns记录(https://kubernetes.io/docs/concepts/services-networking/add-entries-to-pod-etc-hosts-with-host-aliases/)">2.使用kubernetes原生的hostalias功能,对于每个pod额外配置dns记录(https://kubernetes.io/docs/concepts/services-networking/add-entries-to-pod-etc-hosts-with-host-aliases/)</h2>

<table border="0" cellpadding="0" cellspacing="0"><tbody><tr><td>
                        <p><code>apiVersion:</code>&nbsp;<code>v1</code></p>

                        <p><code>kind:</code>&nbsp;<code>Pod</code></p>

                        <p><code>metadata:</code></p>

                        <p><code>&nbsp;&nbsp;</code><code>name:</code>&nbsp;<code>hostaliases-pod</code></p>

                        <p><code>spec:</code></p>

                        <p><code>&nbsp;&nbsp;</code><code>restartPolicy:</code>&nbsp;<code>Never</code></p>

                        <p><code>&nbsp;&nbsp;</code><code>hostAliases:</code></p>

                        <p><code>&nbsp;&nbsp;</code><code>-</code>&nbsp;<code>ip</code><code>:</code>&nbsp;<code>"127.0.0.1"</code></p>

                        <p><code>&nbsp;&nbsp;&nbsp;&nbsp;</code><code>hostnames:</code></p>

                        <p><code>&nbsp;&nbsp;&nbsp;&nbsp;</code><code>-</code>&nbsp;<code>"foo.local"</code></p>

                        <p><code>&nbsp;&nbsp;&nbsp;&nbsp;</code><code>-</code>&nbsp;<code>"bar.local"</code></p>

                        <p><code>&nbsp;&nbsp;</code><code>-</code>&nbsp;<code>ip</code><code>:</code>&nbsp;<code>"10.1.2.3"</code></p>

                        <p><code>&nbsp;&nbsp;&nbsp;&nbsp;</code><code>hostnames:</code></p>

                        <p><code>&nbsp;&nbsp;&nbsp;&nbsp;</code><code>-</code>&nbsp;<code>"foo.remote"</code></p>

                        <p><code>&nbsp;&nbsp;&nbsp;&nbsp;</code><code>-</code>&nbsp;<code>"bar.remote"</code></p>

                        <p><code>&nbsp;&nbsp;</code><code>containers:</code></p>

                        <p><code>&nbsp;&nbsp;</code><code>-</code>&nbsp;<code>name</code><code>:</code>&nbsp;<code>cat-hosts</code></p>

                        <p><code>&nbsp;&nbsp;&nbsp;&nbsp;</code><code>image:</code>&nbsp;<code>busybox</code></p>

                        <p><code>&nbsp;&nbsp;&nbsp;&nbsp;</code><code>command:</code></p>

                        <p><code>&nbsp;&nbsp;&nbsp;&nbsp;</code><code>-</code>&nbsp;<code>cat</code></p>

                        <p><code>&nbsp;&nbsp;&nbsp;&nbsp;</code><code>args:</code></p>

                        <p><code>&nbsp;&nbsp;&nbsp;&nbsp;</code><code>-</code>&nbsp;<code>"/etc/hosts"</code></p>
                        </td>
                </tr></tbody></table><p>&nbsp;</p>

<h2 id="kubernetes配置自定义域名记录,通过coredns-3使用coredns来做集群内全局的记录增加">3使用coredns来做集群内全局的记录增加</h2>

<h3 id="kubernetes配置自定义域名记录,通过coredns-3.1用file插件(单独配置a记录用,也可以做转发但配置不直观,这里不写了)">3.1用file插件(单独配置a记录用,也可以做转发但配置不直观,这里不写了)</h3>

<p>&nbsp;</p>

<p>首先修改coredns的configmap,<code>kubectl -n kube-system edit cm coredns</code><br>
默认情况下如下</p>

<table border="0" cellpadding="0" cellspacing="0"><tbody><tr><td>
                        <p><code>apiVersion:</code>&nbsp;<code>v1</code></p>

                        <p><code>data:</code></p>

                        <p><code>&nbsp;&nbsp;</code><code>Corefile:</code>&nbsp;<code>|</code></p>

                        <p><code>&nbsp;&nbsp;&nbsp;&nbsp;</code><code>.:</code><code>53&nbsp;</code><code>{</code></p>

                        <p><code>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</code><code>errors</code></p>

                        <p><code>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</code><code>health</code></p>

                        <p><code>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</code><code>kubernetes cluster.local in-addr.arpa ip6.arpa&nbsp;</code><code>{</code></p>

                        <p><code>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</code><code>pods insecure</code></p>

                        <p><code>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</code><code>upstream</code></p>

                        <p><code>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</code><code>fallthrough in-addr.arpa ip6.arpa</code></p>

                        <p><code>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</code><code>}</code></p>

                        <p><code>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</code><code>prometheus :</code><code>9153</code></p>

                        <p><code>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</code><code>proxy . /etc/resolv.conf</code></p>

                        <p><code>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</code><code>cache</code>&nbsp;<code>30</code></p>

                        <p><code>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</code><code>loop</code></p>

                        <p><code>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</code><code>reload</code></p>

                        <p><code>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</code><code>loadbalance</code></p>

                        <p><code>&nbsp;&nbsp;&nbsp;&nbsp;</code><code>}</code></p>

                        <p><code>kind:</code>&nbsp;<code>ConfigMap</code></p>

                        <p><code>metadata:</code></p>

                        <p><code>&nbsp;&nbsp;</code><code>creationTimestamp:</code>&nbsp;<code>"2019-06-18T08:10:05Z"</code></p>

                        <p><code>&nbsp;&nbsp;</code><code>name:</code>&nbsp;<code>coredns</code></p>

                        <p><code>&nbsp;&nbsp;</code><code>namespace:</code>&nbsp;<code>kube-system</code></p>

                        <p><code>&nbsp;&nbsp;</code><code>resourceVersion:</code>&nbsp;<code>"181"</code></p>

                        <p><code>&nbsp;&nbsp;</code><code>selfLink:</code>&nbsp;<code>/api/v1/namespaces/kube-system/configmaps/coredns</code></p>

                        <p><code>&nbsp;&nbsp;</code><code>uid:</code>&nbsp;<code>7abf504f-91a0-11e9-8570-52540089b1e0</code></p>
                        </td>
                </tr></tbody></table><p>我们将其修改为</p>

<table border="0" cellpadding="0" cellspacing="0"><tbody><tr><td>
                        <p><code>apiVersion:</code>&nbsp;<code>v1</code></p>

                        <p><code>data:</code></p>

                        <p><code>&nbsp;&nbsp;</code><code>Corefile:</code>&nbsp;<code>|</code></p>

                        <p><code>&nbsp;&nbsp;&nbsp;&nbsp;</code><code>.:</code><code>53&nbsp;</code><code>{</code></p>

                        <p><code>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</code><code>errors</code></p>

                        <p><code>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</code><code>health</code></p>

                        <p><code>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</code><code>kubernetes cluster.local in-addr.arpa ip6.arpa&nbsp;</code><code>{</code></p>

                        <p><code>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</code><code>pods insecure</code></p>

                        <p><code>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</code><code>upstream</code></p>

                        <p><code>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</code><code>fallthrough in-addr.arpa ip6.arpa</code></p>

                        <p><code>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</code><code>}</code></p>

                        <p><code>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</code><code>prometheus :</code><code>9153</code></p>

                        <p><code>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</code><code>file /etc/coredns/example.db example.org //使用中将example.org换为根域名</code></p>

                        <p><code>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</code><code>proxy . /etc/resolv.conf</code></p>

                        <p><code>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</code><code>cache</code>&nbsp;<code>30</code></p>

                        <p><code>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</code><code>loop</code></p>

                        <p><code>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</code><code>reload</code></p>

                        <p><code>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</code><code>loadbalance</code></p>

                        <p><code>&nbsp;&nbsp;&nbsp;&nbsp;</code><code>}</code></p>

                        <p><code>&nbsp;&nbsp;</code><code>example.db:</code>&nbsp;<code>|</code></p>

                        <p><code>&nbsp;&nbsp;&nbsp;&nbsp;</code><code>example.org.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; IN&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; SOA&nbsp;&nbsp;&nbsp;&nbsp; sns.dns.icann.org. noc.dns.icann.org. 2019062541 7200 3600 1209600 3600 // 修改example.org.换为对应的,不要漏了.</code></p>

                        <p><code>&nbsp;&nbsp;&nbsp;&nbsp;</code><code>xxx.example.org.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; IN&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; A&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 1.1.1.1 // 对应a记录在这里添加</code><code>,</code><code>用户想加几个域名就仿照这行格式在下面增加</code></p>

                        <p><code>kind:</code>&nbsp;<code>ConfigMap</code></p>

                        <p><code>metadata:</code></p>

                        <p><code>&nbsp;&nbsp;</code><code>creationTimestamp:</code>&nbsp;<code>"2019-06-18T08:10:05Z"</code></p>

                        <p><code>&nbsp;&nbsp;</code><code>name:</code>&nbsp;<code>coredns</code></p>

                        <p><code>&nbsp;&nbsp;</code><code>namespace:</code>&nbsp;<code>kube-system</code></p>

                        <p><code>&nbsp;&nbsp;</code><code>resourceVersion:</code>&nbsp;<code>"181"</code></p>

                        <p><code>&nbsp;&nbsp;</code><code>selfLink:</code>&nbsp;<code>/api/v1/namespaces/kube-system/configmaps/coredns</code></p>

                        <p><code>&nbsp;&nbsp;</code><code>uid:</code>&nbsp;<code>7abf504f-91a0-11e9-8570-52540089b1e0</code></p>
                        </td>
                </tr></tbody></table><p>修改后保存即可。<br>
之后修改coredns的deployment,将example.db挂载进去&nbsp;<code>kubectl -n kube-system edit deploy coredns</code><br>
找到volumes</p>

<table border="0" cellpadding="0" cellspacing="0"><tbody><tr><td>
                        <p><code>volumes:</code></p>

                        <p><code>- configMap</code><code>:</code></p>

                        <p><code>&nbsp;&nbsp;&nbsp;&nbsp;</code><code>defaultMode:</code>&nbsp;<code>420</code></p>

                        <p><code>&nbsp;&nbsp;&nbsp;&nbsp;</code><code>items:</code></p>

                        <p><code>&nbsp;&nbsp;&nbsp;&nbsp;</code><code>-</code>&nbsp;<code>key</code><code>:</code>&nbsp;<code>Corefile</code></p>

                        <p><code>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</code><code>path:</code>&nbsp;<code>Corefile</code></p>

                        <p><code>&nbsp;&nbsp;&nbsp;&nbsp;</code><code>name:</code>&nbsp;<code>coredns</code></p>

                        <p><code>&nbsp;&nbsp;</code><code>name:</code>&nbsp;<code>config-volume</code></p>
                        </td>
                </tr></tbody></table><p>将其改为</p>

<table border="0" cellpadding="0" cellspacing="0"><tbody><tr><td>
                        <p><code>volumes:</code></p>

                        <p><code>&nbsp;</code><code>-</code>&nbsp;<code>name</code><code>:</code>&nbsp;<code>config-volume</code></p>

                        <p><code>&nbsp;&nbsp;&nbsp;</code><code>configMap:</code></p>

                        <p><code>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</code><code>name:</code>&nbsp;<code>coredns</code></p>

                        <p><code>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</code><code>items:</code></p>

                        <p><code>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</code><code>-</code>&nbsp;<code>key</code><code>:</code>&nbsp;<code>Corefile</code></p>

                        <p><code>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</code><code>path:</code>&nbsp;<code>Corefile</code></p>

                        <p><code>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</code><code>-</code>&nbsp;<code>key</code><code>:</code>&nbsp;<code>example.db</code></p>

                        <p><code>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</code><code>path:</code>&nbsp;<code>example.db</code></p>
                        </td>
                </tr></tbody></table><p>然后保存退出即可。</p>

<p>&nbsp;</p>

<h3 id="kubernetes配置自定义域名记录,通过coredns-3.2用hosts插件(单独配置a记录用)https://coredns.io/plugins/hosts/">3.2用hosts插件(单独配置a记录用)https://coredns.io/plugins/hosts/</h3>

<p>&nbsp;</p>

<p>首先修改coredns的configmap,<code>kubectl -n kube-system edit cm coredns</code><br>
默认情况下如下</p>

<table border="0" cellpadding="0" cellspacing="0"><tbody><tr><td>
                        <p><code>apiVersion:</code>&nbsp;<code>v1</code></p>

                        <p><code>data:</code></p>

                        <p><code>&nbsp;&nbsp;</code><code>Corefile:</code>&nbsp;<code>|</code></p>

                        <p><code>&nbsp;&nbsp;&nbsp;&nbsp;</code><code>.:</code><code>53&nbsp;</code><code>{</code></p>

                        <p><code>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</code><code>errors</code></p>

                        <p><code>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</code><code>health</code></p>

                        <p><code>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</code><code>kubernetes cluster.local in-addr.arpa ip6.arpa&nbsp;</code><code>{</code></p>

                        <p><code>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</code><code>pods insecure</code></p>

                        <p><code>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</code><code>upstream</code></p>

                        <p><code>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</code><code>fallthrough in-addr.arpa ip6.arpa</code></p>

                        <p><code>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</code><code>}</code></p>

                        <p><code>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</code><code>prometheus :</code><code>9153</code></p>

                        <p><code>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</code><code>proxy . /etc/resolv.conf</code></p>

                        <p><code>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</code><code>cache</code>&nbsp;<code>30</code></p>

                        <p><code>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</code><code>loop</code></p>

                        <p><code>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</code><code>reload</code></p>

                        <p><code>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</code><code>loadbalance</code></p>

                        <p><code>&nbsp;&nbsp;&nbsp;&nbsp;</code><code>}</code></p>

                        <p><code>kind:</code>&nbsp;<code>ConfigMap</code></p>

                        <p><code>metadata:</code></p>

                        <p><code>&nbsp;&nbsp;</code><code>creationTimestamp:</code>&nbsp;<code>"2019-06-18T08:10:05Z"</code></p>

                        <p><code>&nbsp;&nbsp;</code><code>name:</code>&nbsp;<code>coredns</code></p>

                        <p><code>&nbsp;&nbsp;</code><code>namespace:</code>&nbsp;<code>kube-system</code></p>

                        <p><code>&nbsp;&nbsp;</code><code>resourceVersion:</code>&nbsp;<code>"181"</code></p>

                        <p><code>&nbsp;&nbsp;</code><code>selfLink:</code>&nbsp;<code>/api/v1/namespaces/kube-system/configmaps/coredns</code></p>

                        <p><code>&nbsp;&nbsp;</code><code>uid:</code>&nbsp;<code>7abf504f-91a0-11e9-8570-52540089b1e0</code></p>
                        </td>
                </tr></tbody></table><p>我们将其修改为</p>

<table border="0" cellpadding="0" cellspacing="0"><tbody><tr><td>
                        <p><code>apiVersion:</code>&nbsp;<code>v1</code></p>

                        <p><code>data:</code></p>

                        <p><code>&nbsp;&nbsp;</code><code>Corefile:</code>&nbsp;<code>|</code></p>

                        <p><code>&nbsp;&nbsp;&nbsp;&nbsp;</code><code>.:</code><code>53&nbsp;</code><code>{</code></p>

                        <p><code>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</code><code>errors</code></p>

                        <p><code>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</code><code>health</code></p>

                        <p><code>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</code><code>kubernetes cluster.local in-addr.arpa ip6.arpa&nbsp;</code><code>{</code></p>

                        <p><code>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</code><code>pods insecure</code></p>

                        <p><code>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</code><code>upstream</code></p>

                        <p><code>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</code><code>fallthrough in-addr.arpa ip6.arpa</code></p>

                        <p><code>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</code><code>}</code></p>

                        <p><code>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</code><code>prometheus :</code><code>9153</code></p>

                        <p><code>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</code><code>hosts example.org&nbsp;</code><code>{</code>&nbsp;<code>//修改这里,example.org为根域名</code></p>

                        <p><code>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</code><code>10.0.0.1 bbb.example.org //这里就跟本地配host格式一样</code></p>

                        <p><code>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</code><code>fallthrough</code></p>

                        <p><code>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</code><code>}</code></p>

                        <p><code>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</code><code>// 这里如果宿主机配了hosts,也可以直接写hosts,不用上面的写法</code></p>

                        <p><code>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</code><code>proxy . /etc/resolv.conf</code></p>

                        <p><code>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</code><code>cache</code>&nbsp;<code>30</code></p>

                        <p><code>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</code><code>loop</code></p>

                        <p><code>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</code><code>reload</code></p>

                        <p><code>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</code><code>loadbalance</code></p>

                        <p><code>&nbsp;&nbsp;&nbsp;&nbsp;</code><code>}</code></p>

                        <p><code>kind:</code>&nbsp;<code>ConfigMap</code></p>

                        <p><code>metadata:</code></p>

                        <p><code>&nbsp;&nbsp;</code><code>creationTimestamp:</code>&nbsp;<code>"2019-06-18T08:10:05Z"</code></p>

                        <p><code>&nbsp;&nbsp;</code><code>name:</code>&nbsp;<code>coredns</code></p>

                        <p><code>&nbsp;&nbsp;</code><code>namespace:</code>&nbsp;<code>kube-system</code></p>

                        <p><code>&nbsp;&nbsp;</code><code>resourceVersion:</code>&nbsp;<code>"181"</code></p>

                        <p><code>&nbsp;&nbsp;</code><code>selfLink:</code>&nbsp;<code>/api/v1/namespaces/kube-system/configmaps/coredns</code></p>

                        <p><code>&nbsp;&nbsp;</code><code>uid:</code>&nbsp;<code>7abf504f-91a0-11e9-8570-52540089b1e0</code></p>
                        </td>
                </tr></tbody></table><p>修改后保存即可。然后重建下coredns的pod就行</p>

<p>&nbsp;</p>

<h3 id="kubernetes配置自定义域名记录,通过coredns-3.3用fowrad插件(做解析转发用)https://coredns.io/plugins/forward/">3.3用fowrad插件(做解析转发用)https://coredns.io/plugins/forward/</h3>

<p>&nbsp;</p>

<p>首先修改coredns的configmap,<code>kubectl -n kube-system edit cm coredns</code><br>
默认情况下如下</p>

<table border="0" cellpadding="0" cellspacing="0"><tbody><tr><td>
                        <p><code>apiVersion:</code>&nbsp;<code>v1</code></p>

                        <p><code>data:</code></p>

                        <p><code>&nbsp;&nbsp;</code><code>Corefile:</code>&nbsp;<code>|</code></p>

                        <p><code>&nbsp;&nbsp;&nbsp;&nbsp;</code><code>.:</code><code>53&nbsp;</code><code>{</code></p>

                        <p><code>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</code><code>errors</code></p>

                        <p><code>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</code><code>health</code></p>

                        <p><code>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</code><code>kubernetes cluster.local in-addr.arpa ip6.arpa&nbsp;</code><code>{</code></p>

                        <p><code>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</code><code>pods insecure</code></p>

                        <p><code>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</code><code>upstream</code></p>

                        <p><code>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</code><code>fallthrough in-addr.arpa ip6.arpa</code></p>

                        <p><code>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</code><code>}</code></p>

                        <p><code>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</code><code>prometheus :</code><code>9153</code></p>

                        <p><code>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</code><code>proxy . /etc/resolv.conf</code></p>

                        <p><code>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</code><code>cache</code>&nbsp;<code>30</code></p>

                        <p><code>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</code><code>loop</code></p>

                        <p><code>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</code><code>reload</code></p>

                        <p><code>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</code><code>loadbalance</code></p>

                        <p><code>&nbsp;&nbsp;&nbsp;&nbsp;</code><code>}</code></p>

                        <p><code>kind:</code>&nbsp;<code>ConfigMap</code></p>

                        <p><code>metadata:</code></p>

                        <p><code>&nbsp;&nbsp;</code><code>creationTimestamp:</code>&nbsp;<code>"2019-06-18T08:10:05Z"</code></p>

                        <p><code>&nbsp;&nbsp;</code><code>name:</code>&nbsp;<code>coredns</code></p>

                        <p><code>&nbsp;&nbsp;</code><code>namespace:</code>&nbsp;<code>kube-system</code></p>

                        <p><code>&nbsp;&nbsp;</code><code>resourceVersion:</code>&nbsp;<code>"181"</code></p>

                        <p><code>&nbsp;&nbsp;</code><code>selfLink:</code>&nbsp;<code>/api/v1/namespaces/kube-system/configmaps/coredns</code></p>

                        <p><code>&nbsp;&nbsp;</code><code>uid:</code>&nbsp;<code>7abf504f-91a0-11e9-8570-52540089b1e0</code></p>
                        </td>
                </tr></tbody></table><p>我们将其修改为</p>

<table border="0" cellpadding="0" cellspacing="0"><tbody><tr><td>
                        <p><code>apiVersion:</code>&nbsp;<code>v1</code></p>

                        <p><code>data:</code></p>

                        <p><code>&nbsp;&nbsp;</code><code>Corefile:</code>&nbsp;<code>|</code></p>

                        <p><code>&nbsp;&nbsp;&nbsp;&nbsp;</code><code>.:</code><code>53&nbsp;</code><code>{</code></p>

                        <p><code>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</code><code>errors</code></p>

                        <p><code>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</code><code>health</code></p>

                        <p><code>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</code><code>kubernetes cluster.local in-addr.arpa ip6.arpa&nbsp;</code><code>{</code></p>

                        <p><code>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</code><code>pods insecure</code></p>

                        <p><code>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</code><code>upstream</code></p>

                        <p><code>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</code><code>fallthrough in-addr.arpa ip6.arpa</code></p>

                        <p><code>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</code><code>}</code></p>

                        <p><code>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</code><code>prometheus :</code><code>9153</code></p>

                        <p><code>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</code><code>forward example.org. 127</code><code>.0.0.1:</code><code>9005 127</code><code>.0.0.1:</code><code>9006 // 这里example.org.是根域名,后面是客户的dns服务器地址,可以写多个</code></p>

                        <p><code>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</code><code>proxy . /etc/resolv.conf</code></p>

                        <p><code>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</code><code>cache</code>&nbsp;<code>30</code></p>

                        <p><code>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</code><code>loop</code></p>

                        <p><code>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</code><code>reload</code></p>

                        <p><code>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</code><code>loadbalance</code></p>

                        <p><code>&nbsp;&nbsp;&nbsp;&nbsp;</code><code>}</code></p>

                        <p><code>kind:</code>&nbsp;<code>ConfigMap</code></p>

                        <p><code>metadata:</code></p>

                        <p><code>&nbsp;&nbsp;</code><code>creationTimestamp:</code>&nbsp;<code>"2019-06-18T08:10:05Z"</code></p>

                        <p><code>&nbsp;&nbsp;</code><code>name:</code>&nbsp;<code>coredns</code></p>

                        <p><code>&nbsp;&nbsp;</code><code>namespace:</code>&nbsp;<code>kube-system</code></p>

                        <p><code>&nbsp;&nbsp;</code><code>resourceVersion:</code>&nbsp;<code>"181"</code></p>

                        <p><code>&nbsp;&nbsp;</code><code>selfLink:</code>&nbsp;<code>/api/v1/namespaces/kube-system/configmaps/coredns</code></p>

                        <p><code>&nbsp;&nbsp;</code><code>uid:</code>&nbsp;<code>7abf504f-91a0-11e9-8570-52540089b1e0</code></p>
                        </td>
                </tr></tbody></table><p>修改后保存即可。然后重建下coredns的pod就行</p><br><br>
来源:https://www.cnblogs.com/360linux/p/13062062.html
頁: [1]
查看完整版本: kubernetes配置自定义域名记录