1. 系统版本与内核要求
选择Debian稳定版(如Debian 11 Bullseye或Debian 12 Bookworm),确保内核版本符合Kubernetes要求(通常≥4.19)。避免使用Testing或Unstable版本,此类版本可能存在未解决的兼容性问题,不适合生产环境。
2. 关闭Swap分区
Kubernetes 1.8及以上版本要求禁用Swap分区,否则kubelet无法正常启动。执行以下命令临时关闭:sudo swapoff -a;永久关闭需编辑/etc/fstab文件,注释掉包含“swap”的行。
3. 配置内核参数
加载必要的内核模块并调整sysctl参数,优化网络栈和容器运行时性能。执行以下命令:
sudo tee /etc/modules-load.d/containerd.conf <<< "overlay br_netfilter",然后sudo modprobe overlay && sudo modprobe br_netfilter;sudo tee /etc/sysctl.d/99-kubernetes-k8s.conf <<< "net.bridge.bridge-nf-call-iptables=1\nnet.ipv4.ip_forward=1\nnet.bridge.bridge-nf-call-ip6tables=1",最后sudo sysctl --system使配置生效。4. 选择合适的容器运行时
Kubernetes 1.24及以上版本不再支持Docker作为默认运行时,推荐使用containerd。安装步骤:
sudo apt update;sudo apt install -y containerd;/etc/containerd/config.toml,设置root和state目录(如root = "/var/lib/containerd"),并重启服务:sudo systemctl restart containerd && sudo systemctl enable containerd。5. 添加Kubernetes官方软件源
为确保安装最新稳定版本的Kubernetes组件,需添加官方APT仓库。执行以下命令:
curl -s https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo apt-key add -;echo "deb https://apt.kubernetes.io/ kubernetes-xenial main" | sudo tee /etc/apt/sources.list.d/kubernetes.list;sudo apt update。6. 安装并固定Kubernetes组件版本
安装kubelet、kubeadm、kubectl,并使用apt-mark hold固定版本,避免自动更新导致兼容性问题。命令示例:sudo apt install -y kubelet kubeadm kubectl && sudo apt-mark hold kubelet kubeadm kubectl。
7. 配置防火墙规则
若系统启用防火墙(如ufw),需允许Kubernetes关键端口通信。常用端口包括:
sudo ufw allow 6443/tcp && sudo ufw allow 2379/tcp && sudo ufw allow 2380/tcp && sudo ufw allow 10250/tcp && sudo ufw allow 10255/tcp && sudo ufw allow 179/tcp && sudo ufw allow 4789/udp && sudo ufw reload。8. 初始化集群与配置kubectl
在主节点上使用kubeadm init初始化集群,指定API服务器地址、Pod网络CIDR等参数(如sudo kubeadm init --apiserver-advertise-address <主节点IP> --pod-network-cidr=10.244.0.0/16)。初始化完成后,将admin.conf复制到当前用户的.kube目录并设置权限:mkdir -p $HOME/.kube && sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config && sudo chown $(id -u):$(id -g) $HOME/.kube/config。
9. 安装网络插件
Kubernetes需要网络插件实现Pod间通信,常用插件如Calico、Flannel。以Calico为例,执行kubectl apply -f https://docs.projectcalico.org/manifests/calico.yaml安装。部分插件需额外开放端口(如Calico的BGP端口179/tcp、VXLAN端口4789/udp)。
10. 版本兼容性检查
确保Debian版本与Kubernetes版本兼容。参考Kubernetes官方文档的版本兼容性矩阵(如Kubernetes 1.28支持Debian 11+),避免跨大版本升级(如从1.20直接升级到1.30),建议分阶段升级(如1.20→1.21→1.22)。
11. 节点主机名与hosts文件配置
为每个节点设置唯一主机名(如k8s-master、k8s-node1),并编辑/etc/hosts文件,添加节点IP与主机名的映射(如192.168.1.101 k8s-master、192.168.1.102 k8s-node1),确保节点间可通过主机名通信。
12. 监控与日志配置
部署监控系统(如Prometheus+Grafana)监控集群状态(节点CPU/内存、Pod运行状态),配置日志系统(如ELK Stack)收集应用与系统日志,便于快速排查问题。