二進位制部署1.23.4版本k8s叢集-2-安裝DNS服務

itteer發表於2022-03-13

2、安裝DNS服務

為什麼要安裝bind9?

K8S中,使用Ingress進行7層流量排程,需要使用域名,進行7層排程。

以前使用繫結host的方法,來進行域名和IP地址的解析。

在K8S裡,沒有好的辦法給容器繫結host,必須自建DNS,讓容器能夠服從DNS解析。

DNS,就是把域名和IP地址繫結。

11主機上操作

2.1 安裝bind9

[root@cfzx55-11 ~]# yum install bind -y
[root@cfzx55-11 ~]# rpm -qa bind
bind-9.11.4-26.P2.el7_9.9.x86_64
[root@cfzx55-11 ~]# rpm -qc bind
/etc/logrotate.d/named
/etc/named.conf
/etc/named.iscdlv.key
/etc/named.rfc1912.zones
/etc/named.root.key
/etc/rndc.conf
/etc/rndc.key
/etc/sysconfig/named
/var/named/named.ca
/var/named/named.empty
/var/named/named.localhost
/var/named/named.loopback
[root@cfzx55-11 ~]# rpm -ql bind

# 檢視bind安裝時執行的指令碼
[root@cfzx55-11 ~]# rpm -q --scripts bind
preinstall scriptlet (using /bin/sh):
if [ "$1" -eq 1 ]; then
  /usr/sbin/groupadd -g 25 -f -r named >/dev/null 2>&1 || :;
  /usr/sbin/useradd  -u 25 -r -N -M -g named -s /sbin/nologin -d /var/named -c Named named >/dev/null 2>&1 || :;
fi;
:;
......
[root@cfzx55-11 ~]#

說明:bind安裝後,自動建立了named使用者。

2.2 修改主配置檔案

編輯/etc/named.conf檔案,修改如下部分。
listen-on port 53 配置為本機的IP地址。
allow-query 允許任意主機查詢。
forwarders 虛擬機器的閘道器,可以訪問外網。

[root@cfzx55-11 ~]# vim /etc/named.conf
options {
        listen-on port 53 { 10.211.55.11; };
        allow-query     { any; };
        forwarders      { 10.211.55.1; }
        recursion yes;
        dnssec-enable no;
        dnssec-validation no;   
# 語法檢查
[root@cfzx55-11 ~]# named-checkconf

2.3 區域配置檔案

配置主機域(host.com)和業務域(od.com)。

編輯/etc/named.rfc1912.zones檔案,在檔案最後增加下面內容。
file:域配置檔名稱。
allow-update:填寫DNS伺服器的IP地址,允許dns伺服器更新。

zone "host.com" IN {
        type master;
        file "host.com.zone";
        allow-update { 10.211.55.11; };
};

zone "od.com" IN {
        type master;
        file "od.com.zone";
        allow-update { 10.211.55.11; };
};

生產上規劃主機名,和業務沒有任何關係。不會使用mysql01,hadoop01等等名稱。

主機名:地域+IP後兩位

主機域:用比較好記憶的,沒有實際意義的名稱,如host.com

業務域:od.com

新建檔案:/var/named/host.com.zone,檔案內容如下:

$ORIGIN host.com.
$TTL 600 ;
@	IN SOA	dns.host.com. dnsadmin.host.com. (
					2022031201	; serial
					10800	; refresh
					900	; retry
					604800	; expire
					86400 )	; minimum
	NS	dns.host.com.
$TTL 60 ;
dns			A	10.211.55.11
CFZX55-11	A	10.211.55.11
CFZX55-12	A	10.211.55.12
CFZX55-21	A	10.211.55.21
CFZX55-22	A	10.211.55.22
CFZX55-200	A	10.211.55.200

新建檔案:/var/named/od.com.zone,檔案內容如下:

$ORIGIN od.com.
$TTL 600 ;
@	IN SOA	dns.od.com. dnsadmin.od.com. (
					2022031201	; serial
					10800	; refresh
					900	; retry
					604800	; expire
					86400 )	; minimum
	NS	dns.od.com.
$TTL 60 ;
dns		A	10.211.55.11

語法檢查

[root@cfzx55-11 ~]# named-checkconf
[root@cfzx55-11 ~]# named-checkzone host.com /var/named/host.com.zone
zone host.com/IN: loaded serial 2022031201
OK
[root@cfzx55-11 ~]# named-checkzone od.com /var/named/od.com.zonne
zone od.com/IN: loaded serial 2022031201
OK
[root@cfzx55-11 ~]#

2.4 啟動named服務

# 啟動服務
[root@hdss7-11 named]# systemctl start named
[root@hdss7-11 named]# systemctl status named
# 開啟自啟動
[root@cfzx55-11 ~]# systemctl enable named

檢視網路監聽埠

[root@hdss7-11 named]# netstat -luntp | grep 53
tcp        0      0 127.0.0.1:953           0.0.0.0:*               LISTEN      18374/named
tcp        0      0 10.211.55.11:53         0.0.0.0:*               LISTEN      18374/named
udp        0      0 10.211.55.11:53         0.0.0.0:*                           18374/named
[root@hdss7-11 named]#

53 埠被監聽,說明dns服務正常啟動。

2.5 域名解析檢查

用dig工具檢查域名解析

[root@cfzx55-11 ~]# dig -t A cfzx55-11.host.com @10.211.55.11 +short
10.211.55.11
[root@cfzx55-11 ~]# dig -t A cfzx55-12.host.com @10.211.55.11 +short
10.211.55.12
[root@cfzx55-11 ~]# dig -t A cfzx55-21.host.com @10.211.55.11 +short
10.211.55.21
[root@cfzx55-11 ~]# dig -t A cfzx55-22.host.com @10.211.55.11 +short
10.211.55.22
[root@cfzx55-11 ~]# dig -t A cfzx55-200.host.com @10.211.55.11 +short
10.211.55.200
[root@cfzx55-11 ~]# dig -t A www.baidu.com  @10.211.55.11 +short
www.a.shifen.com.
110.242.68.4
110.242.68.3
[root@cfzx55-11 ~]#

以上能正常解析,說明DNS服務以及能正常解析了。

2.6 配置客戶端

讓客戶端能正常使用DNS服務。

一種方法上直接修改/etc/resolv.conf檔案,另一種方法是修改網路配置檔案中的DNS1,修改成DNS伺服器地址。本例修改網路配置檔案。

[root@cfzx55-11 ~]# vim /etc/sysconfig/network-scripts/ifcfg-eth0
DNS1=10.211.55.11

[root@cfzx55-11 ~]# systemctl restart network

在11主機上的resolv.conf檔案中,新增search host.com

重啟網路卡後,系統會自動新增。

[root@hdss7-11 named]# cat /etc/resolv.conf
# Generated by NetworkManager
search host.com
nameserver 10.211.55.11

其餘4臺機器都做相應的修改。

這樣就可以使用短域名了(直接使用主機名稱)

[root@hdss7-11 named]# ping hdss7-200
PING HDSS7-200.host.com (10.211.55.200) 56(84) bytes of data.
64 bytes from 10.211.55.200 (10.211.55.200): icmp_seq=1 ttl=64 time=20.3 ms
64 bytes from 10.211.55.200 (10.211.55.200): icmp_seq=2 ttl=64 time=2.00 ms

一般來說,只需要加主機的search域,主機域使用短域名,業務域不使用短域名,因為業務域太多了,而且不同業務域中會有重名的主機。

相關文章