温馨提示×

debian k8s网络怎么设

小樊
45
2026-10-11 04:14:46
栏目: 智能运维

下面按常见场景给你讲下 Debian 上 Kubernetes 网络怎么设置,从“系统层 → 容器网络 → 集群网络”一步步来。


一、Debian 系统层网络准备(必须)

1. 关闭 swap(K8s 强制要求)

sudo swapoff -a
sudo sed -i '/swap/d' /etc/fstab

2. 开启内核转发(很重要)

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

3. 安装容器运行时(以 containerd 为例)

sudo apt update
sudo apt install -y containerd
sudo mkdir -p /etc/containerd
containerd config default | sudo tee /etc/containerd/config.toml
sudo systemctl restart containerd

二、Kubernetes 网络模型(先理解)

K8s 网络有 3 个基本要求:

  1. Pod 互通(跨节点也能通)
  2. Pod 能访问外网
  3. Service 能稳定访问 Pod

⚠️ K8s 本身不提供网络实现,需要 CNI 插件


三、选择并安装 CNI 网络插件(重点)

方案 1:Calico(最常用,推荐)

适合生产、稳定、支持网络策略

kubectl apply -f https://docs.projectcalico.org/manifests/calico.yaml

特点:

  • Pod 网段默认:192.168.0.0/16
  • 支持 NetworkPolicy
  • 性能较好

方案 2:Flannel(简单)

适合测试、学习

kubectl apply -f https://github.com/flannel-io/flannel/releases/latest/download/kube-flannel.yml

特点:

  • 配置简单
  • 不支持 NetworkPolicy
  • 默认网段:10.244.0.0/16

方案 3:Cilium(高级,eBPF)

适合高性能、云原生

kubectl apply -f https://raw.githubusercontent.com/cilium/cilium/v1.15/install/kubernetes/quick-install.yaml

四、初始化 Kubernetes 集群时设置网络

1. 初始化 Master(示例)

sudo kubeadm init \
  --pod-network-cidr=192.168.0.0/16

⚠️ --pod-network-cidr 必须和 CNI 插件一致

2. 配置 kubectl

mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config

3. 安装 CNI(见上面)


五、节点网络注意事项(Debian 特有)

1. 防火墙(如果用 ufw)

K8s 需要很多端口,建议直接关:

sudo ufw disable

或放行:

  • 6443(API)
  • 10250(kubelet)
  • 8472(Flannel VXLAN)
  • 179(Calico BGP)

2. 多网卡问题

如果 Debian 有多个网卡:

kubeadm init --apiserver-advertise-address=192.168.1.10

六、验证网络是否正常

kubectl get pods -n kube-system
kubectl run test --image=busybox -it --rm -- sh
ping 8.8.8.8

七、常见网络问题

问题 原因
Pod 不通 CNI 没装
跨节点不通 防火墙 / 路由
DNS 失败 CoreDNS 没起来
外网不通 缺 IP 转发

八、我可以进一步帮你

我可以帮你:

  • ✅ 选 最适合你的 CNI
  • ✅ 给你 完整的 Debian + kubeadm 安装脚本
  • ✅ 排查 具体网络不通问题

你可以告诉我:

  1. Debian 版本(11 / 12?)
  2. 单节点还是多节点?
  3. 用 kubeadm / k3s / 云厂商?

0 踩