NSX Container Plugin (NCP) 提供 NSX 与容器协调器(如 Kubernetes)之间的集成,以及 NSX 与基于容器的 PaaS(平台即服务)产品(如 OpenShift 和 Tanzu Application Service (TAS))之间的集成。本指南介绍了如何使用 Kubernetes 和 TAS 设置 NCP。

NCP 的主要组件在容器中运行,并与 NSX Manager 和 Kubernetes 控制平面进行通信。NCP 调用 NSX API 以监控对容器和其他资源的更改以及管理网络资源,如容器的逻辑端口、交换机、路由器和安全组。

NSX CNI 插件在每个 Kubernetes 节点上运行。它监控容器生命周期事件,将容器接口连接到客户机 vSwitch,并对客户机 vSwitch 进行编程以标记和转发容器接口和 vNIC 之间的容器流量。

NCP 提供了以下功能:
  • 自动为 Kubernetes 集群创建 NSX 逻辑拓扑,并为每个 Kubernetes 命名空间创建一个单独的逻辑网络。
  • 将 Kubernetes pod 连接到逻辑网络,并分配 IP 和 MAC 地址。
  • 支持网络地址转换 (NAT) 并为每个 Kubernetes 命名空间分配一个单独的 SNAT IP。
    注: 配置 NAT 时,转换后 IP 的总数不能超过 1000。
  • 使用 NSX 分布式防火墙实现 Kubernetes 网络策略。
    • 支持输入和输出网络策略。
    • 支持网络策略中的 IPBlock 选择器。
    • 为网络策略指定标签选择器时,支持 matchLabelsmatchExpression
    • 支持在其他命名空间中选择 pod。
  • 实现 ClusterIP 类型的 Kubernetes 服务和 LoadBalancer 类型的服务。
  • 使用 NSX 第 7 层负载均衡器实现 Kubernetes Ingress。
    • 通过 TLS Edge 终止支持 HTTP Ingress 和 HTTPS Ingress。
    • 支持 Ingress 默认后端配置。
    • 支持重定向到 HTTPS、路径重写和路径模式匹配。
  • NSX 逻辑交换机端口上为命名空间、pod 名称和 pod 标签创建标记,并允许管理员根据标记定义 NSX 安全组和策略。
  • 同一个命名空间中的 pod 之间支持多播,但在不同命名空间中的 pod 之间不支持多播。

NCP 支持单个 Kubernetes 集群。您可以具有使用相同 NSX 部署的多个 Kubernetes 集群,每个集群均有不同的 NCP 实例。