RDG for NVIDIA Network Accelerated Red Hat OpenShift Container Platform over VMware vSphere

创建于2022年8月14日。本参考部署指南(RDG)演示了在VMware vSphere 7.0.3集群上,使用NVIDIA加速的端到端25/100 Gb/s以太网解决方案,部署和配置Red Hat OpenShift Container Platform (OCP) 4.10.18集群的过程。该设置能够运行基于RDMA和DPDK的应用。VMware的vSAN over RDMA将用作Red Hat OpenShift Container Platform工作负载的共享存储。

文档目录

创建于2022年8月14日

范围

以下参考部署指南RDG)演示了使用NVIDIA加速网络部署和配置Red Hat OpenShift Container Platform (OCP) 4.10.18集群的过程。部署在单个VMware vSphere 7.0.3集群上,基于NVIDIA®加速的端到端25/100 Gb/s以太网解决方案。该设置能够运行基于RDMA和DPDK的应用。VMware的vSAN over RDMA将用作Red Hat OpenShift Container Platform工作负载的共享存储。

缩写和首字母缩略词

术语 定义 术语 定义
DAC 直接连接电缆 RDMA 远程直接内存访问
DHCP 动态主机配置协议 RoCE 融合以太网上的RDMA
DPDK 数据平面开发套件 SDN 软件定义网络
CNI 容器网络接口 SDS 软件定义存储
IB InfiniBand SR-IOV 单根输入/输出虚拟化
NFD 节点特性发现操作器 VDS vSphere分布式交换机
NOS 网络操作系统 VF 虚拟功能
OCP Red Hat® OpenShift Container Platform® VM 虚拟机

引言

在VMware vSphere环境中配置Red Hat OCP集群以运行基于RDMA和DPDK的工作负载可能具有挑战性。正确的设计、软件和硬件组件选择可能是成功部署的关键任务。

本指南提供了使用OCP Assisted Installer 在单个vSphere集群上部署Red Hat OCP集群的逐步说明,包括技术概述、设计、组件选择和部署步骤。Assisted InstallerRed Hat Hybrid Cloud Console上提供的用户友好型安装解决方案。Assisted Installer专注于裸机和vSphere基础设施。

VMware的vSANoRDMA现已完全合格,并自ESXi 7.0 U2版本起可用,已准备好部署。

在本文档中,我们将使用NVIDIA Network Operator,它负责以Host Device Network模式部署和配置。这允许在OCP集群工作节点上运行RDMA和DPDK工作负载。

参考资料

解决方案架构

关键组件和技术

  • NVIDIA Spectrum以太网交换机

    灵活的外形,16到128个物理端口,支持1GbE到400GbE速度。

    基于突破性的硅技术,针对性能和可扩展性进行了优化,NVIDIA Spectrum交换机非常适合构建高性能、高性价比、高效的云数据中心网络、以太网存储结构和深度学习互连。

    NVIDIA将基于行业领先的专用集成电路(ASIC)技术的NVIDIA Spectrum™交换机的优势与多种现代网络操作系统选择相结合,包括NVIDIA Cumulus® LinuxSONiCNVIDIA Onyx®

  • NVIDIA Cumulus Linux

    NVIDIA® Cumulus® Linux是业界最具创新性的开放网络操作系统,允许您像其他系统一样自动化、定制和扩展数据中心网络。

  • NVIDIA ConnectX智能网卡

    10/25/40/50/100/200和400G以太网网卡

    业界领先的NVIDIA® ConnectX®系列智能网卡提供先进的硬件卸载和加速。

    NVIDIA以太网网卡为超大规模、公有和私有云、存储、机器学习、AI、大数据和电信平台提供最高的ROI和最低的总拥有成本。

  • NVIDIA LinkX线缆

    NVIDIA® LinkX®线缆和收发器产品系列提供业界最完整的10、25、40、50、100、200和400GbE以太网以及100、200和400Gb/s InfiniBand产品线,适用于云、HPC、超大规模、企业、电信、存储和人工智能数据中心应用。

RDMA是一种允许网络中的计算机在不涉及处理器、缓存或操作系统的情况下交换数据的技术。与本地DMA类似,RDMA提高了吞吐量和性能,并释放了计算资源。

RDMA over Converged Ethernet(RoCE)或InfiniBand over Ethernet(IBoE)是一种网络协议,允许通过以太网网络进行远程直接内存访问(RDMA)。它通过将InfiniBand(IB)传输数据包封装在以太网上实现。

Red Hat® OpenShift Container Platform®是一个企业级Kubernetes容器平台,专为开放的混合云策略构建。它提供了一个一致的应用程序平台来管理混合云、多云和边缘部署。

NVIDIA Network Operator简化了Kubernetes集群中NVIDIA网络资源的配置和管理。该操作符自动安装所需的主机网络软件,汇集所有必要组件以提供高速网络连接。这些组件包括NVIDIA网络驱动程序、Kubernetes设备插件、CNI插件、IP地址管理(IPAM)插件等。NVIDIA Network Operator与NVIDIA GPU Operator协同工作,为可扩展的GPU计算集群提供高吞吐量、低延迟的网络。

Logical Design

所述设置使用一个vSphere集群,包含4台ESXi服务器,连接到两台NVIDIA® Spectrum® SN2010以太网交换机(管理、入口和出口流量)和一台NVIDIA® Spectrum® SN2100以太网交换机(高速vSAN、RDMA和DPDK流量)。

vCenter、基础架构节点和路由器虚拟机将放置在同一集群中。

警告: 对于生产设计,建议将vCenter、基础架构节点和路由器虚拟机放置在单独的管理集群中。此建议适用于VMware Validated Design(VVD)和基于VVD的VMware Cloud Foundation(VCF)。

image2022-8-22_18-11-4.png

Network Design

集群网络配置了以下网络:

  • 企业(管理)网络(VLAN 1610 - 192.168.1.x/24) 负责ESXi VMkernel管理接口、vCenter和其他管理虚拟机之间的连接。

    警告: 需要DHCP和DNS服务。本指南不涵盖组件的安装和配置。

  • vMotion网络(VLAN 1611 – 192.168.11.0/24) ESXi vMotion VMkernel接口将位于此网络。

  • OCP网络(VLAN 1677 - 192.168.77.0/24) – OpenShift管理网络。

  • vSAN网络(VLAN 1630 – 192.168.30.0/24) ESXi vSAN VMkernel接口将位于此网络。

  • RDMA网络(VLAN 1631 – 192.168.3.0/24) ESXi vSAN VMkernel接口将位于此网络。

vSphere Distributed 交换机 Design

image2022-8-30_14-27-43.png

OCP的互联网访问

在本指南中,OCP集群部署在非Air Gap环境中,需要互联网访问。

OpenShift Container Platform Networking

image2022-10-26_21-9-4.png

Software Stack Components

本指南假定已安装以下软件和驱动程序:

  • VMware ESXi 7.0.3,构建版本17630552
  • VMware vCenter 7.0.3,构建版本17694817
  • Distributed Switch 7.0.3
  • RedHat OCP 4.10.18
  • NVIDIA® ConnectX® Driver for VMware ESXi Server v4.21.71.101
  • NVIDIA® ConnectX®-6DX FW版本22.32.2004
  • NVIDIA® ConnectX®-6LX FW版本26.32.1010
  • 网络操作系统(NOS):NVIDIA Cumulus™ v5.1

Bill of Materials

本指南中vSphere环境使用的硬件设置如下:

BoM v1.0.png

集群计算/存储:

VM CPU MEM DISK
Compute Cluster vCenter (基于小型) 4 20GB 48GB
Infra Node 2 4GB 50GB
Control Node x 3 8 32GB 120GB
Worker Node x 3 8 32GB 120GB

Deployment and Configuration

警告: 以下主题不在本指南范围内。

本文档范围:

  • ESXi安装
  • vCenter安装
  • 虚拟数据中心配置
  • vSphere集群配置
  • 将ESXi主机添加到集群

实验室环境示例:

image2022-2-13_22-0-5.png

Wiring

本文档涵盖高可用性VMware vSphere集群部署。

image2022-8-30_10-29-39.png

Network/Fabric

Prerequisites

Hosts Network Configuration

下表提供了ESXi服务器、交换机名称及其网络配置的详细信息。

Server Server Name IP and NICs
High-Speed Ethernet Network Management Network
ESXi-01 sl01w01esx11 vmk1: 192.168.11.111 (vMotion)vmk2: 192.168.130.111 (vSAN) vmk0: 192.168.1.111From Corporate DHCP (reserved)
ESXi-02 sl01w01esx12 vmk1: 192.168.11.112 (vMotion)vmk2: 192.168.130.112 (vSAN) vmk0: 192.168.1.112From Corporate DHCP (reserved)
ESXi-03 sl01w01esx13 vmk1: 192.168.11.113(vMotion)vmk2: 192.168.130.113 (vSAN) vmk0: 192.168.1.113From Corporate DHCP (reserved)
ESXi-04 sl01w01esx14 vmk1: 192.168.11.114(vMotion)vmk2: 192.168.130.114 (vSAN) vmk0: 192.168.1.114From Corporate DHCP (reserved)
Leaf-01 clx-swx-033 - 192.168.1.233
Leaf-02 clx-swx-034 - 192.168.1.234
Higt-Speed-01 clx-swx-035 - 192.168.1.235
vCenter (VM) sl01w01vc01 - 192.168.1.25From Corporate DHCP (reserved)
Infra Node (VM) sl01w01depl - 192.168.77.201
Router Node (VM) sl01w01pfsense - WAN - 192.168.1.202LAN - 192.168.77.254
Control Node 01 (VM) control01 - 192.168.77.11From Infra Node DHCP (reserved)
Control Node 01 (VM) control02 - 192.168.77.12From Infra Node DHCP (reserved)
Control Node 01 (VM) control03 - 192.168.77.13From Infra Node DHCP (reserved)
Worker Node 01 (VM) worker01 - 192.168.77.21From Infra Node DHCP (reserved)
Worker Node 02 (VM) worker02 - 192.168.77.22From Infra Node DHCP (reserved)
Worker Node 03 (VM) worker03 - 192.168.77.23From Infra Node DHCP (reserved)

