在 Debian 上配置 Kubernetes(K8s)网络,通常包含主机网络准备、容器网络插件(CNI)选择、Service/网络策略配置几个层面。下面按“实战流程”给你讲清楚。
sudo swapoff -a
sudo sed -i '/swap/s/^/#/' /etc/fstab
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-iptables = 1
net.bridge.bridge-nf-call-ip6tables = 1
net.ipv4.ip_forward = 1
EOF
sudo sysctl --system
sudo apt install -y containerd
sudo mkdir -p /etc/containerd
containerd config default | sudo tee /etc/containerd/config.toml
sudo systemctl restart containerd
K8s 网络要求:
适合生产、支持 NetworkPolicy
kubectl apply -f https://docs.projectcalico.org/manifests/calico.yaml
检查:
kubectl get pods -n kube-system
kubectl apply -f https://github.com/flannel-io/flannel/releases/latest/download/kube-flannel.yml
⚠ 不支持 NetworkPolicy
helm repo add cilium https://helm.cilium.io/
helm install cilium cilium/cilium --namespace kube-system
--node-ip# kubelet 配置
KUBELET_EXTRA_ARGS="--node-ip=192.168.1.10"
放行:
CoreDNS 自动部署:
kubectl get pods -n kube-system | grep coredns
测试 DNS:
kubectl run test --image=busybox --rm -it -- sh
nslookup kubernetes.default
kubectl get nodes
kubectl describe pod <pod>
ip route
iptables -L -n
✅ Debian 12
✅ containerd
✅ Calico
✅ Kubernetes 1.28+
如果你愿意,我可以: