首页主机资讯Debian K8s部署需要哪些网络配置

Debian K8s部署需要哪些网络配置

时间2025-12-05 09:18:04发布访客分类主机资讯浏览1173
导读:Debian 上部署 Kubernetes 的网络配置清单 一 基础网络与主机配置 为所有节点配置静态 IP、唯一主机名,并在 /etc/hosts 中写入各节点的 IP↔主机名 映射,确保节点间可直连。 集群内所有主机需互通(同网段或可...

Debian 上部署 Kubernetes 的网络配置清单

一 基础网络与主机配置

  • 为所有节点配置静态 IP唯一主机名,并在 /etc/hosts 中写入各节点的 IP↔主机名 映射,确保节点间可直连。
  • 集群内所有主机需互通(同网段或可达路由),并建议统一时区NTP 时间同步。
  • 禁用 Swap(临时与永久):执行 sudo swapoff -a 并注释 /etc/fstab 中的 swap 行,避免 kubelet 异常。

二 内核与容器运行时网络参数

  • 加载内核模块并开启桥接与转发:
    • 模块:overlaybr_netfilter
    • Sysctl:net.bridge.bridge-nf-call-iptables=1net.bridge.bridge-nf-call-ip6tables=1net.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 网络 CIDRService 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.yamlkubectl 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_netfilterip_forward 与容器运行时 cgroup 配置是否持久化并生效。

声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!


若转载请注明出处: Debian K8s部署需要哪些网络配置
本文地址: https://pptw.com/jishu/764419.html
如何调整Kafka的吞吐量 Debian K8s部署常见问题及解决方法

游客 回复需填写必要信息