Network Switch Configuration

ESXi to Leaf Connection

交换机01.png

Port Channel and VLAN Configuration

Supervisor Cluster中的两个Leaf NVIDIA SN2010交换机上运行以下命令,以配置端口通道和VLAN。

Leaf-01交换机配置示例(名为clx-swx-033):

Switch console
cumulus@clx-swx-033:mgmt:~$sudo nv set system hostname clx-swx-033
cumulus@clx-swx-033:mgmt:~$sudo nv set interface lo ip address 10.10.10.1/32
cumulus@clx-swx-033:mgmt:~$sudo nv set interface swp1-22 type swp
cumulus@clx-swx-033:mgmt:~$sudo nv set interface swp1-4 bridge domain br_default
cumulus@clx-swx-033:mgmt:~$sudo nv set bridge domain br_default vlan 1610
cumulus@clx-swx-033:mgmt:~$sudo nv set bridge domain br_default vlan 1611
cumulus@clx-swx-033:mgmt:~$sudo nv set bridge domain br_default vlan 1677
cumulus@clx-swx-033:mgmt:~$sudo nv set vrf default router static 0.0.0.0/0 address-family ipv4-unicast
cumulus@clx-swx-033:mgmt:~$sudo nv set interface peerlink bond member swp21-22
cumulus@clx-swx-033:mgmt:~$sudo nv set mlag mac-address 44:38:39:BE:EF:AA
cumulus@clx-swx-033:mgmt:~$sudo nv set mlag backup 10.10.10.2
cumulus@clx-swx-033:mgmt:~$sudo nv set mlag peer-ip linklocal
cumulus@clx-swx-033:mgmt:~$sudo nv config apply
cumulus@clx-swx-033:mgmt:~$sudo nv config save

Leaf-02 交换机配置示例(命名为 clx-swx-034):

Switch console

cumulus@clx-swx-034:mgmt:~$sudo nv set system hostname clx-swx-034
cumulus@clx-swx-034:mgmt:~$sudo nv set interface lo ip address 10.10.10.2/32
cumulus@clx-swx-034:mgmt:~$sudo nv set interface swp1-22 type swp
cumulus@clx-swx-034:mgmt:~$sudo nv set interface swp1-4 bridge domain br_default
cumulus@clx-swx-034:mgmt:~$sudo nv set bridge domain br_default vlan 1610
cumulus@clx-swx-034:mgmt:~$sudo nv set bridge domain br_default vlan 1611
cumulus@clx-swx-034:mgmt:~$sudo nv set bridge domain br_default vlan 1677
cumulus@clx-swx-034:mgmt:~$sudo nv set vrf default router static 0.0.0.0/0 address-family ipv4-unicast
cumulus@clx-swx-034:mgmt:~$sudo nv set interface peerlink bond member swp21-22
cumulus@clx-swx-034:mgmt:~$sudo nv set mlag mac-address 44:38:39:BE:EF:AA
cumulus@clx-swx-034:mgmt:~$sudo nv set mlag backup 10.10.10.1
cumulus@clx-swx-034:mgmt:~$sudo nv set mlag peer-ip linklocal
cumulus@clx-swx-034:mgmt:~$sudo nv config apply
cumulus@clx-swx-034:mgmt:~$sudo nv config save

高速 NVIDIA SN2100 交换机上的端口通道和 VLAN 配置

vSphere 集群 中的高速交换机上运行以下命令以配置端口通道和 VLAN。

高速交换机 Higt-Speed-01(clx-swx-035)示例:

Switch console

cumulus@clx-swx-035:mgmt:~$sudo nv set system hostname clx-swx-035
cumulus@clx-swx-035:mgmt:~$sudo nv set interface swp1-16 type swp
cumulus@clx-swx-035:mgmt:~$sudo nv set interface swp1-16 bridge domain br_default
cumulus@clx-swx-035:mgmt:~$sudo nv set bridge domain br_default vlan 1630
cumulus@clx-swx-035:mgmt:~$sudo nv set bridge domain br_default vlan 1631
cumulus@clx-swx-035:mgmt:~$sudo nv set qos roce enable on
cumulus@clx-swx-035:mgmt:~$sudo nv config apply
cumulus@clx-swx-035:mgmt:~$sudo nv config save

在高速 SN2100 交换机上启用 RDMA over Converged Ethernet 无损(带 PFC 和 ETS)

RoCE 传输用于加速 vSAN 网络。为获得最佳结果,网络配置为无损

在高速交换机上运行以下命令以配置无损网络(适用于 NVIDIA Cumulus):

Switch console

cumulus@clx-swx-035:mgmt:~$sudo nv set qos roce enable on
cumulus@clx-swx-035:mgmt:~$sudo nv config apply
cumulus@clx-swx-035:mgmt:~$sudo nv config save

要检查 RoCE 配置,请运行以下命令:

cumulus@leaf-01:mgmt:~$sudo nv show qos roce

                    operational  applied   description
------------------  -----------  --------  ------------------------------------------------------
enable                           on        Turn the feature 'on' or 'off'.  The default is 'off'.
mode                lossless     lossless  Roce Mode
cable-length        100          100       Cable Length(in meters) for Roce Lossless Config
congestion-control
  congestion-mode   ECN                    Congestion config mode
  enabled-tc        0,3                    Congestion config enabled Traffic Class
  max-threshold     1.43 MB                Congestion config max-threshold
  min-threshold     146.48 KB              Congestion config min-threshold
pfc
  pfc-priority      3                      switch-prio on which PFC is enabled
  rx-enabled        enabled                PFC Rx Enabled status
  tx-enabled        enabled                PFC Tx Enabled status
trust
  trust-mode        pcp,dscp               Trust Setting on the port for packet classification

RoCE PCP/DSCP->SP mapping configurations
===========================================
        pcp  dscp                     switch-prio
    --  ---  -----------------------  -----------
    0   0    0,1,2,3,4,5,6,7          0
    1   1    8,9,10,11,12,13,14,15    1
    2   2    16,17,18,19,20,21,22,23  2
    3   3    24,25,26,27,28,29,30,31  3
    4   4    32,33,34,35,36,37,38,39  4
    5   5    40,41,42,43,44,45,46,47  5
    6   6    48,49,50,51,52,53,54,55  6
    7   7    56,57,58,59,60,61,62,63  7

RoCE SP->TC mapping and ETS configurations
=============================================
        switch-prio  traffic-class  scheduler-weight
    --  -----------  -------------  ----------------
    0   0            0              DWRR-50%
    1   1            0              DWRR-50%
    2   2            0              DWRR-50%
    3   3            3              DWRR-50%
    4   4            0              DWRR-50%
    5   5            0              DWRR-50%
    6   6            6              strict-priority
    7   7            0              DWRR-50%

RoCE pool config
===================
        name                   mode     size   switch-priorities  traffic-class
    --  ---------------------  -------  -----  -----------------  -------------
    0   lossy-default-ingress  Dynamic  50.0%  0,1,2,4,5,6,7      -
    1   roce-reserved-ingress  Dynamic  50.0%  3                  -
    2   lossy-default-egress   Dynamic  50.0%  -                  0,6
    3   roce-reserved-egress   Dynamic  inf    -                  3

Exception List
=================
        description

ESXi 主机和 vSphere 集群配置

前提条件

  • 主机 BIOS

    确认使用的是支持 SR-IOV 的服务器平台,并查阅服务器平台供应商文档中的 BIOS 设置,以在 BIOS 中启用 SR-IOV

    确认在 BIOS 中启用了 VT-d/IOMMU。

  • 物理服务器配置

    所有 ESXi 服务器的网卡 PCIe 插槽位置必须相同,并暴露相同的接口名称。

  • Kubernetes/OpenShift 经验

    熟悉 Kubernetes 集群架构至关重要。

  • 权限

    确认您拥有读取和创建所需资源的账户权限。使用具有全局管理权限的账户是获取所有必要权限的最简单方法。有关更多信息,请参阅 Chapter 20. Installing on vSphere OpenShift Container Platform Container Platform 4.10 | Red Hat Customer Portal

  • 确认 NTP 已在您的环境中正确配置并正常工作。

NTP on ESXi.PNG

