OS版本:Ubuntu 18.04 LTS
確保每個節點上 MAC 地址和 product_uuid 的唯一性
- 你可以使用命令 ip link 或 ifconfig -a 來獲取網絡接口的 MAC 地址
- 可以使用 sudo cat /sys/class/dmi/id/product_uuid 命令對 product_uuid 校驗
禁用交換分區
sudo swapoff -a
sudo sed -i 's/.*swap.*/#&/' /etc/fstab
允許 iptables 檢查橋接流量及系統調優
確保 br_netfilter 模塊被加載。這一操作可以通過運行 lsmod | grep br_netfilter 來完成。若要顯式加載該模塊,可執行 sudo modprobe br_netfilter。
為了讓你的 Linux 節點上的 iptables 能夠正確地查看橋接流量,你需要確保在你的 sysctl 配置中將 net.bridge.bridge-nf-call-iptables 設置為 1。例如:
cat <<EOF | sudo tee /etc/modules-load.d/k8s.conf
br_netfilter
EOF
cat <<EOF | sudo tee /etc/sysctl.d/k8s.conf
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
net.ipv4.ip_forward = 1
net.core.somaxconn = 32768
net.ipv4.ip_local_port_range 1024 65000
EOF
sudo sysctl --system
配置Docker容器運行時(可選)
1.配置 Docker 守護程序,尤其是使用 systemd 來管理容器的 cgroup。
sudo mkdir /etc/docker
cat <<EOF | sudo tee /etc/docker/daemon.json
{
"exec-opts": ["native.cgroupdriver=systemd"],
"log-driver": "json-file",
"log-opts": {
"max-size": "100m"
},
"data-root": "/mnt/docker-data",
"storage-driver": "overlay2"
}
EOF
說明:對於運行 Linux 內核版本 4.0 或更高版本,或使用 3.10.0-51 及更高版本的 RHEL 或 CentOS 的系統,overlay2是首選的存儲驅動程序。
2.重新啟動 Docker 並在啟動時啟用:
sudo systemctl enable docker
sudo systemctl daemon-reload
sudo systemctl restart docker
啟用IPVS必要模塊(kube-proxy使用IPVS代理模式時)
# 安裝IPVS管理工具
sudo apt-get install -y ipset ipvsadm
# 啟用模塊
sudo modprobe ip_vs
sudo modprobe ip_vs_rr
sudo modprobe ip_vs_wrr
sudo modprobe ip_vs_lc
sudo modprobe ip_vs_dh
sudo modprobe ip_vs_sh
sudo modprobe ip_vs_sed
sudo modprobe ip_vs_nq
sudo modprobe nf_conntrack
# 開機啟動模塊
cat <<EOF | sudo tee /etc/modules-load.d/ipvs.conf
ip_vs
ip_vs_rr
ip_vs_wrr
ip_vs_lc
ip_vs_dh
ip_vs_sh
ip_vs_sed
ip_vs_nq
nf_conntrack
EOF
安全配置
cat <<EOF | sudo tee /etc/security/limits.d/k8s.conf
* soft nofile 65536
* hard nofile 65536
* soft nproc 65536
* hard nproc 65536
* soft memlock unlimited
* hard memlock unlimited
EOF