Debian上安装Kubernetes的实用技巧
一 基础准备与系统设置
swapoff -a并注释/etc/fstab中的swap行,避免kubelet异常。overlay、br_netfilter,开启net.bridge.bridge-nf-call-iptables=1与net.ipv4.ip_forward=1,使容器网络与K8s策略生效。二 容器运行时选择与配置
containerd config default > /etc/containerd/config.toml[plugins."io.containerd.grpc.v1.cri".containerd.runtimes.runc.options]下设置SystemdCgroup = true,与systemd驱动一致。systemctl restart containerd && systemctl enable containerd。docker-ce与containerd.io,启动并设为开机自启。三 kubeadm初始化与网络插件
kubelet、kubeadm、kubectl,并apt-mark hold避免被系统升级干扰。kubeadm init --pod-network-cidr=10.244.0.0/16kubeadm init --pod-network-cidr=192.168.0.0/16mkdir -p $HOME/.kube && sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config && sudo chown $(id -u):$(id -g) $HOME/.kube/configkubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.ymlkubectl apply -f https://docs.projectcalico.org/manifests/tigera-operator.yaml 与 kubectl apply -f https://docs.projectcalico.org/manifests/custom-resources.yamlkubeadm join ...命令在各Node执行。四 防火墙与端口规划
五 常见问题与快速排查
Pod CIDR是否与插件匹配、以及节点内核参数与模块是否加载。SystemdCgroup设置与运行时一致、以及容器运行时处于active状态。kubeadm init时使用--image-repository registry.aliyuncs.com/google_containers加速;或提前在各节点docker pull/ctr images pull所需镜像。kubeadm token create --print-join-command),确保时间同步与API可达。