NTP on vCenter.PNG

  • 创建并配置 2 个 VMware VDS,使用以下文档:How-to: Configure a vSphere Distributed Switch with NVIDIA network fabric.

    环境中将使用两个 VDS:

    • SL-WL01-DS01,包含以下端口组:

      • SL-WL01-MGMT-VLAN1610-DPG
      • SL-WL01-vMotion-VLAN611-DPG
      • SL-WL01-OCP-VLAN1677-DPG
    • SL-WL01-DS02,包含以下端口组:

      • SL-WL01-vSAN-VLAN1630-DPG
      • SL-WL01-RDMA-VLAN1631-DPG
  • 示例: VDSs creating.PNG

  • 创建并配置 VMware vSAN RDMA集群,使用以下文档 - RDG: VMware vSAN over RoCE on VMware vSphere 7.0 U3.

  • 在ESXi主机上启用SR-IOV NVIDIA Network Operator利用Kubernetes CRD和Operator SDK管理网络相关组件,为OCP集群中的工作负载启用快速网络和RDMA。快速网络是K8s集群的辅助网络,适用于需要高带宽或低延迟的应用程序。 在OCP集群中,可以使用Dynamic DirectPath I/O将多个PCI直通或SR-IOV设备分配给Kubernetes工作负载VM。 为此,需要在ConnectX-6 Dx网卡上启用SR-IOV功能。 启用SR-IOV的步骤:

    1. 启动 vSphere Web Client,并连接到vCenter Server实例。
    2. 导航到ESXi主机,选择 ConfigureHardwarePCI Devices。点击 ALL PCI DEVICES。点击 FilterSR-IOV Enable 01.PNG
    3. 输入 Mellanox 并点击 Vendor NameSR-IOV Enable 02.PNG
    4. 选择 ConnectX-6 Dx NICSR-IOV Enable 03.PNG
    5. 点击 CONFIGURE SR-IOVSR-IOV Enable 04.PNG
    6. 启用 SR-IOV,并设置 虚拟功能(VF) 的数量。点击 OKSR-IOV Enable 05.PNG
    7. 点击 PASSTHROUGH-ENABLED DEVICES 以验证已启用 8个VFSR-IOV Enable 06.PNG
  • 为3个控制节点和3个工作节点OpenShift集群创建6个VM,配置如下: VM configuration01.PNG自定义硬件 选项卡中,点击 VM OptionsAdvanced

    • 点击 Boot Options。将 Boot Delay 设置为 9999 毫秒。 Control VM configuration01a.PNG
    • 向下滚动并点击 Edit Configuration。在配置参数窗口中,点击 Add Configuration Params。定义以下参数名称和值:
      • disk.EnableUUID:指定 TRUEWorker VM configuration01e.PNG Worker VM configuration05a.PNG 点击 OK 两次以完成 控制VM 的配置。 对于 工作节点VM,点击 OK。返回虚拟硬件选项卡,通过点击 ADD NEW DEVICE 并选择 网卡 添加额外的SR-IOV网卡。 Worker VM configuration02.PNGNew Network 上点击 Browse... Worker VM configuration03.PNG 选择一个 RDMA网络 端口组。点击 OKWorker VM configuration04.PNG 打开 New Network 并选择 Adapter TypeSR-IOV passthroughPhysical Function(例如,之前配置了VF的 vmnic4)。点击 OKWorker VM configuration05.PNG Worker VM configuration06.PNG

OCP集群安装

基础设施节点先决条件

OCP安装需要DHCP和DNS服务。本例中,使用基础设施节点运行这些服务。 OCP管理网络上的DHCP服务需要额外的ntp-servers配置。

警告: 本指南不涵盖组件的安装和配置。 更多信息,请参见 Networking requirements for user-provisioned infrastructure

OCP

集群安装需要两个VIP地址:

  • API 地址用于访问集群API。
  • Ingress 地址用于集群入口流量。

安装OCP集群时,必须将这些IP地址提供给安装程序。 在我们的环境中,我们使用以下IP和DNS记录:

组件 IP 记录 描述
Kubernetes API 192.168.77.210 api.ocp4.vwd.clx 用于标识API负载均衡器的DNS A/AAAA或CNAME记录以及DNS PTR记录。这些记录必须能被集群外部客户端和集群内所有节点解析。
Ingress 192.168.77.211 *.apps.ocp4.vwd.clx 指向应用程序入口负载均衡器的通配符DNS A/AAAA或CNAME记录。应用程序入口负载均衡器以运行Ingress Controller POD的机器为目标。默认情况下,Ingress Controller POD在计算节点上运行。这些记录必须能被集群外部客户端和集群内所有节点解析。例如,console-openshift-console.apps.ocp4.vwd.clx用作OCP控制台的通配符路由。
control01 192.168.77.11 control01.ocp4.vwd.clx 用于标识控制平面节点每台机器的DNS A/AAAA或CNAME记录和DNS PTR记录。这些记录必须能被集群内节点解析。
control02 192.168.77.12 control02.ocp4.vwd.clx 用于标识控制平面节点每台机器的DNS A/AAAA或CNAME记录和DNS PTR记录。这些记录必须能被集群内节点解析。
control03 192.168.77.13 control03.ocp4.vwd.clx 用于标识控制平面节点每台机器的DNS A/AAAA或CNAME记录和DNS PTR记录。这些记录必须能被集群内节点解析。
worker01 192.168.77.21 worker01.ocp4.vwd.clx 用于标识工作节点每台机器的DNS A/AAAA或CNAME记录和DNS PTR记录。这些记录必须能被集群内节点解析。
worker02 192.168.77.22 worker02.ocp4.vwd.clx 用于标识工作节点每台机器的DNS A/AAAA或CNAME记录和DNS PTR记录。这些记录必须能被集群内节点解析。
worker03 192.168.77.23 worker03.ocp4.vwd.clx 用于标识工作节点每台机器的DNS A/AAAA或CNAME记录和DNS PTR记录。这些记录必须能被集群内节点解析。

生成SSH公钥

要生成密钥,请在基础设施节点上运行以下命令:

基础设施节点控制台
# ssh-keygen

Public key gen.PNG

OCP集群部署

您可以通过Assisted Installer、安装程序置备或用户置备的基础架构在vSphere上安装OpenShift Container Platform。

本文档描述了使用Assisted Installer在vSphere上安装OCP虚拟机。

按照本节中的步骤在vSphere上安装OpenShift。

  1. 基础设施节点(本例中使用带UI的AlmaLinux)上打开Web浏览器,连接到Red Hat Hybrid Cloud网站并使用您的凭据登录控制台。

    OCP Assisted Install 01.PNG

    OCP Assisted Install 03.PNG

  2. 使用左侧菜单栏,选择OpenShift

    OCP Assisted Install 04.PNG

  3. 点击创建集群

    OCP Assisted Install 05.PNG

  4. 选择数据中心并向下滚动窗口。

    OCP Assisted Install 06.PNG

  5. 选择vSphere

    OCP Assisted Install 07.PNG

  6. 选择Assisted Installer安装类型。

    OCP Assisted Install 08.PNG

  7. 在打开的集群详细信息窗口中,提供集群名称基础域名。从下拉列表中选择要安装的OpenShift版本,然后点击下一步

#545454">示例:

OCP Assisted Install 30.PNG

  1. 复制文件到Infra Node上的/root/.kube/config文件。

    Infra Node Console

    [root@sl01lw01depl ~]# cp kubeconfig /root/.kube/config
    [root@sl01lw01depl ~]# export KUBECONFIG=/root/.kube/config
    
  2. 使用以下提供的信息连接到已安装的集群:

    OCP Assisted Install 31.PNG

要验证OCP集群是否正确安装,打开Infra Node控制台,并使用提供的Web Console URLUsernamePassword打开Web浏览器。

OCP Assisted Install 32.PNG

确保集群状态正常。

OCP Assisted Install 33.PNG

使用左侧菜单栏,展开Compute部分并选择Nodes状态。

OCP Assisted Install 34.PNG

点击每个节点以查看该节点上的所有POD是否正常运行且无错误。

OCP Assisted Install 35.PNG

OCP Assisted Install 36.PNG

OCP Assisted Install 37.PNG

OCP Assisted Install 38.PNG

要从ssh控制台检查集群状态:

转到Infra Nodessh控制台,运行以下命令查看节点状态

Infra Node Console

[root@sl01lw01depl ocp4-helpernode]# oc get nodes -o wide
NAME                     STATUS   ROLES    AGE   VERSION           INTERNAL-IP     EXTERNAL-IP   OS-IMAGE                                                        KERNEL-VERSION                 CONTAINER-RUNTIME
control01.ocp4.vwd.clx   Ready    master   2d    v1.23.5+3afdacb   192.168.77.11   <none>        Red Hat Enterprise Linux CoreOS 410.84.202206080346-0 (Ootpa)   4.18.0-305.49.1.el8_4.x86_64   cri-o://1.23.3-3.rhaos4.10.git5fe1720.el8
control02.ocp4.vwd.clx   Ready    master   2d    v1.23.5+3afdacb   192.168.77.12   <none>        Red Hat Enterprise Linux CoreOS 410.84.202206080346-0 (Ootpa)   4.18.0-305.49.1.el8_4.x86_64   cri-o://1.23.3-3.rhaos4.10.git5fe1720.el8
control03.ocp4.vwd.clx   Ready    master   2d    v1.23.5+3afdacb   192.168.77.13   <none>        Red Hat Enterprise Linux CoreOS 410.84.202206080346-0 (Ootpa)   4.18.0-305.49.1.el8_4.x86_64   cri-o://1.23.3-3.rhaos4.10.git5fe1720.el8
worker01.ocp4.vwd.clx    Ready    worker   2d    v1.23.5+3afdacb   192.168.77.21   <none>        Red Hat Enterprise Linux CoreOS 410.84.202206080346-0 (Ootpa)   4.18.0-305.49.1.el8_4.x86_64   cri-o://1.23.3-3.rhaos4.10.git5fe1720.el8
worker02.ocp4.vwd.clx    Ready    worker   2d    v1.23.5+3afdacb   192.168.77.22   <none>        Red Hat Enterprise Linux CoreOS 410.84.202206080346-0 (Ootpa)   4.18.0-305.49.1.el8_4.x86_64   cri-o://1.23.3-3.rhaos4.10.git5fe1720.el8
worker03.ocp4.vwd.clx    Ready    worker   2d    v1.23.5+3afdacb   192.168.77.23   <none>        Red Hat Enterprise Linux CoreOS 410.84.202206080346-0 (Ootpa)   4.18.0-305.49.1.el8_4.x86_64   cri-o://1.23.3-3.rhaos4.10.git5fe1720.el8

