• 二进制部署1.23.4版本k8s集群-2-安装DNS服务


    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域,主机域使用短域名,业务域不使用短域名,因为业务域太多了,而且不同业务域中会有重名的主机。

  • 相关阅读:
    Redis数据库 ---- 五种数据类型常用命令汇总
    vue element plus 安装
    C++ 基础与深度分析 Chapter7 深入I/O(文件与内存操作、流的状态、流的定位、流的同步)
    python Task如何在协程调用
    C语言& | ^
    设计模式学习笔记 - 面向对象 - 7.为什么要多用组合少用继承?如何决定该用组合还是继承?
    Golang 获取本地 IP 地址方法
    JVM常见问题笔记分享
    orcale 单表查询和多表联合查询
    Sentinel-1数据下载与处理
  • 原文地址:https://www.cnblogs.com/wgh2008/p/16001543.html