![云原生Kubernetes全栈架构师实战](https://wfqqreader-1252317822.image.myqcloud.com/cover/167/47217167/b_47217167.jpg)
上QQ阅读APP看书,第一时间看更新
1.2 内核配置
为了集群的稳定性和兼容性,生产环境的内核最好升级到4.18版本以上,本示例将升级到4.19版本。
Master01下载离线包:
![](https://epubservercos.yuewen.com/27A31B/26581513401334806/epubprivate/OEBPS/Images/Figure-P26_132543.jpg?sign=1739283143-vAhmPUrXKzOAZXIDjsKUBVo6S9HHvSyF-0-a946c953441124576b330ffedaf91ad4)
将安装包从Master01节点传到其他节点:
![](https://epubservercos.yuewen.com/27A31B/26581513401334806/epubprivate/OEBPS/Images/Figure-P26_132544.jpg?sign=1739283143-B3r6LTAKr78wnf8PZeOi9NvwCsbk1C9e-0-92ea412a52306b26722f83c968cfb326)
所有节点安装内核:
# cd /root && yum localinstall -y kernel-ml*
所有节点更改内核启动顺序:
![](https://epubservercos.yuewen.com/27A31B/26581513401334806/epubprivate/OEBPS/Images/Figure-P26_132545.jpg?sign=1739283143-lm1kVMtRTwe7YWviYoGwyztd6rfrb3cu-0-45361705bd64819c3da37f96c425bfd8)
所有节点检查默认内核是不是4.19:
# grubby --default-kernel /boot/vmlinuz-4.19.12-1.el7.elrepo.x86_64
所有节点重启,然后检查内核是不是4.19:
![](https://epubservercos.yuewen.com/27A31B/26581513401334806/epubprivate/OEBPS/Images/Figure-P26_132547.jpg?sign=1739283143-Z0O7XK4fndCmwmWBXjO1AcD5fk2bulIH-0-736aeb0d71041ef573a864bab019b784)
所有节点安装ipvsadm和ipset:
# yum install ipvsadm ipset sysstat conntrack libseccomp -y
所有节点配置ipvs模块,在内核4.19+版本nf_conntrack_ipv4已经改为nf_conntrack,4.18以下版本使用nf_conntrack_ipv4即可:
# 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 # 4.18改为nf_conntrack_ipv4 ip_tables ip_set xt_set ipt_set ipt_rpfilter ipt_REJECT ipip
然后执行systemctl enable --now systemd-modules-load.service即可。
开启一些K8s集群中必需的内核参数,所有节点配置K8s内核:
# cat <<EOF > /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 net.ipv4.conf.all.route_localnet = 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 EOF # sysctl --system
所有节点配置完内核后,重启服务器,保证重启后内核依旧加载:
# reboot # lsmod | grep --color=auto -e ip_vs -e nf_conntrack