要查看所有正在运行的集群操作器状态,运行以下命令:

Infra Node Console

[root@sl01lw01depl ocp4-helpernode]# oc get clusteroperators
NAME                                       VERSION   AVAILABLE   PROGRESSING   DEGRADED   SINCE   MESSAGE
authentication                             4.10.18   True        False         False      135m
baremetal                                  4.10.18   True        False         False      2d
cloud-controller-manager                   4.10.18   True        False         False      2d
cloud-credential                           4.10.18   True        False         False      2d
cluster-autoscaler                         4.10.18   True        False         False      2d
config-operator                            4.10.18   True        False         False      2d
console                                    4.10.18   True        False         False      2d
csi-snapshot-controller                    4.10.18   True        False         False      2d
dns                                        4.10.18   True        False         False      2d
etcd                                       4.10.18   True        False         False      2d
image-registry                             4.10.18   True        False         False      2d
ingress                                    4.10.18   True        False         False      2d
insights                                   4.10.18   True        False         False      2d
kube-apiserver                             4.10.18   True        False         False      2d
kube-controller-manager                    4.10.18   True        False         False      2d
kube-scheduler                             4.10.18   True        False         False      2d
kube-storage-version-migrator              4.10.18   True        False         False      2d
machine-api                                4.10.18   True        False         False      2d
machine-approver                           4.10.18   True        False         False      2d
machine-config                             4.10.18   True        False         False      2d
marketplace                                4.10.18   True        False         False      2d
monitoring                                 4.10.18   True        False         False      2d
network                                    4.10.18   True        False         False      2d
node-tuning                                4.10.18   True        False         False      2d
openshift-apiserver                        4.10.18   True        False         False      2d
openshift-controller-manager               4.10.18   True        False         False      24h
openshift-samples                          4.10.18   True        False         False      2d
operator-lifecycle-manager                 4.10.18   True        False         False      2d
operator-lifecycle-manager-catalog         4.10.18   True        False         False      2d
operator-lifecycle-manager-packageserver   4.10.18   True        False         False      2d
service-ca                                 4.10.18   True        False         False      2d
storage                                    4.10.18   True        False         False      2d

要查看所有正在运行的POD状态,运行以下命令:

[root@sl01lw01depl ocp4-helpernode]# oc get pod --all-namespaces
NAMESPACE                                          NAME                                                         READY   STATUS      RESTARTS     AGE
assisted-installer

assisted-installer-controller-5zh8w 0/1 Completed 0 2d openshift-apiserver-operator openshift-apiserver-operator-6756c64b88-njtk8 1/1 Running 2 (2d ago) 2d openshift-apiserver apiserver-7c48bcb965-6cqp5 2/2 Running 0 2d openshift-apiserver apiserver-7c48bcb965-mg7t5 2/2 Running 0 2d openshift-apiserver apiserver-7c48bcb965-rvt8j 2/2 Running 0 2d openshift-authentication-operator authentication-operator-6ddbbdbf46-w5n2w 1/1 Running 2 (2d ago) 2d openshift-authentication oauth-openshift-6c775fd8f6-6cxxd 1/1 Running 0 2d openshift-authentication oauth-openshift-6c775fd8f6-k6nxq 1/1 Running 0 2d openshift-authentication oauth-openshift-6c775fd8f6-pd4cm 1/1 Running 0 2d openshift-cloud-controller-manager-operator cluster-cloud-controller-manager-operator-7db699cb4f-wdh7d 2/2 Running 4 (2d ago) 2d openshift-cloud-credential-operator cloud-credential-operator-67f75477db-mczvd 2/2 Running 0 2d openshift-cluster-machine-approver machine-approver-697c6c67f-6thpm 2/2 Running 2 (2d ago) 2d openshift-cluster-node-tuning-operator cluster-node-tuning-operator-59cdb46c9-s82qc 1/1 Running 1 (2d ago) 2d openshift-cluster-node-tuning-operator tuned-92q5b 1/1 Running 0 2d openshift-cluster-node-tuning-operator tuned-jsgls 1/1 Running 0 2d openshift-cluster-node-tuning-operator tuned-lg5rc 1/1 Running 0 2d openshift-cluster-node-tuning-operator tuned-nvrg6 1/1 Running 0 2d openshift-cluster-node-tuning-operator tuned-pf6fh 1/1 Running 0 2d openshift-cluster-node-tuning-operator tuned-wz9s6 1/1 Running 0 2d openshift-cluster-samples-operator cluster-samples-operator-b6fc87b94-hslfp 2/2 Running 0 2d openshift-cluster-storage-operator cluster-storage-operator-7857f978b8-6q6jt 1/1 Running 1 (2d ago) 2d openshift-cluster-storage-operator csi-snapshot-controller-5b97674c78-m7s9b 1/1 Running 0 2d openshift-cluster-storage-operator csi-snapshot-controller-5b97674c78-n9ffn 1/1 Running 1 (2d ago) 2d openshift-cluster-storage-operator csi-snapshot-controller-operator-856bb56b5d-zj2gx 1/1 Running 1 (2d ago) 2d openshift-cluster-storage-operator csi-snapshot-webhook-7f447d57f7-4g8l4 1/1 Running 0 2d openshift-cluster-storage-operator csi-snapshot-webhook-7f447d57f7-xtldm 1/1 Running 0 2d openshift-cluster-version cluster-version-operator-688999f8cd-nm9xm 1/1 Running 0 2d openshift-config-operator openshift-config-operator-57c79476d7-r6nfq 1/1 Running 2 (2d ago) 2d openshift-console-operator console-operator-c74b55d67-m9g7w 1/1 Running 0 2d openshift-console console-5846db579c-6z5f5 1/1 Running 1 (2d ago) 2d openshift-console console-5846db579c-xczc5 1/1 Running 1 (2d ago) 2d openshift-console downloads-6cdbd64fbb-89dt4 1/1 Running 0 2d openshift-console downloads-6cdbd64fbb-8v942 1/1 Running 0 2d openshift-controller-manager-operator openshift-controller-manager-operator-b4c944d9f-r7x7w 1/1 Running 2 (2d ago) 2d openshift-controller-manager controller-manager-lwc2w 1/1 Running 0 24h openshift-controller-manager controller-manager-p62j5 1/1 Running 0 24h openshift-controller-manager controller-manager-x2qt9 1/1 Running 0 24h openshift-dns-operator dns-operator-5f65cf6746-g52zd 2/2 Running 0 2d openshift-dns dns-default-4l48f 2/2 Running 0 2d openshift-dns dns-default-8fdhq 2/2 Running 0 2d openshift-dns dns-default-gqd5h 2/2 Running 0 2d openshift-dns dns-default-j6bv5 2/2 Running 0 2d openshift-dns dns-default-lqbv4 2/2 Running 0 2d openshift-dns dns-default-nhdxz 2/2 Running 0 2d openshift-dns node-resolver-2p8cv 1/1 Running 0 2d openshift-dns node-resolver-5522q 1/1 Running 0 2d openshift-dns node-resolver-5gw9c 1/1 Running 0 2d openshift-dns node-resolver-7c2sf 1/1 Running 0 2d openshift-dns node-resolver-b68qq 1/1 Running 0 2d openshift-dns node-resolver-njm5b 1/1 Running 0 2d openshift-etcd-operator etcd-operator-6d6ff5499d-6fnts 1/1 Running 2 (2d ago) 2d openshift-etcd etcd-control01.ocp4.vwd.clx 4/4 Running 0 2d openshift-etcd etcd-control02.ocp4.vwd.clx 4/4 Running 0 2d openshift-etcd etcd-control03.ocp4.vwd.clx 4/4 Running 0 2d openshift-etcd etcd-quorum-guard-54c99fcc95-4dl45 1/1 Running 0 2d openshift-etcd etcd-quorum-guard-54c99fcc95-gsbjq 1/1 Running 0 2d openshift-etcd etcd-quorum-guard-54c99fcc95-zs8cw 1/1 Running 0 2d openshift-etcd installer-2-control02.ocp4.vwd.clx 0/1 Completed 0 2d openshift-etcd installer-3-retry-1-control01.ocp4.vwd.clx 0/1 Completed 0 2d openshift-etcd installer-5-control03.ocp4.vwd.clx 0/1 Completed 0 2d openshift-etcd installer-6-control01.ocp4.vwd.clx 0/1 Completed 0 2d openshift-etcd installer-6-control02.ocp4.vwd.clx 0/1 Completed 0 2d openshift-etcd installer-6-control03.ocp4.vwd.clx 0/1 Completed 0 2d openshift-etcd installer-7-control01.ocp4.vwd.clx 0/1 Completed 0 2d openshift-etcd installer-7-control02.ocp4.vwd.clx 0/1 Completed 0 2d openshift-etcd installer-7-control03.ocp4.vwd.clx 0/1 Completed 0 2d openshift-image-registry cluster-image-registry-operator-5959746b9-mw5x9 1/1 Running 1 (2d ago) 2d openshift-image-registry image-pruner-27688320-g48f6 0/1 Completed 0 38h openshift-image-registry image-pruner-27689760-kp96s 0/1 Completed 0 14h openshift-image-registry node-ca-7z6nj 1/1 Running 0 2d openshift-image-registry node-ca-9m8sx 1/1 Running 0 2d openshift-image-registry node-ca-jmq9w 1/1 Running 0 2d openshift-image-registry node-ca-sl87m 1/1 Running 0 2d openshift-image-registry node-ca-z7clg 1/1 Running 0 2d openshift-image-registry node-ca-zs99s 1/1 Running 0 2d openshift-ingress-canary ingress-canary-5r6qh 1/1 Running 0 2d openshift-ingress-canary ingress-canary-l8q6j 1/1 Running 0 2d openshift-ingress-canary ingress-canary-zpbcd 1/1 Running 0 2d openshift-ingress-operator ingress-operator-7899578f6-tvbzr 2/2 Running 4 (2d ago) 2d openshift-ingress router-default-547bcf454b-hn5gh 1/1 Running 0 2d openshift-ingress router-default-547bcf454b-z2lk9 1/1 Running 0 2d openshift-insights

