Kubernetes operator 中的流量路由是如何发生的——Egress 流量之旅

How traffic routing happens in Kubernetes operator - Journey of Egress traffic

我正在尝试了解 Kubernetes-Operator 中的出口流量控制。如果我在我的 k3s 设置中实施 Kubernetes 操作员,出口流量如何在操作员中发生?

我想了解什么 pathway/gateway 出口流量的路由发生在 Kubernetes 运算符(出口流量的旅程)中?

作为一般规则,出口流量从托管您的 Pod 的节点离开您的 SDN。节点会在您的底层网络上使用自己的 IP 对其进行 NAT。

现在,如果 Egress 是指“离开我的 Pod 的任何东西”/关于留在 SDN 内的通信。请记住:

  • SDN 有两个子网(pod 网络、服务网络),并且您的 pod 网络被分成更小的子网,静态分配给您的 Kubernetes 节点:
  • 服务有 (usually/when spec.clusterIP != None) 自己的固定 IP。
  • 对于集群中的每个服务,您都有一个 Endpoint 对象,它列出了所有 Pods 具有匹配标签且被视为“就绪”的所有服务

连接服务时,节点防火墙(通常是 ipvs 或 iptables,根据 kube-proxy 配置)会将您的连接重定向到相应端点对象中列出的地址之一。此时,您的节点路由 table 接管:

  • 如果目标地址是本地地址(在分配给您的节点的 pod 子网中),则通信是直接的。
  • 如果目标地址属于分配给集群中另一个节点的网络,则流量将通过您的 SDN 容器(calico、flannel、ovs 等)到达目的地。