⒈配置Linux的IP地址
vim /etc/sysconfig/network-scripts/ifcfg-ens33v
ifcfg-ens33是網卡的最新命名規范,它會從BIOS => PCIE通道里獲取它的網卡文件名,如果都沒有的話,再降級到eth0或者eth1的命名方式,如果需要關閉的話,ifnames=0就可以關閉了。和以前的配置文件修改方式類似。
⒉設置主機名
hostnamectl set-hostname {hostName}
在大型集群環境中建議大家通過DNS的方式,讓主機名和IP之間能夠相互解析,當然也可以通過修改host文件進行配置。
小環境中不建議大家通過DNS的方式,如果DNS掛掉的話那么集群環境也就掛掉了。
⒊修改host文件【非集群環境可省略】
vim /etc/hosts
**在Linux之間相互拷貝文件
#輸入完此命令后輸入yes,並輸入node01的root密碼即可復制成功 scp /etc/hosts root@k8s-node01:/etc/hosts
⒋將yum雲修改為163【暫略】
⒌安裝依賴包
yum install -y conntrack ntpdate ntp ipvsadm ipset jq iptables curl sysstat libseccomp wget vim net-tools git
⒍設置防火牆為lptables 並設置空規則
#關閉firewalld並取消自啟動 systemctl stop firewalld && systemctl disable firewalld #安裝iptables,啟動iptables,設置開機自啟,清空iptables規則,保存當前規則到默認規則 yum -y install iptables-services && systemctl start iptables && systemctl enable iptables && iptables -F && service iptables save
⒎關閉SELINUX
1.關閉swap分區
#關閉swap分區【虛擬內存】並且永久關閉虛擬內存。 swapoff -a && sed -i '/ swap / s/^\(.*\)$/#\1/g' /etc/fstab
**kubeadm初始化Kubernetes時的過程中會檢測swap分區到底有沒有關閉,因為如果開啟虛擬內存的話,kubernetes的容器【pod】就有可能會運行在虛擬內存上,會大大的降低容器的工作效率,因此Kubernetes會要求強制關閉,可以通過kubelet的啟動參數--fail-swap-on=false
更改這個限制。推薦關閉以防止容器運行在虛擬內存的情況出現。
2.關閉SELinux
setenforce 0 && sed -i 's/^SELINUX=.*/SELINUX=disabled/' /etc/selinux/config
⒏相對於Kubernetes調整內核參數
cat > kubernetes.conf <<EOF #開啟網橋模式【重要】 net.bridge.bridge-nf-call-iptables=1 #開啟網橋模式【重要】 net.bridge.bridge-nf-call-ip6tables=1 net.ipv4.ip_forward=1 net.ipv4.tcp_tw_recycle=0 #禁止使用swap空間,只有當系統OOM時才允許使用它 vm.swappiness=0 #不檢查物理內存是否夠用 vm.overcommit_memory=1 #開啟OOM vm.panic_on_oom=0 fs.inotify.max_user_instances=8192 fs.inotify.max_user_watches=1048576 fs.file-max=52706963 fs.nr_open=52706963 #關閉ipv6【重要】 net.ipv6.conf.all.disable_ipv6=1 net.netfilter.nf_conntrack_max=2310720 EOF
#將優化內核文件拷貝到/etc/sysctl.d/文件夾下,這樣優化文件開機的時候能夠被調用 cp kubernetes.conf /etc/sysctl.d/kubernetes.conf
#手動刷新,讓優化文件立即生效
sysctl -p /etc/sysctl.d/kubernetes.conf
***非Linux4的內核下,將會彈出“sysctl:cannot stat /proc/sys/net/netfilter/nf_conntrack_max:沒有那個文件或目錄”,無視即可。
⒐調整系統時區
#設置系統時區為中國/上海 timedatectl set-timezone Asia/Shanghai #將當前的 UTC 時間寫入硬件時鍾 timedatectl set-local-rtc 0 #重啟依賴於系統時間的服務 systemctl restart rsyslog systemctl restart crond
⒑關閉系統不需要的服務
#關閉及禁用郵件服務
systemctl stop postfix && systemctl disable postfix
⒒設置日志的保存方式
在Centos7以后,因為引導方式改為了system.d,所以有兩個日志系統同時在工作,默認的是rsyslogd,以及systemd journald
使用systemd journald更好一些,因此我們更改默認為systemd journald,只保留一個日志的保存方式。
1.創建保存日志的目錄
mkdir /var/log/journal
2.創建配置文件存放目錄
mkdir /etc/systemd/journald.conf.d
3.創建配置文件
cat > /etc/systemd/journald.conf.d/99-prophet.conf <<EOF [Journal] #持久化保存到磁盤 Storage=persistent #壓縮歷史日志 Compress=yes SyncIntervalSec=5m RateLimitInterval=30s RateLimitBurst=1000 #最大占用空間10G SystemMaxUse=10G #單日志文件最大200M SystemMaxFileSize=200M #日志保存時間2周 MaxRetentionSec=2week #不將日志轉發到syslog ForwardToSyslog=no EOF
4.重啟systemd journald的配置
systemctl restart systemd-journald
⒓升級Linux內核為4.44版本
CentOS 7.x 系統自帶的3.10.x內核存在一些Bugs.導致運行的Docker.Kubernetes不穩定。
1.獲取源
rpm -Uvh http://www.elrepo.org/elrepo-release-7.0-4.el7.elrepo.noarch.rpm
2.開始安裝,安裝完成后檢查 /boot/grub2/grub.cfg中對應內核menuentry中是否包含 initrd16 配置,如果沒有,再安裝一次!
yum --enablerepo=elrepo-kernel install -y kernel-lt
3.查看系統中的全部內核【可忽略】
rpm -qa | grep kernel
3.設置開機從新內核啟動
grub2-set-default 'CentoS Linux(4.4.202-1.el7.elrepo.×86_64) 7 (Core)'
⒔重啟啟動使配置生效
reboot
⒕查看正在使用的內核【可忽略】
uname -a
*Linux內核相關操作操作可查看 https://www.cnblogs.com/fanqisoft/p/11301630.html