insights-operator-7d4cc4cf88-vn9px 1/1 Running 1 (2d ago) 2d openshift-kni-infra coredns-control01.ocp4.vwd.clx 2/2 Running 0 2d openshift-kni-infra coredns-control02.ocp4.vwd.clx 2/2 Running 0 2d openshift-kni-infra coredns-control03.ocp4.vwd.clx 2/2 Running 0 2d openshift-kni-infra coredns-worker01.ocp4.vwd.clx 2/2 Running 0 2d openshift-kni-infra coredns-worker02.ocp4.vwd.clx 2/2 Running 0 2d openshift-kni-infra coredns-worker03.ocp4.vwd.clx 2/2 Running 0 2d openshift-kni-infra haproxy-control01.ocp4.vwd.clx 2/2 Running 0 2d openshift-kni-infra haproxy-control02.ocp4.vwd.clx 2/2 Running 0 2d openshift-kni-infra haproxy-control03.ocp4.vwd.clx 2/2 Running 0 2d openshift-kni-infra keepalived-control01.ocp4.vwd.clx 2/2 Running 0 2d openshift-kni-infra keepalived-control02.ocp4.vwd.clx 2/2 Running 0 2d openshift-kni-infra keepalived-control03.ocp4.vwd.clx 2/2 Running 0 2d openshift-kni-infra keepalived-worker01.ocp4.vwd.clx 2/2 Running 0 2d openshift-kni-infra keepalived-worker02.ocp4.vwd.clx 2/2 Running 0 2d openshift-kni-infra keepalived-worker03.ocp4.vwd.clx 2/2 Running 0 2d openshift-kube-apiserver-operator kube-apiserver-operator-5f76847f99-84k6k 1/1 Running 2 (2d ago) 2d openshift-kube-apiserver installer-10-control02.ocp4.vwd.clx 0/1 Completed 0 29h openshift-kube-apiserver installer-11-control01.ocp4.vwd.clx 0/1 Completed 0 29h openshift-kube-apiserver installer-11-control02.ocp4.vwd.clx 0/1 Completed 0 29h openshift-kube-apiserver installer-11-control03.ocp4.vwd.clx 0/1 Completed 0 29h openshift-kube-apiserver installer-12-control01.ocp4.vwd.clx 0/1 Completed 0 25h openshift-kube-apiserver installer-12-control02.ocp4.vwd.clx 0/1 Completed 0 25h openshift-kube-apiserver installer-12-control03.ocp4.vwd.clx 0/1 Completed 0 25h openshift-kube-apiserver installer-13-control01.ocp4.vwd.clx 0/1 Completed 0 24h openshift-kube-apiserver installer-13-control02.ocp4.vwd.clx 0/1 Completed 0 24h openshift-kube-apiserver installer-13-control03.ocp4.vwd.clx 0/1 Completed 0 24h openshift-kube-apiserver installer-9-control01.ocp4.vwd.clx 0/1 Completed 0 30h openshift-kube-apiserver installer-9-control02.ocp4.vwd.clx 0/1 Completed 0 30h openshift-kube-apiserver installer-9-control03.ocp4.vwd.clx 0/1 Completed 0 30h openshift-kube-apiserver kube-apiserver-control01.ocp4.vwd.clx 5/5 Running 0 24h openshift-kube-apiserver kube-apiserver-control02.ocp4.vwd.clx 5/5 Running 0 24h openshift-kube-apiserver kube-apiserver-control03.ocp4.vwd.clx 5/5 Running 0 24h openshift-kube-apiserver kube-apiserver-guard-control01.ocp4.vwd.clx 1/1 Running 0 2d openshift-kube-apiserver kube-apiserver-guard-control02.ocp4.vwd.clx 1/1 Running 0 2d openshift-kube-apiserver kube-apiserver-guard-control03.ocp4.vwd.clx 1/1 Running 0 2d openshift-kube-apiserver revision-pruner-10-control01.ocp4.vwd.clx 0/1 Completed 0 29h openshift-kube-apiserver revision-pruner-10-control02.ocp4.vwd.clx 0/1 Completed 0 29h openshift-kube-apiserver revision-pruner-10-control03.ocp4.vwd.clx 0/1 Completed 0 29h openshift-kube-apiserver revision-pruner-11-control01.ocp4.vwd.clx 0/1 Completed 0 29h openshift-kube-apiserver revision-pruner-11-control02.ocp4.vwd.clx 0/1 Completed 0 29h openshift-kube-apiserver revision-pruner-11-control03.ocp4.vwd.clx 0/1 Completed 0 29h openshift-kube-apiserver revision-pruner-12-control01.ocp4.vwd.clx 0/1 Completed 0 25h openshift-kube-apiserver revision-pruner-12-control02.ocp4.vwd.clx 0/1 Completed 0 25h openshift-kube-apiserver revision-pruner-12-control03.ocp4.vwd.clx 0/1 Completed 0 25h openshift-kube-apiserver revision-pruner-13-control01.ocp4.vwd.clx 0/1 Completed 0 24h openshift-kube-apiserver revision-pruner-13-control02.ocp4.vwd.clx 0/1 Completed 0 24h openshift-kube-apiserver revision-pruner-13-control03.ocp4.vwd.clx 0/1 Completed 0 24h openshift-kube-apiserver revision-pruner-9-control01.ocp4.vwd.clx 0/1 Completed 0 30h openshift-kube-apiserver revision-pruner-9-control02.ocp4.vwd.clx 0/1 Completed 0 30h openshift-kube-apiserver revision-pruner-9-control03.ocp4.vwd.clx 0/1 Completed 0 30h openshift-kube-controller-manager-operator kube-controller-manager-operator-8569749977-7bdf2 1/1 Running 2 (2d ago) 2d openshift-kube-controller-manager installer-5-control02.ocp4.vwd.clx 0/1 Completed 0 2d openshift-kube-controller-manager installer-6-control03.ocp4.vwd.clx 0/1 Completed 0 2d openshift-kube-controller-manager installer-6-retry-1-control01.ocp4.vwd.clx 0/1 Completed 0 2d openshift-kube-controller-manager installer-6-retry-1-control02.ocp4.vwd.clx 0/1 Completed 0 2d openshift-kube-controller-manager installer-7-control01.ocp4.vwd.clx 0/1 Completed 0 2d openshift-kube-controller-manager installer-7-control03.ocp4.vwd.clx 0/1 Completed 0 2d openshift-kube-controller-manager installer-7-retry-1-control02.ocp4.vwd.clx 0/1 Completed 0 2d openshift-kube-controller-manager kube-controller-manager-control01.ocp4.vwd.clx 4/4 Running 0 2d openshift-kube-controller-manager kube-controller-manager-control02.ocp4.vwd.clx 4/4 Running 1 (2d ago) 2d openshift-kube-controller-manager kube-controller-manager-control03.ocp4.vwd.clx 4/4 Running 2 (2d ago) 2d openshift-kube-controller-manager kube-controller-manager-guard-control01.ocp4.vwd.clx 1/1 Running 0 2d openshift-kube-controller-manager kube-controller-manager-guard-control02.ocp4.vwd.clx 1/1 Running 0 2d openshift-kube-controller-manager kube-controller-manager-guard-control03.ocp4.vwd.clx 1/1 Running 0 2d openshift-kube-controller-manager revision-pruner-7-control01.ocp4.vwd.clx 0/1 Completed 0 2d openshift-kube-controller-manager revision-pruner-7-control02.ocp4.vwd.clx 0/1 Completed 0 2d openshift-kube-controller-manager revision-pruner-7-control03.ocp4.vwd.clx 0/1 Completed 0 2d openshift-kube-scheduler-operator openshift-kube-scheduler-operator-78bdb8d5df-jj7mc 1/1 Running 2 (2d ago) 2d openshift-kube-scheduler installer-6-control02.ocp4.vwd.clx 0/1 Completed 0 2d openshift-kube-scheduler installer-7-control02.ocp4.vwd.clx 0/1 Completed 0 2d openshift-kube-scheduler installer-7-control03.ocp4.vwd.clx 0/1 Completed 0 2d openshift-kube-scheduler installer-7-retry-1-control01.ocp4.vwd.clx 0/1 Completed 0 2d openshift-kube-scheduler openshift-kube-scheduler-control01.ocp4.vwd.clx 3/3 Running 0 2d openshift-kube-scheduler openshift-kube-scheduler-control02.ocp4.vwd.clx 3/3 Running 0 2d openshift-kube-scheduler openshift-kube-scheduler-control03.ocp4.vwd.clx 3/3 Running 0 2d openshift-kube-scheduler openshift-kube-scheduler-guard-control01.ocp4.vwd.clx 1/1 Running 0 2d openshift-kube-scheduler openshift-kube-scheduler-guard-control02.ocp4.vwd.clx 1/1 Running 0 2d openshift-kube-scheduler openshift-kube-scheduler-guard-control03.ocp4.vwd.clx 1/1 Running 0 2d openshift-kube-scheduler revision-pruner-6-control01.ocp4.vwd.clx 0/1 Completed 0 2d openshift-kube-scheduler revision-pruner-6-control02.ocp4.vwd.clx 0/1 Completed 0 2d openshift-kube-scheduler

