部署 kubernetes
需要对系统进行某些必要的配置,此文档适用于所有需要部署 kubernetes
节点。
1. 环境验证
1.1. 验证机器属性
部署 Kubernetes 需要保证机器硬件 UUID 和网卡 MAC 地址是独一无二的,如果这些值在每个节点上一致,可能会导致部署失败。可使用如下命令确认:
1
2
3
4
# 查看硬件 UUID
cat /sys/class/dmi/id/product_uuid
# 查看网卡 MAC
ip link
1.2. 验证网络联通性
各个节点之间需要能够相互通信,你可以 使用 ping
或者 traceroute
等工具进行测试。
2. 配置系统
2.1. 启用内核模块
kubernetes 需要 br_netfilter
模块才能工作,Debian 内核已带有此模块,可使用 lsmod | grep br_netfilter
验证是否加载,装入以下配置以显式加载模块。
1
2
3
4
cat <<EOF | tee /etc/modules-load.d/kubernetes.conf
br_netfilter
EOF
modprobe br_netfilter
2.2. 配置内核参数
为了让节点上的 iptables
能够正确地查看桥接流量,你需要确保 sysctl
配置中将 net.bridge.bridge-nf-call-iptables 设置为 1。
1
2
3
4
5
6
7
cat <<EOF | tee /etc/sysctl.d/zz-kubernetes.conf
net.ipv4.ip_forward = 1
net.ipv6.conf.all.forwarding = 1
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
EOF
sysctl --system
2.3. 部署附加软件包
kubernetes
部分组件在运行中需要某些软件支撑,否则将导致 kubernetes 无法正常运行。
1
2
# cni 插件 需要 wireguard 软件包,rook-nfs 需要 nfs-common 软件包 ,kubernetes 需要 conntrack 软件包
apt-get install -y wireguard wireguard-tools nfs-common conntrack lvm2 iptables