【k8s第一步】Kubernetes-Linux系統初始化【已修正錯誤】


⒈配置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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM