在kube-dns中插入自定義解析記錄-kube-dns
目的:有時(shí)需要從集群內(nèi)部訪問外部的自定義的域名記錄伪很,因此需要能從集群內(nèi)部解析到珊佣,在集群內(nèi)部的DNS服務(wù)器上添加自定義的解析記錄熊榛,可以達(dá)到這一點(diǎn)要求奔坟。
注意:kubernetes 1.14開始赋荆,已經(jīng)開始使用coredns作為集群內(nèi)部域名解析服務(wù)器舶得,本案例不再適宜。請參考本系列另外一篇文章”在kube-dns中插入自定義解析記錄-coredns“
1. 在kube-system命名空間創(chuàng)建一個(gè)自定義解析記錄的configmap
apiVersion: v1
kind: ConfigMap
metadata:
name: kubedns
namespace: kube-system
data:
dnsconfig: |-
192.168.0.36 bigdata-master001
192.168.0.33 bigdata-master002
192.168.0.35 bigdata-slave001
192.168.0.34 bigdata-slave002
192.168.0.32 bigdata-slave003
2. 給kube-dns中的dnsmasq容器掛載自定義的記錄文件
添加一個(gè)volume:
volumes:
- name: extra-dns-config
configMap:
name: kubedns
3. 掛載給dnsmasq容器
volumeMounts:
- mountPath: /etc/dnsmasq.hosts
name: extra-dns-config
subPath: dnsconfig
4. 修改dnsmasq容器的啟動(dòng)參數(shù)
在dnsmasq容器的啟動(dòng)參數(shù)中添加一行:
--addn-hosts=/etc/dnsmasq.hosts
5. 重啟kube-dns生效
當(dāng)部署有Rancher
管理平臺(tái)時(shí)伴嗡,可以直接在界面上進(jìn)行操作急波,如果沒有部署,則在命令行執(zhí)行下面的命令操作:
$ kubectl -n kube-system scale deployment kube-dns --replicas=0
等待kube-dns的pod數(shù)目變?yōu)?后瘪校,再恢復(fù):
$ kubectl -n kube-system scale deployment kube-dns --replicas=2
測試铃将,進(jìn)入任意一個(gè)具有ping命令的pod中舌镶,ping自己插入的域名红氯,能通就說明已經(jīng)生效了躺彬。