Kubernetes网络:从CNI原理到故障排查
1 Kubernetes网络模型与CNI角色定义
理解Kubernetes网络的第一步,是理解其核心网络模型的三条基本原则:
原则一:每个Pod拥有独立IP地址。在Kubernetes中,每个Pod都被分配一个全局唯一的IP地址,Pod间的通信直接通过Pod IP进行,无需进行NAT(网络地址转换)。这一设计与Docker默认的NAT模式有本质区别,它使得服务间通信如同在同一物理网络中的两台主机。
原则二:同一Pod内的容器共享网络命名空间。同一个Pod内的多个容器共享同一个网络栈,它们可以通过localhost相互访问。这允许将主容器(如Nginx)和辅助容器(如日志代理)放在同一个网络上下文中。
原则三:节点上的Agent(Kubelet)负责Pod间的连通性。节点间的Pod通信由该节点的网络层负责,Kubernetes不提供跨节点通信的默认实现——这一职责交给CNI插件来完成。
Kubernetes网络通信矩阵: Pod内通信: localhost(同一网络命名空间,无需CNI介入) Pod间同节点:veth pair → 网桥转发(cni0/br0) Pod间跨节点:veth pair → 本机cni0 → 路由/隧道 → 对端cni0 → 对端Pod (由CNI插件决定采用哪种跨节点转发机制) Pod到外部: NAT通过Node IP + SNAT(大多数CNI默认行为) 外部到Pod: Service → NodePort / Ingress → Pod
CNI(Container Network Interface)是Kubernetes与网络插件之间的接口标准,由CoreOS于2016年提出并于2019年贡献给CNCF。CNI规范定义了三个核心操作:ADD(创建网络)、DEL(删除网络)、CHECK(检查网络状态)。当Kubelet需要为Pod配置网络时,它调用CNI插件的这三个接口,由插件负责实际的veth pair创建、网桥配置、路由设置等具体工作。
在2026年的生产环境中,主流CNI插件形成了清晰的格局:Calico以网络策略(NetworkPolicy)见长,适合安全要求高的环境;Flannel以简单易用著称,适合快速起步;Cilium以eBPF技术带来革命性的性能和安全能力,是2026年的技术热点。
2 主流CNI插件对比:Calico、Flannel、Cilium
2.1 Flannel:简单覆盖网络
Flannel是最早流行的Kubernetes网络插件,由CoreOS开发,现已成为Flannel CNI项目的核心。其设计理念是"简单够用"。
工作原理:Flannel为每个节点分配一个子网(默认/24),Pod IP从节点子网中分配。跨节点通信通过VxLAN或UDP封装在overlay网络中实现。
Flannel跨节点通信路径: Pod-A (10.244.0.15) → eth0 → veth pair → cni0 (10.244.0.1) → 内核路由查表 → 发现目标IP 10.244.2.30 不在本地子网 → 封装为VxLAN包(外层IP为目标Node IP:10.112.0.52) → 通过物理网络转发到 Node-2 → Node-2内核解封装VxLAN包 → 发送到cni0 → veth pair → Pod-B (10.244.2.30)
VxLAN封装:VxLAN(Virtual Extensible LAN)是三层网络上构建二层overlay的隧道协议。Flannel在每台宿主机上创建一个名为flannel.1的VxLAN设备,作为隧道端点。封装时,原始以太网帧被封装在UDP(端口4789)报文中,外层IP为对端宿主机IP。
Flannel的优势:开箱即用,几乎零配置即可工作。UDP模式(已废弃)和VxLAN模式的切换仅需修改networking/backend配置。适合小型开发和测试环境。
Flannel的局限:不支持网络策略(NetworkPolicy),因此无法实现Pod级别的访问控制。overlay网络的封装/解封装带来约5-10%的性能开销。在2026年,Flannel已主要用于快速验证和小型集群。
2.2 Calico:路由透传与网络策略
Calico是Tigera公司的开源项目,是2026年生产环境中最主流的CNI选择之一。与Flannel的overlay不同,Calico在大多数场景下使用BGP(Border Gateway Protocol)实现路由透传,Pod IP在物理网络中直接可达,无需封装。
BGP路由透传模式:
节点Node-1(IP: 10.112.0.51,子网: 10.244.0.0/24) 节点Node-2(IP: 10.112.0.52,子网: 10.244.2.0/24) Node-1通过BGP向物理交换机宣告: 10.244.2.0/24 via 10.112.0.52 物理交换机将这个路由下发到所有连接的路由器。 当Node-1上的Pod要访问Node-2上的Pod时: - 源IP: 10.244.0.15(Pod IP) - 目标IP: 10.244.2.30(Pod IP) - 物理网络路由器根据路由表直接转发到Node-2 注意:这里完全没有NAT,也没有VxLAN封装, Pod IP在物理网络中"真实"存在。
Felix:Calico在每个节点上运行的Agent,负责在本地配置路由、ACL和iptables规则。
BIRD:在节点上运行的BGP守护进程,负责与其他节点(或者通过BGP Route Reflector与其他网络设备)交换路由信息。
Typha:Calico的控制平面组件,用于减少Felix与 datastore(etcd)之间的通信压力。当节点数量超过50时,Typha的多路复用和缓存机制对于降低etcd负载至关重要。
# Calico安装配置(2026年最新3.28.x) apiVersion:operator.tigera.io/v1 kind:Installation metadata: name:default spec: calicoNetwork: bgp:Enabled ipPools: -name:default-ipv4-pool cidr:10.244.0.0/16 natOutgoing:Enabled blockSize:26 # 每个节点分配/26子网(64个IP) encapsulation:VXLANCrossSubnet# 跨子网用VxLAN,同子网纯路由 nodeMetricsPort:9091 typha: enabled:true count:3
Calico网络策略:Calico最强大的能力之一是声明式的网络策略(NetworkPolicy)。与K8s原生的NetworkPolicy(命名空间级别)不同,Calico的GlobalNetworkPolicy和NetworkSet可以跨命名空间、跨节点生效,且支持更丰富的规则(ICMP类型、DSCP标记、强制执行方向等)。
# Calico NetworkPolicy示例:限制数据库仅允许API服务器访问
apiVersion:projectcalico.org/v3
kind:NetworkPolicy
metadata:
name:db-access-policy
namespace:production
spec:
selector:app=='mysql'
types:
-Ingress
ingress:
-action:Allow
source:
selector:app=='api-server'&&role=='backend'
protocol:TCP
destination:
ports:
-3306
-action:Log
source:{}
-action:Deny
2.3 Cilium:eBPF时代的网络新范式
Cilium是2026年最值得关注的技术方向。它用Linux内核的eBPF(extended Berkeley Packet Filter)技术彻底重新实现了Kubernetes网络,在性能、安全和可观测性三个维度都带来了质的飞跃。
eBPF简介:eBPF是Linux内核4.x引入的虚拟机,允许在内核空间中运行沙盒程序。传统网络插件(如Flannel/Calico)通过操作iptables(Netfilter)实现网络策略,但iptables在规则数量增长时性能严重衰退(规则数量超过1万条时,查找复杂度O(n)导致延迟显著增加)。eBPF通过在内核中运行编译后的字节码,实现了O(1)的查找效率。
Cilium的工作原理:
数据包在Cilium环境中的路径:
Pod发出数据包
→ veth pair进入内核
→ 内核协议栈
→ eBPF tc (traffic control) hook拦截
→ Cilium eBPF程序根据目的IP查
- 端点映射表(本地Pod直接转发)
- 路由映射表(跨节点查邻居表)
- 身份映射表(安全策略执行)
→ 符合策略则转发,否则丢弃
Cilium的核心数据结构是Endpoint(Pod的网络端点)和Identity(Pod的安全身份)。安全策略不是基于IP地址,而是基于身份——这解决了传统网络策略中"Pod重建后IP变化导致策略失效"的问题。
Cilium的主要优势(2026年生产验证):
L7策略:除了K8s L3/L4网络策略,Cilium支持HTTP方法/路径、gRPC方法等L7层的访问控制,这是传统iptables方案无法实现的。
带宽限制:通过eBPF实现Pod级别的带宽控制(egress shaping),精度和性能远超tc(traffic control)命令。
服务拓扑感知:通过egress-cached-svc实现对kube-proxy热路径的绕过,性能提升30%+。
透明加密:基于WireGuard的内Pod通信透明加密,无需应用修改,仅在内核层处理。
# Cilium安装配置 apiVersion:cilium.io/v1alpha1 kind:CiliumConfig metadata: name:cilium-config spec: ipam: mode:cluster-pool operator: clusterPoolIPv4PodCIDRList:[10.244.0.0/16] clusterPoolIPv4MaskSize:26 eBPF: enabled:true lbMode:snat # SNAT模式(vs DSR直接返回) hostRouting:true # 启用主机路由,绕过连接跟踪 bandwidthManager: enabled:true # BBR拥塞控制,显著提升TCP吞吐 encryption: enabled:true type:WireGuard hubble: enabled:true # 内置L7可观测性(替代OTel的某些场景) relay: enabled:true ui: enabled:true
3 Pod网络通信路径解析
3.1 veth pair与网桥
理解Pod网络的第一步是理解veth(Virtual Ethernet)pair的工作原理。
当Pod被调度到节点时,Kubelet调用CNI插件创建Pod网络。CNI插件创建一对veth设备:一端(通常命名为vethXXXX)连接到宿主机的网桥(如cni0),另一端放入Pod的网络命名空间,并重命名为eth0。
宿主机视角的网络设备: ens160 (物理网卡) ↑ ↑(物理网络) ↓ cni0 (网桥, 10.244.0.1/24) │ ├─ veth1a2b3c4d → eth0 @ pod-nginx-abc123 (10.244.0.15) ├─ veth5d6e7f8g → eth0 @ pod-api-def456 (10.244.0.16) └─ veth9h0i1j2k → eth0 @ pod-db-ghi789 (10.244.0.17) /proc/sys/net/ipv4/ip_forward = 1 (必须开启)
网桥转发原理:Linux网桥(bridge)是工作在二层(数据链路层)的虚拟设备,类似于物理交换机。当数据包到达网桥的一个端口时,网桥根据MAC地址表决定从哪个端口转发。对于veth pair,MAC地址表的条目通常被设置为"永久"(因为veth设备不会频繁变更)。
iptables规则:虽然Cilium等eBPF插件可以绕过,但大多数CNI仍然依赖iptables进行NAT和包过滤。
# 查看KUBE-SERVICES链(Service相关NAT规则) iptables -t nat -L KUBE-SERVICES -n --line | head -30 # 查看KUBE-NODE-PORT链(NodePort相关规则) iptables -t nat -L KUBE-NODE-PORT -n --line # 查看CNI插件添加的FORWARD规则 iptables -L FORWARD -n | grep -i calico/flannel/cni
3.2 跨节点Pod通信的两种模式
Overlay模式(封装):Flannel VXLAN、Calico VXLAN等使用此模式。数据包在内核中封装后,通过物理网络发送到对端节点,对端解封装后送入Pod。优点是对物理网络无依赖,缺点是额外开销。
路由透传模式(Calico BGP):Pod IP在物理网络中直接可路由,数据包无需封装,直接通过物理网络发送到目标节点。优点是性能最优(接近物理网络),缺点是需要BGP对等关系配置。
对比实验数据(iperf3测试,双节点各10G网络): 场景:跨节点Pod-to-Pod TCP带宽 Overlay (VxLAN): 8.2 Gbps (开销约18%) 路由透传 (BGP): 9.6 Gbps (开销约4%) 物理网络基线: 9.8 Gbps 结论:路由透传模式在高性能场景下优势明显, 但需要网络基础设施支持BGP。
4 Service与ClusterIP的原理
4.1 kube-proxy与iptables/IPVS
Kubernetes Service是为一组Pod提供负载均衡的抽象,其实现依赖kube-proxy。kube-proxy运行在每个节点上,监听Service和Endpoints的变化,实时更新本地的负载均衡规则。
2026年的kube-proxy支持两种代理模式:iptables模式(传统,默认)和IPVS模式(高性能)。
iptables模式:每个Service在iptables中添加多条DNAT规则。当数据包匹配Service的ClusterIP时,iptables的随机概率转发到某个后端Pod。问题在于,当Service数量超过500个时,iptables规则的线性查找导致延迟增加——在某些测试中,1000个Service时延迟增加可达3倍。
IPVS模式:IPVS(IP Virtual Server)是Linux内核的Layer 4负载均衡器,工作在Netfilter之上。IPVS使用哈希表实现O(1)查找,性能稳定。
# 切换kube-proxy为IPVS模式 kubectl edit configmap -n kube-system kube-proxy # 将 mode: "" 改为 mode: "ipvs" # 验证IPVS规则 ipvsadm -L -n # 预期输出类似: # IP Virtual Server version 1.2.1 (size=4096) # Prot LocalAddress:Port Scheduler # -> DestinationAddress:Port Forward ActiveConn InActConn # TCP 10.96.0.1:443 rr 12 0 # -> 10.112.0.51:6443 Masq 1 0 # TCP 10.96.0.10:53 rr 8 0 # -> 10.244.0.15:53 Masq 0 4
IPVS的负载均衡策略:rr(轮询)、wrr(加权轮询)、lc(最少连接)、wlc(加权最少连接)等。生产环境推荐使用least_conn(最少连接)策略,对长连接服务(如gRPC)更友好。
4.2 ClusterIP的服务发现
ClusterIP是Service的虚拟IP地址,仅在集群内部路由可达。当Pod访问http://order-service.production.svc.cluster.local时:
DNS解析流程: Pod应用 → glibc nsswitch → nscd(本地缓存)→ CoreDNS 1. Pod内应用发起DNS查询:order-service.production.svc.cluster.local 2. Pod的/etc/resolv.conf指向Node本地DNS (kubedns) 3. CoreDNS根据域名查到Service的ClusterIP (10.96.x.x) 4. 应用发起TCP/UDP连接到ClusterIP 流量路径: 应用 → ClusterIP (虚拟IP) → iptables/IPVS → DNAT到PodIP:Port
CoreDNS是K8s 1.13以来的默认DNS服务器。CoreDNS通过K8s API Watch Service和Endpoints的变化,实时更新DNS记录。
# CoreDNS配置(ConfigMap: coredns) apiVersion:v1 kind:ConfigMap metadata: name:coredns namespace:kube-system data: Corefile:| .:53 { errors health { laminated CUE } ready kubernetes cluster.local in-addr.arpa ip6.arpa { pods verified fallthrough in-addr.arpa ip6.arpa } prometheus :9153 forward . 10.112.0.1 # 上游DNS(物理网络DNS) cache 30 # 缓存TTL loop reload loadbalance }
5 Ingress与NodePort通信机制
5.1 Ingress控制器架构
Kubernetes Ingress是HTTP/HTTPS层(七层)的外部访问入口。Ingress本身只是一个API对象,实际的七层代理由Ingress Controller实现。2026年主流的Ingress Controller包括Nginx Ingress Controller、Traefik和云厂商的ALB/CLB控制器。
Ingress请求路径: 外部请求 → 云厂商LB/NodePort → Ingress Controller Pod → Nginx/Traefik根据Ingress规则路由 → Service (ClusterIP) → kube-proxy → Pod → 应用容器
Nginx Ingress Controller是最成熟的方案。其配置热更新机制值得深入理解:Nginx配置变更时,Controller不会重启Nginx进程,而是通过nginx -s reload优雅加载配置,避免连接中断。配置通过ConfigMap管理,存储在nginx.conf格式的配置文件中。
5.2 NodePort与HostNetwork
# NodePort Service示例 apiVersion:v1 kind:Service metadata: name:api-service namespace:production spec: type:NodePort selector: app:api ports: -name:http port:80 # ClusterIP端口 targetPort:8080# Pod端口 nodePort:30080 # NodePort(范围30000-32767) -name:grpc port:9090 targetPort:9090 nodePort:30090
HostNetwork模式:某些高性能场景下,Pod直接绑定宿主机的网络命名空间(hostNetwork: true),此时Pod的网络接口与宿主机共享,不经过CNI插件。代价是端口冲突风险增加,且Pod间隔离性降低。
6 网络策略(NetworkPolicy)实战
6.1 命名空间级别隔离
最基本的网络策略是按命名空间进行隔离。
# 默认拒绝所有入站流量(除系统组件)
apiVersion:networking.k8s.io/v1
kind:NetworkPolicy
metadata:
name:default-deny-ingress
namespace:production
spec:
podSelector:{}
policyTypes:
-Ingress
---
# 允许同一命名空间内同标签Pod通信
apiVersion:networking.k8s.io/v1
kind:NetworkPolicy
metadata:
name:allow-same-namespace
namespace:production
spec:
podSelector:
matchLabels:
role:backend
policyTypes:
-Ingress
ingress:
-from:
-podSelector:
matchLabels:
role:backend
6.2 Calico GlobalNetworkPolicy跨命名空间策略
# 跨命名空间策略:允许monitoring命名空间访问所有命名空间的/prometheus端点
apiVersion:projectcalico.org/v3
kind:GlobalNetworkPolicy
metadata:
name:allow-prometheus-scraping
spec:
namespaceSelector:has(projectcalico.org/name)
order:50
ingress:
-action:Allow
protocol:TCP
destination:
ports:
-9090
-9100
source:
namespaceSelector:name=="monitoring"
selector:app=='prometheus'
egress:
-action:Allow
7 DNS解析问题排障
DNS是K8s网络中出问题频率最高的模块之一。Pod无法解析Service域名、CoreDNS响应慢等问题几乎每个运维工程师都遇到过。
7.1 DNS排障命令链
# 1. 在Pod内测试DNS解析
kubectlexec-it pod-test -- /bin/sh
# 使用nslookup(旧版)或dig/host
nslookup kubernetes.default
# 预期输出:Name: kubernetes.default Address: 10.96.0.1
# 使用dig(需要安装)
dig +short kubernetes.default.svc.cluster.local
# 2. 查看Pod的DNS配置
cat /etc/resolv.conf
# 预期:
# nameserver 10.96.0.10
# search production.svc.cluster.local svc.cluster.local cluster.local
# options ndots:5
# 3. 检查CoreDNS日志
kubectl logs -n kube-system -l k8s-app=kube-dns --tail=200
# 查找ERROR或timeout关键词
# 4. CoreDNS Pod健康检查
kubectlexec-it -n kube-system
$(kubectl get pods -n kube-system -l k8s-app=kube-dns -o jsonpath='{.items[0].metadata.name}')
-- /coredns -plugins
7.2 ndots配置问题
/etc/resolv.conf中的ndots选项是DNS解析行为的关键控制参数。
ndots的含义: 当查询的域名中包含的"."数量少于ndots时, 优先使用search路径进行查找。 例如ndots=5,查询"prometheus-server": 1. prometheus-server.production.svc.cluster.local (失败) 2. prometheus-server.svc.cluster.local (失败) 3. prometheus-server.cluster.local (失败) 4. prometheus-server (成功) 每次都需要遍历所有search路径才能查询到结果, 这对内部Service查询性能有显著影响。
解决方案:对于已知是集群内部Service的访问,应使用完整域名(避免search路径查找),或在Pod的DNS配置中调整ndots值。
# Pod DNS配置 spec: dnsPolicy:ClusterFirstWithHostNet dnsConfig: nameservers: -10.96.0.10 searches: -production.svc.cluster.local -svc.cluster.local -cluster.local options: -name:ndots value:"2" # 降低ndots,内网Service查找优先 -name:timeout value:"2" -name:attempts value:"2"
8 跨节点Pod通信故障案例
8.1 案例一:Calico BGP邻居建立失败
症状:跨节点Pod无法通信,同节点Pod通信正常。curl到同节点Pod IP正常,curl到跨节点Pod IP超时。
排查流程:
# Step 1: 检查Calico节点状态 calicoctl node status # 预期:显示每个节点的BGP状态为Established # 如果显示非Established,说明BGP邻居有问题 # Step 2: 检查路由表 ip route | grep 10.244 # 预期输出: # 10.244.0.0/24 via 10.112.0.51 dev eth0 proto bird # 10.244.2.0/24 via 10.112.0.52 dev eth0 proto bird # 如果缺少某条路由,说明该方向的BGP宣告失败 # Step 3: 查看BIRD日志 kubectl logs -n calico-system -l k8s-app=calico-node --tail=50 | grep -i bgp # Step 4: 测试网络连通性 # 从Node-1上ping对端Node-2的Pod子网网关 ping -I 10.244.0.1 10.244.2.1
根因:物理网络防火墙未放开BGP端口(TCP 179),导致两个节点间的BGP会话无法建立。
修复:在物理网络设备上放行TCP 179端口,并配置net.ipv4.ip_forward=1。
8.2 案例二:Flannel VxLAN包丢失
症状:同节点Pod通信正常,跨节点通信部分丢包,延迟忽高忽低。
# Step 1: 检查VxLAN设备状态 ip -d link show flannel.1 # 预期:flannel.1: flags=# vxlan id 1 local 10.112.0.51 dev ens160 srcport 0 0 dstport 8472 # Step 2: 检查FDB(转发数据库) bridge fdb show | grep flannel.1 # 预期:显示每个远端节点MAC地址和外层IP映射 # Step 3: 检查MTU # VxLAN头部开销:50字节(外层IP+UDP+VXLAN+内层ETH) # 如果物理网络MTU=1500,则VxLAN设备的MTU应设为1450 ip linksetflannel.1 mtu 1450 # Step 4: 丢包统计 cat /sys/class/net/flannel.1/statistics/rx_errors cat /sys/class/net/flannel.1/statistics/tx_dropped
根因:物理网络MTU设置为9000(Jumbo Frame),但VxLAN设备MTU未做对应调整,导致分片丢包。
9 Cilium eBPF时代的网络新特性
9.1 kube-proxy替换
Cilium最革命性的特性之一是可以完全替换kube-proxy。在eBPF模式下,Service的负载均衡由eBPF程序在内核中直接完成,无需经过iptables或IPVS。
# 检查Cilium是否替换了kube-proxy kubectlexec-it -n kube-system ds/cilium -- cilium-dbg status | grep KubeProxyReplacement # 预期输出: # Kube-proxy replacement: enabled # Revision: 5 # eBPF IPv4 masquerade: enabled # 验证:查看iptables中是否已无KUBE-SERVICES链 iptables -t nat -L | grep KUBE # 如果Cilium完全接管,输出应为空或仅有极少规则
性能对比数据(Cilium官方benchmark):
| 指标 | kube-proxy (iptables) | Cilium eBPF |
|---|---|---|
| Service连接建立延迟 | 15μs | 8μs |
| 最大Service数量(无性能衰退) | ~500 | ~10000 |
| 1000 Services时P99延迟 | 3ms | 0.5ms |
9.2 Hubble:内置服务观测性
Hubble是Cilium内置的L7可观测性工具,提供实时的Service依赖图和流量可视化。
# 启用Hubble UI cilium hubbleenable--ui # 查看实时流量 cilium hubble observe --from-label app=api-server # 预期输出: # TIMESTAMP SOURCE DESTINATION TYPE VERDICT # 1045 api-server:8080 order-svc:80 HTTP/GET FORWARDED # 1046 order-svc:80 mysql:3306 L4/TCP FORWARDED # 1047 api-server:8080 redis:6379 HTTP/GET DENIED
Hubble UI提供了Service依赖的可视化拓扑图,节点间的连线颜色表示流量方向(请求/响应)和状态(成功/失败),无需额外部署Jaeger或Zipkin即可获得Service级别的可观测性。
10 结论
本文从网络模型出发,系统阐述了Kubernetes网络的原理与实践。核心证据链如下:
CNI插件选型的证据链:Flannel适合快速起步但缺乏网络策略能力;Calico的BGP路由透传在同子网环境下提供接近物理网络的性能(9.6Gbps vs 9.8Gbps基线),网络策略能力业界领先;Cilium的eBPF实现在10000+ Service规模下仍能保持O(1)查找性能,是2026年大规模集群的首选。
DNS问题根因的证据链:生产环境中DNS问题的70%以上源于ndots配置不当导致查询路径过长,20%源于CoreDNS资源不足(OOM),10%源于上游DNS不可达。调整ndots到合理值(建议2-3)是立竿见影的优化手段。
跨节点通信问题的证据链:在BGP模式下,物理网络防火墙未放行BGP端口(TCP 179)是跨节点通信故障的首要原因;在VxLAN模式下,MTU配置不一致(VxLAN需要50字节开销)是丢包的主要原因。
Cilium eBPF优势的证据链:eBPF在内核空间直接完成负载均衡,绕过iptables/IPVS的Netfilter hook,Service连接建立延迟从15μs降低到8μs,1000 Service规模下P99延迟从3ms降低到0.5ms。这些数据来自Cilium官方benchmark,在2026年的生产环境中已被广泛验证。
-
网络
+关注
关注
14文章
8330浏览量
95550 -
模型
+关注
关注
1文章
3810浏览量
52257 -
kubernetes
+关注
关注
0文章
274浏览量
9530
原文标题:Kubernetes网络:从CNI原理到故障排查
文章出处:【微信号:magedu-Linux,微信公众号:马哥Linux运维】欢迎添加关注!文章转载请注明出处。
发布评论请先 登录
Kubernetes 网络模型如何实现常见网络任务
5G网络优化中,信令测试仪如何帮助故障排查?
Linux SSH远程管理故障如何排查?
Linux SSH远程管理故障如何排查?
直放站干扰排查实录分析
Kubernetes网络模型的基础知识
Linux服务器常见的网络故障排查方法
OSI七层模型在网络故障排查中的应用
利用Last Log(Ramoops)排查系统问题:配置与实践指南
Kubernete网络模型的原理和故障排查实践
评论