NSX-T Container Plug-in (NCP) 是作为 Docker 映像提供的。应在节点上运行 NCP 以提供基础架构服务。不建议在主节点上运行 NCP。

过程

  1. 下载 NCP Docker 映像。

    文件名是 nsx-ncp-xxxxxxx.tar,其中 xxxxxxx 是内部版本号。

  2. 下载 NCP ReplicationController yaml 模板。

    文件名是 ncp-rc.yml。您可以编辑该文件,或者将其作为您自己的模板文件的示例。

  3. 将 NCP Docker 映像加载到您的映像注册表中。
        docker load -i <tar file>
  4. 编辑 ncp-rc.yml

    将节点类型设置为裸机。

    [coe]
    node_type = ‘BAREMETAL’

    将映像名称更改为加载的映像。

    指定 nsx_api_managers 参数。该版本支持单个 Kubernetes 节点群集和单个 NSX Manager 实例。例如:

        nsx_api_managers = 192.168.1.180

    (可选)在 [nsx_v3] 部分中指定 ca_file 参数。该值应该是在验证 NSX Manager 服务器证书时使用的 CA 包文件。如果未设置,将使用系统根 CA。

    指定 nsx_api_cert_filensx_api_private_key_file 参数以使用 NSX-T Data Center 进行身份验证。

    nsx_api_cert_file 是 PEM 格式的客户端证书文件的完整路径。该文件的内容应如下所示:

        -----BEGIN CERTIFICATE-----
        <certificate_data_base64_encoded>
        -----END CERTIFICATE-----

    nsx_api_private_key_file 是 PEM 格式的客户端私钥文件的完整路径。该文件的内容应如下所示:

        -----BEGIN PRIVATE KEY-----
        <private_key_data_base64_encoded>
        -----END PRIVATE KEY-----

    如果 Ingress 控制器配置为在 NAT 模式下运行,请指定 ingress_mode = nat 参数。

    默认情况下,子网前缀 24 用于从 pod 逻辑交换机的 IP 块中分配的所有子网。要使用不同的子网大小,请在 [nsx_v3] 部分中更新 subnet_prefix 选项。

    注:

    在该 yaml 文件中,您必须指定为 ncp.ini 生成的 ConfigMap 应挂载为只读卷。下载的 yaml 文件已具有该规范,不应对其进行更改。

  5. 创建 NCP ReplicationController。
        kubectl create -f ncp-rc.yml

结果

注:

NCP 打开与 Kubernetes API 服务器的持续 HTTP 连接,以监视 Kubernetes 资源的生命周期事件。如果 API 服务器故障或网络故障导致 NCP 的 TCP 连接失效,则必须重新启动 NCP,以便其可以重新建立与 API 服务器的连接。否则,NCP 将错过新事件。

在滚动更新 NCP ReplicationController 期间,请勿重新引导容器主机。如果主机因任何原因重新引导,您可能会看到重新引导后运行两个 NCP pod。在这种情况下,请执行以下操作:

  • 删除其中一个 NCP pod。具体删除哪一个无关紧要。例如,

    oc delete pods <NCP pod name> -n nsx-system
  • 删除命名空间 nsx-system。例如,

    oc delete -f ncp-rc.yml -n nsx-system