Debian系统Kubernetes集群搭建技巧
sudo apt update && sudo apt upgrade -y更新系统,避免软件包冲突;安装apt-transport-https、ca-certificates、curl、gnupg等基础依赖,确保后续能正常添加软件源。sudo swapoff -a立即关闭,再修改/etc/fstab文件(将swap行注释或删除),永久禁用。Swap会影响Pod调度和系统性能。/etc/sysctl.d/99-kubernetes-k8s.conf文件,添加以下内容以支持网络转发和桥接:net.bridge.bridge-nf-call-iptables=1
net.bridge.bridge-nf-call-ip6tables=1
net.ipv4.ip_forward=1
执行sudo sysctl --system使配置生效,确保Pod间通信正常。master、worker1),并编辑/etc/hosts文件,添加节点IP与主机名映射(如192.168.1.10 master、192.168.1.11 worker1),避免DNS解析问题。sudo apt install ntp),确保所有节点时间同步。时间不同步会导致证书验证失败、日志混乱等问题。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
避免使用过时的第三方源,确保组件版本兼容。apt-cache madison kubelet查看可用版本,选择后安装(如sudo apt install -y kubelet=1.28.2-00 kubeadm=1.28.2-00 kubectl=1.28.2-00)。安装后执行sudo apt-mark hold kubelet kubeadm kubectl锁定版本,防止自动升级导致集群异常。sudo apt install -y docker-ce docker-ce-cli containerd.io安装;若用containerd,需额外配置/etc/containerd/config.toml文件(设置default_runtime为runc),并重启服务。sudo kubeadm init时,添加以下关键参数:
--pod-network-cidr=10.244.0.0/16:指定Pod网络CIDR(需与后续网络插件匹配,如Flannel);--service-cidr=10.0.0.0/16:指定Service网络CIDR(避免与Pod网络冲突);--apiserver-advertise-address=<master-ip>:指定API Server监听的IP(避免多网卡冲突)。kubeadm join命令(包含token和CA证书哈希),用于Worker节点加入。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
确保用户对.kube/config有读写权限,否则无法执行kubectl命令。kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml安装。安装后检查kubectl get pods -n kube-system,确认网络插件Pod均处于Running状态。kubeadm join命令(如sudo kubeadm join 192.168.1.10:6443 --token abcdef.1234567890abcdef --discovery-token-ca-cert-hash sha256:xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx)。kubectl get nodes,确认Worker节点状态为Ready(若为NotReady,需检查网络插件、防火墙或节点资源是否充足)。执行kubectl describe node <node-name>可查看节点详细信息,排查问题。ufw,执行sudo ufw allow <port>开放端口;若用iptables,添加相应规则。etcdctl snapshot save命令(如sudo etcdctl snapshot save /opt/etcd-backup/snapshot.db)。备份文件需存储在安全位置,便于集群故障恢复。sudo apt update && sudo apt upgrade -y升级。升级前需备份重要数据(如etcd),并参考官方升级文档,避免版本不兼容。