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域,主機域使用短域名,業務域不使用短域名,因為業務域太多了,而且不同業務域中會有重名的主機。