revision-pruner-7-control01.ocp4.vwd.clx 0/1 Completed 0 2d openshift-kube-scheduler revision-pruner-7-control02.ocp4.vwd.clx 0/1 Completed 0 2d openshift-kube-scheduler revision-pruner-7-control03.ocp4.vwd.clx 0/1 Completed 0 2d openshift-kube-storage-version-migrator-operator kube-storage-version-migrator-operator-858f98bf69-gmhmk 1/1 Running 2 (2d ago) 2d openshift-kube-storage-version-migrator migrator-8f5cb494f-cv2sw 1/1 Running 0 2d openshift-machine-api cluster-autoscaler-operator-67d67f467c-ftjnd 2/2 Running 2 (2d ago) 2d openshift-machine-api cluster-baremetal-operator-9f7c58876-7gfcf 2/2 Running 0 2d openshift-machine-api machine-api-controllers-5d48848dc-f2lbn 7/7 Running 8 (2d ago) 2d openshift-machine-api machine-api-operator-5869dbb6f9-jmd9d 2/2 Running 1 (2d ago) 2d openshift-machine-api metal3-596fff4b5b-s45j9 7/7 Running 0 2d openshift-machine-api metal3-image-cache-bjmnd 1/1 Running 0 2d openshift-machine-api metal3-image-cache-g7dcc 1/1 Running 0 2d openshift-machine-api metal3-image-cache-nxdlr 1/1 Running 0 2d openshift-machine-api metal3-image-customization-95866c848-6dgvd 1/1 Running 0 2d openshift-machine-config-operator machine-config-controller-77b5755d57-mqlk9 1/1 Running 1 (2d ago) 2d openshift-machine-config-operator machine-config-daemon-7l7bd 2/2 Running 0 2d openshift-machine-config-operator machine-config-daemon-c5n52 2/2 Running 0 2d openshift-machine-config-operator machine-config-daemon-dhhtc 2/2 Running 0 2d openshift-machine-config-operator machine-config-daemon-fl96h 2/2 Running 0 2d openshift-machine-config-operator machine-config-daemon-jmmbg 2/2 Running 0 2d openshift-machine-config-operator machine-config-daemon-n456s 2/2 Running 0 2d openshift-machine-config-operator machine-config-operator-6b86784cb5-v7zf4 1/1 Running 1 (2d ago) 2d openshift-machine-config-operator machine-config-server-l4sm6 1/1 Running 0 2d openshift-machine-config-operator machine-config-server-rdngb 1/1 Running 0 2d openshift-machine-config-operator machine-config-server-wn8z2 1/1 Running 0 2d openshift-marketplace certified-operators-9tdzr 1/1 Running 0 75m openshift-marketplace community-operators-57zzr 1/1 Running 0 28m openshift-marketplace marketplace-operator-5bd7c86474-w47th 1/1 Running 3 (2d ago) 2d openshift-marketplace redhat-marketplace-p92tb 1/1 Running 0 4h30m openshift-marketplace redhat-operators-f98h8 1/1 Running 0 29h openshift-monitoring alertmanager-main-0 6/6 Running 0 2d openshift-monitoring alertmanager-main-1 6/6 Running 0 2d openshift-monitoring cluster-monitoring-operator-77f85687f5-nj662 2/2 Running 0 2d openshift-monitoring grafana-5487f6d9cf-jk5sv 3/3 Running 0 2d openshift-monitoring kube-state-metrics-6d685b8687-wbfj6 3/3 Running 0 2d openshift-monitoring node-exporter-7lcqv 2/2 Running 0 2d openshift-monitoring node-exporter-9rcbv 2/2 Running 0 2d openshift-monitoring node-exporter-cbhhd 2/2 Running 0 2d openshift-monitoring node-exporter-hk5f4 2/2 Running 0 2d openshift-monitoring node-exporter-rsw5t 2/2 Running 0 2d openshift-monitoring node-exporter-wntwr 2/2 Running 0 2d openshift-monitoring openshift-state-metrics-65f58d4c67-jpp6b 3/3 Running 0 2d openshift-monitoring prometheus-adapter-b954595b-qc2nw 1/1 Running 0 24h openshift-monitoring prometheus-adapter-b954595b-z6wrp 1/1 Running 0 24h openshift-monitoring prometheus-k8s-0 6/6 Running 0 2d openshift-monitoring prometheus-k8s-1 6/6 Running 0 2d openshift-monitoring prometheus-operator-76f79c8d85-f2wqq 2/2 Running 0 2d openshift-monitoring telemeter-client-7f76f65fd4-gndjp 3/3 Running 0 2d openshift-monitoring thanos-querier-7b7cf74976-hm8qm 6/6 Running 0 2d openshift-monitoring thanos-querier-7b7cf74976-zh66s 6/6 Running 0 2d openshift-multus multus-66mmt 1/1 Running 0 2d openshift-multus multus-8zpj9 1/1 Running 0 2d openshift-multus multus-additional-cni-plugins-5xfgt 1/1 Running 0 2d openshift-multus multus-additional-cni-plugins-8ntxc 1/1 Running 0 2d openshift-multus multus-additional-cni-plugins-cf4pl 1/1 Running 0 2d openshift-multus multus-additional-cni-plugins-kgzcv 1/1 Running 0 2d openshift-multus multus-additional-cni-plugins-lzntc 1/1 Running 0 2d openshift-multus multus-additional-cni-plugins-mkvqn 1/1 Running 0 2d openshift-multus multus-admission-controller-2x94g 2/2 Running 0 2d openshift-multus multus-admission-controller-54fzg 2/2 Running 0 2d openshift-multus multus-admission-controller-rpq6d 2/2 Running 0 2d openshift-multus multus-gbxp4 1/1 Running 0 2d openshift-multus multus-h8mjv 1/1 Running 0 2d openshift-multus multus-lbv7j 1/1 Running 0 2d openshift-multus multus-wbqr8 1/1 Running 0 2d openshift-multus network-metrics-daemon-dkv45 2/2 Running 0 2d openshift-multus network-metrics-daemon-gnxjt 2/2 Running 0 2d openshift-multus network-metrics-daemon-j5ng9 2/2 Running 0 2d openshift-multus network-metrics-daemon-sc6cd 2/2 Running 0 2d openshift-multus network-metrics-daemon-sddb9 2/2 Running 0 2d openshift-multus network-metrics-daemon-vkhmw 2/2 Running 0 2d openshift-network-diagnostics network-check-source-695cdb7747-nh98w 1/1 Running 0 2d openshift-network-diagnostics network-check-target-24wqk 1/1 Running 0 2d openshift-network-diagnostics network-check-target-jfpbl 1/1 Running 0 2d openshift-network-diagnostics network-check-target-jsdtb 1/1 Running 0 2d openshift-network-diagnostics network-check-target-rlpxk 1/1 Running 0 2d openshift-network-diagnostics network-check-target-t6zqv 1/1 Running 0 2d openshift-network-diagnostics network-check-target-w5nc5 1/1 Running 0 2d openshift-network-operator network-operator-7d77dffff9-54tbt 1/1 Running 1 (2d ago) 2d openshift-oauth-apiserver apiserver-5cc46c79bc-f2d6n 1/1 Running 0 2d openshift-oauth-apiserver apiserver-5cc46c79bc-l5hjx 1/1 Running 0 2d openshift-oauth-apiserver

               apiserver-5cc46c79bc-tjbw4                                   1/1     Running     0            2d
