kubernetes学习(3)---DNS服务搭建

2、K8S服务搭建—自建DNS服务器

自建DNS服务,提供集群内部域名解析功能,已比面IP暴露。并且搭建DNS服务器,就不需要每台服务器修改hosts文件了

登录到DNS服务器(192.168.100.51)进行相应的部署

1、安装bind9bind-utilsbind-chroot

yum install bind bind-utils bind-chroot -y

2、配置文件列表

1、/etc/named.conf 主配置文件

2、/etc/named/zone 文件

这个就是bind-chroot生成的伪根目录。在这个目录下,会生产完整的bind服务的结构,进到这个目录下,会发现里面基本没有文件,只有目录文件夹,这就需要你将真实的根目录下的bind的配置文件和一些需要的文件都复制一份到这个伪根下,或创建一些基础文件,给与权限啊等操作

cp -R /usr/share/doc/bind-9.11.4/sample/var/named/* /var/named/chroot/var/named/ && \
touch /var/named/chroot/var/named/data/cache_dump.db && \
touch /var/named/chroot/var/named/data/named_stats.txt && \
touch /var/named/chroot/var/named/data/named_mem_stats.txt && \
touch /var/named/chroot/var/named/data/named.run && \
mkdir /var/named/chroot/var/named/dynamic && \
touch /var/named/chroot/var/named/dynamic/managed-keys.bind && \
chmod -R 777 /var/named/chroot/var/named/data && \
chmod -R 777 /var/named/chroot/var/named/dynamic && \
cp -R /etc/named* /var/named/chroot/etc/ && \
chown -R root.named /var/named/chroot/ #直接将伪根目录下的所有文件都给named用户,让其能够修改。避免权限问题报错。

如果不不使用 bind-chroot 的话,就不需要上面的操作。直接进行下面的配置文件修改,修改的目录也不是伪根目录了,直接修改真实的目录就行

3、剩下的就是编辑配置文件,自定义DNS服务了。

vim /var/named/chroot/etc/named.conf

配置文件内容如下

options {
    listen-on port 53 { any; };  # 监听任何ip对53端口的请求

    # 去掉ipv6的地址

    directory   "/var/named";
    dump-file   "/var/named/data/cache_dump.db";
    statistics-file "/var/named/data/named_stats.txt";
    memstatistics-file "/var/named/data/named_mem_stats.txt";
    allow-query     { any; }; # 接收任何来源查询dns记录

    # 加如下配置
    forwarders  { 
        114.114.114.114;
        8.8.8.8;
    };

    # 改
    recursion yes;         # 采用递归算法查询ip
    dnssec-enable no;
    dnssec-validation no;

    bindkeys-file "/etc/named.iscdlv.key";

    managed-keys-directory "/var/named/dynamic";

    pid-file "/run/named/named.pid";
    session-keyfile "/run/named/session.key";
};

logging {
        channel default_debug {
                file "data/named.run";
                severity dynamic;
        };
};

zone "." IN {
    type hint;
    file "named.ca";
};

include "/etc/named.rfc1912.zones";
include "/etc/named.root.key";

检查bind9配置

named-checkconf

4、然后修改域空间配置文件

vim /var/named/chroot/etc/named.rfc1912.zones

配置如下

zone "host.com" IN {                       # 主机域
        type  master;                      # DNS服务类型,默认为master,这里我们是搭建的第一个DNS服务器,则就定为主服务器,即默认的master
        file  "host.com.zone";             # 域名配置文件名  ,这个文件名会在 /var/named/chroot/var/named/ 这个目录下去寻找
        allow-update { 192.168.100.51; };
};

zone "xuexi.com" IN {
        type  master;
        file  "xuexi.com.zone";
        allow-update { 192.168.100.51; };
};

5、配置区域数据文件

  • 配置主机域数据文件
vim /var/named/chroot/var/named/host.com.zone

配置内容如下

$ORIGIN host.com.
$TTL 600    ; 10 minutes  # TTL 就是修改配置的生效时间,本质上就是这个域 的DNS信息在别的DNS服务器的缓存中存在多久,默认为一天
@       IN SOA  dns.host.com. dnsadmin.host.com. (
                2021121401 ; serial  # 这个是配置的编号,每次修改完配置后 这个编号变化一下,通常是直接+1,这样从服务器就能知道有修改并更新配置
                10800      ; refresh (3 hours)  # 从服务器刷新时间,默认 一天刷新一次
                900        ; retry (15 minutes)  # 如果刷新失败,默认1 小时重试一次
                604800     ; expire (1 week)  # 缓存过期时间,一周
                86400      ; minimum (1 day)
                )
            NS   dns.host.com.
$TTL 60 ; 1 minute
dns                 A    192.168.100.51  # 配置子域名,也就是主机 名,对应的IP地址,A记录就是对应 IPV4 地址。 IN 表示 internel 网络
k8s-100-50            A    192.168.100.50
k8s-100-52            A    192.168.100.52
k8s-100-53            A    192.168.100.53
k8s-100-54            A    192.168.100.54
k8s-100-55            A    192.168.100.55
k8s-100-56            A    192.168.100.56
  • 配置业务域数据文件
vim /var/named/chroot/var/named/xuexi.com.zone

配置内容如下

$ORIGIN xuexi.com.
$TTL 600    ; 10 minutes
@       IN SOA  dns.xuexi.com. dnsadmin.xuexi.com. (
                           2021081801 ; serial
                           10800      ; refresh (3 hours)
                            900        ; retry (15 minutes)
                           604800     ; expire (1 week)
                           86400      ; minimum (1 day)
                           )
                           NS   dns.host.com.
$TTL 60 ; 1 minute
dns                A    192.168.100.51

检查bind9配置

named-checkconf

启动named服务,并设置成开机自启动服务

systemctl enable --now named-chroot

在DNS服务器上(192.168.100.51)检查DNS服务是否启动成功

dig -t A k8s-100-50.host.com @192.168.100.51 +short 
# 返回如下即成功 
 ~] dig -t A k8s-100-50.host.com @192.168.100.51 +short 
192.168.100.50 
 ~]

配置DNS客户端**每个节点**,在网卡配置中设置DNS服务器就不在这里过多叙述

vim /etc/resolve.conf

配置如下:

search host.com
3、ipvsadm安装

目前Linux下kubernetes平台只要是使用ipvs

所有节点安装ipvsadm 模块。

yum install ipvsadm ipset sysstat conntrack libseccomp -y

所有节点配置ipvs模块,在内核4.19+版本nf_conntrack_ipv4已经改为nf_conntrack, 4.18以下使用nf_conntrack_ipv4即可

modprobe -- ip_vs    
modprobe -- ip_vs_rr    
modprobe -- ip_vs_wrr    
modprobe -- ip_vs_sh    
modprobe -- nf_conntrack

修改ipvs.conf配置文件

vim /etc/modules-load.d/ipvs.conf

加入以下内容

ip_vs
ip_vs_lc
ip_vs_wlc
ip_vs_rr
ip_vs_wrr
ip_vs_lblc
ip_vs_lblcr
ip_vs_dh
ip_vs_sh
ip_vs_fo
ip_vs_nq
ip_vs_sed
ip_vs_ftp
ip_vs_sh
nf_conntrack
ip_tables
ip_set
xt_set
ipt_set
ipt_rpfilter
ipt_REJECT
ipip

开启服务

systemctl enable --now systemd-modules-load.service

检查服务配置是否加载

lsmod | grep -e ip_vs -e nf_conntrack

开启一些k8s集群中必须的内核参数,所有节点配置k8s内核

vim /etc/sysctl.d/k8s.conf

添加内容如下

net.ipv4.ip_forward = 1 
net.bridge.bridge-nf-call-iptables = 1 
net.bridge.bridge-nf-call-ip6tables = 1 
fs.may_detach_mounts = 1 
vm.overcommit_memory=1 
vm.panic_on_oom=0 
fs.inotify.max_user_watches=89100 
fs.file-max=52706963 
fs.nr_open=52706963 
net.netfilter.nf_conntrack_max=2310720 
net.ipv4.tcp_keepalive_time = 600 
net.ipv4.tcp_keepalive_probes = 3 
net.ipv4.tcp_keepalive_intvl =15 
net.ipv4.tcp_max_tw_buckets = 36000 
net.ipv4.tcp_tw_reuse = 1 
net.ipv4.tcp_max_orphans = 327680 
net.ipv4.tcp_orphan_retries = 3 
net.ipv4.tcp_syncookies = 1 
net.ipv4.tcp_max_syn_backlog = 16384 
net.ipv4.ip_conntrack_max = 65536 
net.ipv4.tcp_max_syn_backlog = 16384 
net.ipv4.tcp_timestamps = 0 
net.core.somaxconn = 16384

执行命令

sysctl --system

所有节点配置完内核后,重启服务器,保证重启后内核依旧加载

reboot
lsmod | grep --color=auto -e ip_vs -e nf_conntrack
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值