Debian K8s部署需要哪些网络配置
导读:Debian 上部署 Kubernetes 的网络配置清单 一 基础网络与主机配置 为所有节点配置静态 IP、唯一主机名,并在 /etc/hosts 中写入各节点的 IP↔主机名 映射,确保节点间可直连。 集群内所有主机需互通(同网段或可...
Debian 上部署 Kubernetes 的网络配置清单
一 基础网络与主机配置
- 为所有节点配置静态 IP、唯一主机名,并在 /etc/hosts 中写入各节点的 IP↔主机名 映射,确保节点间可直连。
- 集群内所有主机需互通(同网段或可达路由),并建议统一时区与 NTP 时间同步。
- 禁用 Swap(临时与永久):执行
sudo swapoff -a并注释 /etc/fstab 中的 swap 行,避免 kubelet 异常。
二 内核与容器运行时网络参数
- 加载内核模块并开启桥接与转发:
- 模块:
overlay、br_netfilter - Sysctl:
net.bridge.bridge-nf-call-iptables=1、net.bridge.bridge-nf-call-ip6tables=1、net.ipv4.ip_forward=1
- 模块:
- 使用 containerd 作为容器运行时,并启用与配置 systemd cgroup(常见做法为编辑 /etc/containerd/config.toml 的
[plugins."io.containerd.grpc.v1.cri".containerd.runtimes.runc.options]设置SystemdCgroup = true),随后systemctl restart containerd。 - 说明:自 Kubernetes v1.20 起内置的 dockershim 已移除,推荐 containerd/CRI-O。
三 防火墙与端口放行
- 若使用 UFW,按角色放行端口(示例):
- 控制平面(Master):6443/TCP(kube-apiserver)、2379–2380/TCP(etcd)、10250/TCP(kubelet API)、10251/TCP(kube-scheduler)、10252/TCP(kube-controller-manager)、10255/TCP(kubelet 只读端口,视安全策略可选)。
- 工作节点(Worker):10250/TCP(kubelet API)、30000–32767/TCP(NodePort 范围)。
- 如使用 firewalld/iptables,需确保等价规则已配置;云厂商安全组同样需要放行上述端口。
四 Pod 与服务网络规划及 CNI 插件
- 规划 Pod 网络 CIDR 与 Service CIDR,并在
kubeadm init时通过--pod-network-cidr指定(例如 10.244.0.0/16);确保与宿主机网段及现有网络无冲突。 - 安装 CNI 网络插件 以落实 Kubernetes 网络模型(Pod 互通、Service 负载均衡、网络策略等):
- Flannel:覆盖网络(VXLAN/UDP),上手简单,适合测试/中小规模。
- Calico:基于路由/BGP,性能较好,支持网络策略,适合生产。
- Cilium:基于 eBPF,在吞吐与延迟方面通常更优,并提供增强的可观测与策略能力。
- 其他:Weave Net(加密开销略高)、Canal(Flannel+Calico 组合)等。
- 性能与选型提示:在标准化测试中(4×8核16GB、10Gbps、K8s v1.28.2),Cilium 在 UDP 吞吐与 P99 延迟上表现更优,Flannel 均衡易用,Weave Net 性能相对较弱;生产可优先评估 Cilium/Calico。
五 快速验证与常见问题
- 初始化完成后,部署所选 CNI 清单(如
kubectl apply -f calico.yaml或kubectl apply -f kube-flannel.yml),待节点 Ready 后验证:kubectl get nodes -o wide(节点状态与 Pod CIDR 分配)kubectl get pods -A -o wide(CNI 组件就绪)kubectl run test-nginx --image=nginx:1.25 --restart=Never --rm -it -- curl -I http://kubernetes.default.svc.cluster.local(跨 Pod/Service 连通性)
- 常见问题排查要点:
- 节点 NotReady:检查 CNI DaemonSet 是否 Running、Pod CIDR 是否与
--pod-network-cidr一致、节点间 UDP/TCP 8472(Flannel VXLAN)/BGP 179(Calico) 等是否被放行。 - Service 不通:确认 kube-proxy 正常运行、节点与云安全组放行 NodePort/ClusterIP 相关流量。
- 内核/转发未生效:复核
br_netfilter、ip_forward与容器运行时 cgroup 配置是否持久化并生效。
- 节点 NotReady:检查 CNI DaemonSet 是否 Running、Pod CIDR 是否与
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: Debian K8s部署需要哪些网络配置
本文地址: https://pptw.com/jishu/764419.html
