可以将 LoadBalancer 类型的 Kubernetes 服务配置为仅允许本地 Pod 流量。

仅允许本地流量的服务示例

如果对 主管 使用 NSX 网络连接,则可以配置 LoadBalancer 类型的 Kubernetes 服务,以限制到本地节点的 Pod 流量。

以下负载均衡器服务将配置 externalTrafficPolicy 参数设置为 Local 的负载均衡器实例。结果是,pod 流量仅路由到运行本地 pod 的节点。
apiVersion: v1
kind: Service
metadata:
  name: local-only
spec:
  selector:
    app: testApp
  ports:
    - protocol: TCP
      port: 80
      targetPort: 80
  externalTrafficPolicy: Local
  type: LoadBalancer

NSX 监控注意事项

该功能使用 NSX 运行状况检查监控器。从 NSX 管理的角度来看,了解此功能的内部操作十分重要。

NSX 运行状况检查监控器监视 kube-proxy 为与 LoadBalancer 类型的服务对应的服务器池分配的 Kubernetes 运行状况检查 NodePort。NSX 运行状况检查监控器向目标运行状况检查 NodePort 发送 HTTP GET 请求。没有本地 pod 正在运行时,节点上的 kube-proxy 返回 HTTP 状态代码 500。没有本地 Pod 的节点将由 NSX 标记为“关闭”,并如此显示在 NSX Manager 中。流量将仅路由到运行本地 pod 的节点。