openshift-operator-lifecycle-manager               catalog-operator-74c9986ff-xvnj8                             1/1     Running     0            2d
openshift-operator-lifecycle-manager               collect-profiles-27690600-8mwnv                              0/1     Completed   0            40m
openshift-operator-lifecycle-manager               collect-profiles-27690615-gd57g                              0/1     Completed   0            25m
openshift-operator-lifecycle-manager               collect-profiles-27690630-kkz28                              0/1     Completed   0            10m
openshift-operator-lifecycle-manager               olm-operator-67fcdb489c-m4cvc                                1/1     Running     0            2d
openshift-operator-lifecycle-manager               package-server-manager-765bb5f5-xrf8v                        1/1     Running     2 (2d ago)   2d
openshift-operator-lifecycle-manager               packageserver-fdd697dc6-c5b7v                                1/1     Running     0            2d
openshift-operator-lifecycle-manager               packageserver-fdd697dc6-qtqf2                                1/1     Running     0            2d
openshift-sdn                                      sdn-4j62m                                                    2/2     Running     0            2d
openshift-sdn                                      sdn-4q6jf                                                    2/2     Running     0            2d
openshift-sdn                                      sdn-7ct7v                                                    2/2     Running     0            2d
openshift-sdn                                      sdn-controller-29cvs                                         2/2     Running     0            2d
openshift-sdn                                      sdn-controller-lm7g9                                         2/2     Running     0            2d
openshift-sdn                                      sdn-controller-mrssb                                         2/2     Running     1 (2d ago)   2d
openshift-sdn                                      sdn-fcv7m                                                    2/2     Running     0            2d
openshift-sdn                                      sdn-pq7pb                                                    2/2     Running     0            2d
openshift-sdn                                      sdn-rzz7l                                                    2/2     Running     0            2d
openshift-service-ca-operator                      service-ca-operator-74997d4678-6dg7d                         1/1     Running     2 (2d ago)   2d
openshift-service-ca                               service-ca-7567987bc8-cm9j7                                  1/1     Running     1 (2d ago)   2d

安装节点特性发现(NFD)Operator

OpenShift节点特性发现(NFD)管理硬件特性的检测及其在OpenShift容器平台中的配置。NFD为节点打上特定属性的标签。因此,NFD是NVIDIA GPU Operator的先决条件。作为集群管理员,您可以通过OpenShift容器平台Web控制台中的Red Hat OperatorHub目录安装NFD Operator。

  1. 使用左侧菜单栏,展开 Operators 部分,选择 OperatorHub

    使用搜索栏搜索“Node Feature Discovery”。应找到两个结果。 选择标记为Red Hat Operator的版本。这是Red Hat支持的版本。

    NFD Install 01.PNG

  2. 点击 Install

    NFD Install 02.PNG

  3. 下一个菜单允许您确定Operator的安装位置和方式。通常无需更改任何选项。 点击 Install 继续使用默认设置。

    NFD Install 03.PNG

  4. 等待NFD Operator安装完成。当看到“Installed operator - ready for use”状态时,点击 View Operator。注意,您现在位于Operator安装过程中创建的 openshift-nfd 项目中。

    NFD Install 04.PNG NFD Install 05.PNG

  5. 点击 Create Instance 按钮创建新的 NFD 对象。

    NFD Install 07.PNG

  6. 下一个菜单提供配置NFD Operator扫描集群的选项。通常无需更改任何默认设置。点击 Create 在集群上实例化NFD资源。

    NFD Install 08.PNG

  7. 您可以在Infra Node ssh控制台中查看安装进度。NFD安装可能需要5分钟。

    NFD Install 10.PNG

  8. 在水平菜单栏中,选择 NodeFeatureDiscovery。您应该能看到一个名为 nfd-instance 的实例。等待状态显示部署完成。

    NFD Install 09.PNG

启用集群范围的授权

NVIDIA Network Operator部署多个POD,用于管理和启用OpenShift容器平台中的NVIDIA高速网络。其中一些POD需要默认通用基础镜像(UBI)中不可用的软件包。要使软件包可用,您必须在OpenShift中启用集群范围的授权容器构建。为此,请按照启用集群范围的授权中的说明操作。

通过运行 oc get mcp/worker 命令,您可以查看 MachineConfigPool 对象,监控MCP是否已更新、未更新或降级,从而确保所有 MachineConfig 资源已成功应用到节点,然后可以继续验证集群。

Emnabling a Cluster wide entitlement.PNG

安装NVIDIA Network Operator

请参阅以下使用Web UI部署Network Operator的步骤。

警告:开始之前,通过运行 [root@sl01lw01depl ocp4-helpernode]# oc create ns nvidia-operator-resources 为Network Operator资源创建命名空间。

  1. 使用左侧菜单栏,展开 Operators 部分,选择 OperatorHub

    使用搜索栏搜索“NVIDIA Network Operator”。

    Network Operator Install 01.PNG

  2. 点击 Install

    Network Operator Install 02.PNG

  3. 选择 A specific namespace on the cluster,然后从下拉菜单中选择 nvidia-operator-resources。点击 Install

    Network Operator Install 03.PNG

  4. 等待Operator安装完成。当看到“Installed operator - ready for use”状态时,点击 View Operator

    Network Operator Install 04.PNG

  5. Provided APIs 下,点击 NicClusterPolicy 磁贴中的 Create instance

    Network Operator Install 05.PNG

  6. 在YAML编辑器中,将 spec 部分替换为以下内容:

    apiVersion: nvidia.com/v1
    kind: NicClusterPolicy
    metadata:
      name: nic-cluster-policy
    spec:
      deployment:
        enable: true
      sriovNetworkNodePolicy:
        enable: true
      ofedDriver:
        enable: true
        version: "5.8-1.1.1.0"
      rdmaSharedDevicePlugin:
        enable: true
      sriovNetworkOperator:
        enable: true
    

    点击 Create

    Network Operator Install 06.PNG

  7. 等待所有POD启动并运行。您可以在 Workloads > Pods 下查看状态。

    Network Operator Install 07.PNG

  8. 验证所有POD都处于 Running 状态。

    Network Operator Install 08.PNG

the Operators section, and select the OperatorHub.

Use the search bar to search for NVIDIA. Two items should be found.

Select the NVIDIA Network Operator.

Network Operator Install 01.PNG

  1. Click Install.

    Network Operator Install 02.PNG

  2. The next menu allows you to define how and where the operator will be installed. You would rarely have to change any of these options. Click Install to continue with the default values.

    Network Operator Install 03.PNG

  3. Wait while the NVIDIA Network operator is being installed. Once you see the "Installed operator - ready for use" status, click View Operator.

    Network Operator Install 04.PNG

  4. Click the Create Instance button to create a new NicClusterPolicy object.

    Network Operator Install 05.PNG

  5. Click on YAML view, and change to the following:

    NicClusterPolicy sample

    apiVersion: mellanox.com/v1alpha1
    kind: NicClusterPolicy
    metadata:
      name: nic-cluster-policy
    spec:
      ofedDriver:
        image: mofed
        livenessProbe:
          initialDelaySeconds: 30
          periodSeconds: 30
        readinessProbe:
          initialDelaySeconds: 10
          periodSeconds: 30
        repository: nvcr.io/nvidia/mellanox
        startupProbe:
          initialDelaySeconds: 10
          periodSeconds: 20
        upgradePolicy:
          autoUpgrade: false
          drain:
            deleteEmptyDir: true
            enable: true
            force: true
            podSelector: ''
            timeoutSeconds: 300
          maxParallelUpgrades: 1
        version: 5.7-1.0.2.0
      sriovDevicePlugin:
        image: sriov-network-device-plugin
        repository: ghcr.io/k8snetworkplumbingwg
        version: a765300344368efbf43f71016e9641c58ec1241b
        config: |
          {
            "resourceList": [
                {
                    "resourcePrefix": "nvidia.com",
                    "resourceName": "host_dev",
                    "selectors": {
                        "vendors": ["15b3"],
                        "isRdma": true
                    }
                }
            ]
          }
    

    Click Create.

    Network Operator Install 06.PNG

  6. Wait for the status to show State ready.

    Network Operator Install 07.PNG

  7. In the horizontal menu bar, select HostDeviceNetwork, and click on Create HostDeviceNetwork to create a new object.

    Network Operator Install 08.PNG

  8. Click on YAML view, and change to the following:

    HostDeviceNetwork sample

    apiVersion: mellanox.com/v1alpha1
    kind: HostDeviceNetwork
    metadata:
      name: hostdev-net
    spec:
      networkNamespace: "default"
      resourceName: "host_dev"
      ipam: |
        {
          "type": "whereabouts",
          "range": "192.168.3.225/28"
        }
    
  9. Click Create.

    Network Operator Install 09.PNG

  10. Wait for the status to show State ready.

    Network Operator Install 10.PNG

Running the Application

Now it is possible to deploy a sample POD.

K8s CLI VM console

[root@sl01lw01depl ocp4-helpernode]# vim podrdma.yaml

K8s CLI VM console

apiVersion: v1
kind: Pod
metadata:
  name: rdma-test-pod-1
  annotations:
    k8s.v1.cni.cncf.io/networks: hostdev-net
spec:
  restartPolicy: OnFailure
  containers:
  - image: harbor.mellanox.com/nbu-solutions-labs/ubuntu-mlnx-inbox:20.04
    name: rdma-test-ctr
    securityContext:
      capabilities:
        add: [ "IPC_LOCK" ]
    resources:
      limits:
        nvidia.com/host_dev: '1'
      requests:
        nvidia.com/host_dev: '1'
    command:
    - sh
    - -c
    - sleep infinity

A sample of harbor.mellanox.com/nbu-solutions-labs/ubuntu-mlnx-inbox:20.04 docker file:

Docker Sample

FROM ubuntu:20.04
# Ubuntu 20.04 docker container with inbox Mellanox drivers
WORKDIR /tmp/
ENV DEBIAN_FRONTEND=noninteractive
RUN apt-get clean -y && apt-get -y update && apt-get install -y apt-utils udev vim bash && apt-get -y upgrade
RUN apt-get install -y iproute2 rdma-core libibmad5 ibutils ibverbs-utils infiniband-diags perftest \
            mstflint strace iputils-ping
