CentOS 8.2 对k8s基础环境配置( 二 )

【CentOS 8.2 对k8s基础环境配置】注意:yum 安装出错,看最后一个报错标题里面找 。
7 配置时间同步本地或者自建服务器都需要配置时间同步,如果是云服务器由于本身就有对应云的时间同步机制 , 不需要配置
echo "# 互联网时间同步" >> /var/spool/cron/rootecho "*/5 * * * * /usr/sbin/ntpdate time2.aliyun.com >/dev/null 2>&1" >> /var/spool/cron/root9 互相免密Master 节点执行以下操作
ssh-keygen -t rsa# 定义 master 列表MASTER_LIST=(192.168.192.10192.168.192.30)# 配置免密登录for i in ${MASTER_LIST[@]};dossh-copy-id -i /root/.ssh/id_rsa.pub root@$idone# yes# 输入密码10 内核升级在 Kubernetes 的 Github 仓库中:

  • https://github.com/kubernetes/kubernetes/blob/master/CHANGELOG/CHANGELOG-1.25.md
有提到关于内核版本的问题:
  • Faster mount detection for linux kernel 5.10+ using openat2 speeding up pod churn rates. On Kernel versions less 5.10, it will fallback to using the original way of detecting mount points i.e by parsing /proc/mounts.
  • 这意味着内核 5.10 版本以后会使用 openat2 进行更快的挂载检测,所有可以将内核升级到 5.10 以后 , 但没必要最新 。
  • 这里使用的是 5.11.16 版本,更新于 2021 年 4 月 。如果想安装其它版本可以去下面网站下载:http://193.49.22.109/elrepo/kernel/el7/x86_64/RPMS/
创建用于存放安装包并下载
mkdir -p /opt/software/kernelcd /opt/software/kernelwget http://193.49.22.109/elrepo/kernel/el7/x86_64/RPMS/kernel-ml-5.11.14-1.el7.elrepo.x86_64.rpmwget http://193.49.22.109/elrepo/kernel/el7/x86_64/RPMS/kernel-ml-devel-5.11.14-1.el7.elrepo.x86_64.rpm执行安装
yum localinstall -y kernel-ml*# 设置内核启动顺序grub2-set-default0 && grub2-mkconfig -o /etc/grub2.cfg# 查看默认内核grubby --default-kernel注意:CentOS 8.2 对以上内核升级需要安装各种依赖 。
CentOS 7.9 升级内核 kernel-ml-5.6.14版本:https://www.cnblogs.com/huaxiayuyi/p/16788084.html
Centos 8.2 升级内核通过elrepo源:https://www.cnblogs.com/huaxiayuyi/p/16794239.html
8 系统优化对系统打开文件数进行修改,提升性能
cat >> /etc/security/limits.conf << EOF# 打开文件优化配置* soft nofile 655360* hard nofile 655350* soft nproc 655350* hard nproc 655350* soft memlock unlimited* hard memlock unlimitedEOFcat /etc/security/limits.conf11 加载模块ipvs模块配置
kube-proxy开启ipvs的前置条件
  • 原文:https://github.com/kubernetes/kubernetes/blob/master/pkg/proxy/ipvs/README.md
  • 参考:https://www.qikqiak.com/post/how-to-use-ipvs-in-kubernetes/
创建配置文件
内核 4.19+版本 nf_conntrack_ipv4 已改为 nf_conntrack  , 4.18以下使用 nf_conntrack_ipv4即可 。
安装 ipvsadm,节点通信需要用到 LVS,所有需要安装 ipvsadm 。ipset 和 ipvsadm (便于查看 ipvs 的代理规则)
yum -y install ipvsadm ipset sysstat conntrack libseccomp配置 ipvs 模块(内核 4.19 版本以前使用 nf_conntrack_ipv4,以后使用 nf_conntrack)
modprobe -- ip_vsmodprobe -- ip_vs_rrmodprobe -- ip_vs_wrrmodprobe -- ip_vs_shmodprobe -- nf_conntrackcat > /etc/modules-load.d/ipvs.conf << EOFip_vsip_vs_lcip_vs_wlcip_vs_rrip_vs_wrrip_vs_lblcip_vs_lblcrip_vs_dhip_vs_ship_vs_foip_vs_nqip_vs_sedip_vs_ftpip_vs_shnf_conntrackip_tablesip_setxt_setipt_setipt_rpfilteript_REJECTipipEOF重新加载配置
# 加载内核配置 警告忽略systemctl enable --now systemd-modules-load.service检查确认
[root@localhost etc]# lsmod | grep --color=auto -e ip_vs -e nf_conntrackip_vs_ftp163840ip_vs_sed163840ip_vs_nq163840ip_vs_fo163840ip_vs_dh163840ip_vs_lblcr163840ip_vs_lblc163840ip_vs_wlc163840ip_vs_lc163840ip_vs_sh163840ip_vs_wrr163840ip_vs_rr163840ip_vs17612824 ip_vs_wlc,ip_vs_rr,ip_vs_dh,ip_vs_lblcr,ip_vs_sh,ip_vs_fo,ip_vs_nq,ip_vs_lblc,ip_vs_wrr,ip_vs_lc,ip_vs_sed,ip_vs_ftpnf_conntrack_tftp204803 nf_nat_tftpnf_nat491524 nf_nat_tftp,nft_chain_nat,xt_MASQUERADE,ip_vs_ftpnf_conntrack1597447 xt_conntrack,nf_nat,nf_conntrack_tftp,nft_ct,nf_nat_tftp,xt_MASQUERADE,ip_vsnf_defrag_ipv6245762 nf_conntrack,ip_vsnf_defrag_ipv4163841 nf_conntracklibcrc32c163844 nf_conntrack,nf_nat,xfs,ip_vs# 或者[root@localhost etc]# cut -f1 -d " "/proc/modules | grep -e ip_vs -e nf_conntrackip_vs_ftpip_vs_sedip_vs_nqip_vs_foip_vs_dhip_vs_lblcrip_vs_lblcip_vs_wlcip_vs_lcip_vs_ship_vs_wrrip_vs_rrip_vsnf_conntrack_tftpnf_conntrack12 优化系统参数添加内核调优参数,某些参数对 Kubernetes 集群很重要(不一定是最优,各取所有)
cat >> /etc/sysctl.d/user.conf << EOF# 内核调优net.ipv4.ip_forward = 1net.bridge.bridge-nf-call-iptables = 1net.bridge.bridge-nf-call-ip6tables = 1fs.may_detach_mounts = 1vm.overcommit_memory=1vm.panic_on_oom=0fs.inotify.max_user_watches=89100fs.file-max=52706963fs.nr_open=52706963net.netfilter.nf_conntrack_max=2310720net.ipv4.tcp_keepalive_time = 600net.ipv4.tcp_keepalive_probes = 3net.ipv4.tcp_keepalive_intvl =15net.ipv4.tcp_max_tw_buckets = 36000net.ipv4.tcp_tw_reuse = 1net.ipv4.tcp_max_orphans = 327680net.ipv4.tcp_orphan_retries = 3net.ipv4.tcp_syncookies = 1net.ipv4.tcp_max_syn_backlog = 16384net.ipv4.ip_conntrack_max = 65536net.ipv4.tcp_timestamps = 0net.core.somaxconn = 16384EOF

推荐阅读