RUN ln -fs /usr/share/zoneinfo/America/New_York /etc/localtime
RUN dpkg-reconfigure --frontend noninteractive tzdata && apt-get clean all -y
CMD bash

Run the following command to create the POD:

K8s CLI VM console

[root@sl01lw01depl ocp4-helpernode]# oc apply -f podrdma.yaml
pod/hostdev-test-pod created

To verify that the POD is running, run:

K8s CLI VM console

[root@sl01lw01depl ocp4-helpernode]# oc get pods -o wide
NAME              READY   STATUS    RESTARTS   AGE     IP            NODE                    NOMINATED NODE   READINESS GATES
rdma-test-pod-1   1/1     Running   0          10s   10.129.3.80   worker02.ocp4.vwd.clx   <none>           <none>

Get a shell for the running

K8s CLI VM console

[root@sl01lw01depl ocp4-helpernode]# oc exec -it rdma-test-pod-1 -- bash

检查POD中的可用网络接口:

K8s CLI VM console

root@rdma-test-pod-1:/tmp# rdma link
link mlx5_0/1 state ACTIVE physical_state LINK_UP netdev net1

root@rdma-test-pod-1:/tmp# ip a s
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host
       valid_lft forever preferred_lft forever
3: eth0@if2890: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1450 qdisc noqueue state UP group default
    link/ether 0a:58:0a:81:03:50 brd ff:ff:ff:ff:ff:ff link-netnsid 0
    inet 10.129.3.80/23 brd 10.129.3.255 scope global eth0
       valid_lft forever preferred_lft forever
    inet6 fe80::c05d:6ff:fe08:84ad/64 scope link
       valid_lft forever preferred_lft forever
161: net1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
    link/ether 00:50:56:a2:9b:7f brd ff:ff:ff:ff:ff:ff
    inet 192.168.3.225/28 brd 192.168.3.239 scope global net1
       valid_lft forever preferred_lft forever
    inet6 fe80::250:56ff:fea2:9b7f/64 scope link
       valid_lft forever preferred_lft forever

Verification

检查RDMA

要检查RDMA,请部署第二个POD。打开另一个控制台窗口,并运行以下命令:

K8s CLI VM console

[root@sl01lw01depl ocp4-helpernode]# vim podrdma2.yaml

K8s CLI VM console

apiVersion: v1
kind: Pod
metadata:
  name: rdma-test-pod-2
  annotations:
    k8s.v1.cni.cncf.io/networks: hostdev-net
spec:
  restartPolicy: OnFailure
  containers:
  - image: harbor.mellanox.com/nbu-solutions-labs/ubuntu-mlnx-inbox:20.04
    name: rdma-test-ctr
    securityContext:
      capabilities:
        add: [ "IPC_LOCK" ]
    resources:
      limits:
        nvidia.com/host_dev: '1'
      requests:
        nvidia.com/host_dev: '1'
    command:
    - sh
    - -c
    - sleep infinity

运行以下命令以运行第二个POD:

K8s CLI VM console

[root@sl01lw01depl ocp4-helpernode]# oc apply -f podrdma2.yaml
pod/hostdev-test-pod-2 created

验证两个POD正在不同的Worker节点上运行。

K8s CLI VM console

[root@sl01lw01depl ocp4-helpernode]# oc get pods -o wide
NAME              READY   STATUS    RESTARTS   AGE     IP            NODE                    NOMINATED NODE   READINESS GATES
rdma-test-pod-1   1/1     Running   0          102s   10.129.3.80   worker02.ocp4.vwd.clx   <none>           <none>
rdma-test-pod-2   1/1     Running   0          83s    10.128.2.18   worker03.ocp4.vwd.clx   <none>           <none>

如您所见,第一个POD rdma-test-pod-1 运行在 worker02 上,第二个POD rdma-test-pod-2 运行在 worker03 上。

获取第二个运行中容器的shell。

K8s CLI VM console

[root@sl01lw01depl ocp4]# oc exec -it rdma-test-pod-2 -- bash

检查POD中的可用网络接口。

K8s CLI VM console

root@rdma-test-pod-1:/tmp# rdma link
link mlx5_0/1 state ACTIVE physical_state LINK_UP netdev net1

root@hostdev-test-pod-2:/tmp# ip a s
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host
       valid_lft forever preferred_lft forever
3: eth0@if30: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1450 qdisc noqueue state UP group default
    link/ether 0a:58:0a:80:02:12 brd ff:ff:ff:ff:ff:ff link-netnsid 0
    inet 10.128.2.18/23 brd 10.128.3.255 scope global eth0
       valid_lft forever preferred_lft forever
    inet6 fe80::3415:caff:fed9:b936/64 scope link
       valid_lft forever preferred_lft forever
26: net1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
    link/ether 00:50:56:a2:2e:a2 brd ff:ff:ff:ff:ff:ff
    inet 192.168.3.226/28 brd 192.168.3.239 scope global net1
       valid_lft forever preferred_lft forever
    inet6 fe80::250:56ff:fea2:2ea2/64 scope link
       valid_lft forever preferred_lft forever

现在您可以运行 ib_write_bw(InfiniBand写带宽)工具,该工具是 Perftest Package 的一部分,运行以下命令:

返回第一个运行中的容器shell窗口,并运行:

K8s CLI VM console

root@rdma-test-pod-1:/tmp# ib_write_bw  -F -d mlx5_0 --report_gbits

************************************
* Waiting for client to connect... *
************************************

返回另一个运行中的容器shell窗口,并运行:

K8s CLI VM console

root@rdma-test-pod-2:/tmp# ib_write_bw  -F 192.168.3.225 -d mlx5_0 --report_gbits

结果:

K8s CLI VM console

On Client side.
---------------------------------------------------------------------------------------
                    RDMA_Write BW Test
 Dual-port       : OFF          Device         : mlx5_0
 Number of qps   : 1            Transport type : IB
 Connection type : RC           Using SRQ      : OFF
 TX depth        : 128
 CQ Moderation   : 100
 Mtu             : 1024[B]
 Link type       : Ethernet
 GID index       : 2
 Max inline data : 0[B]
 rdma_cm QPs     : OFF
 Data ex. method : Ethernet
---------------------------------------------------------------------------------------
 local address: LID 0000 QPN 0x00c8 PSN 0xae9396 RKey 0x020b05 VAddr 0x007f1fd458a000
 GID: 00:00:00:00:00:00:00:00:00:00:255:255:192:168:03:226
 remote address: LID 0000 QPN 0x00c8 PSN 0x5fc1b8 RKey 0x020b05 VAddr 0x007f1c19487000
 GID: 00:00:00:00:00:00:00:00:00:00:255:255:192:168:03:225
---------------------------------------------------------------------------------------
 #bytes     #iterations    BW peak[Gb/sec]    BW average[Gb/sec]   MsgRate[Mpps]
 65536      5000             90.52              90.52              0.172651
---------------------------------------------------------------------------------------

On Server side.
************************************
* Waiting for client to connect... *
************************************
---------------------------------------------------------------------------------------
                    RDMA_Write BW Test
 Dual-port       : OFF          Device         : mlx5_0
 Number of qps   : 1            Transport type : IB
 Connection type : RC           Using SRQ      : OFF
 CQ Moderation   : 100
 Mtu             : 1024[B]
 Link type       : Ethernet
 GID index       : 2
 Max inline data : 0[B]
 rdma_cm QPs     : OFF
 Data ex. method : Ethernet
---------------------------------------------------------------------------------------
 local address: LID 0000 QPN 0x00c8 PSN 0x5fc1b8 RKey 0x020b05 VAddr 0x007f1c19487000
 GID: 00:00:00:00:00:00:00:00:00:00:255:255:192:168:03:225
 remote address: LID 0000 QPN 0x00c8 PSN 0xae9396 RKey 0x020b05 VAddr 0x007f1fd458a000
 GID:

00:00:00:00:00:00:00:00:00:00:255:255:192:168:03:226

#bytes #iterations BW peak[Gb/sec] BW average[Gb/sec] MsgRate[Mpps] 65536 5000 90.52 90.52 0.172651

警告: 本文档中列出的性能结果仅供参考,不应视为NVIDIA产品的正式性能目标。

要运行DPDK应用程序,请参阅以下文档:RDG: DPDK Applications on SR-IOV Enabled Kubernetes Cluster with NVIDIA Network Operator.

完成!

作者

BK.jpg Boris KovalevBoris Kovalev过去几年一直担任解决方案架构师,专注于NVIDIA Networking/Mellanox技术,负责复杂的机器学习、大数据和基于VMware的高级云研究与设计。此前,他在多家公司担任高级顾问和解决方案架构师超过20年,最近在VMware工作。他撰写了多份涵盖VMware、机器学习、Kubernetes和容器解决方案的参考设计,可在NVIDIA文档网站上获取。
VR.jpg Vitaliy RazinkovVitaliy Razinkov是NVIDIA Networking团队的解决方案架构师,专注于复杂的Kubernetes、OpenShift和Microsoft解决方案。凭借超过25年的高级技术职位经验,他在设计和实施高级基础设施方面拥有深厚的专业知识。他撰写了多份关于Microsoft技术、RoCE/RDMA加速机器学习在Kubernetes/OpenShift以及容器化解决方案的参考设计指南,所有这些都可在NVIDIA Networking文档网站上获取。