×

您可以创建不同的计算机器集合来为Microsoft Azure上的OpenShift Container Platform集群中的特定目的服务。例如,您可以创建基础架构机器集合和相关的机器,以便您可以将支持的工作负载迁移到新的机器。

您只能在Machine API正在运行的集群中使用高级机器管理和扩展功能。具有用户预配基础设施的集群需要额外的验证和配置才能使用Machine API。

基础设施平台类型为none的集群无法使用Machine API。即使连接到集群的计算机器安装在支持此功能的平台上,此限制也适用。此参数安装后无法更改。

要查看集群的平台类型,请运行以下命令

$ oc get infrastructure cluster -o jsonpath='{.status.platform}'

Azure上计算机器集合自定义资源的示例YAML

此示例YAML定义了一个在区域中的1个Microsoft Azure区域中运行的计算机器集合,并创建标记为node-role.kubernetes.io/<role>: ""的节点。

在此示例中,<infrastructure_id>是基于您在预配集群时设置的集群ID的基础架构ID标签,<role>是要添加的节点标签。

apiVersion: machine.openshift.io/v1beta1
kind: MachineSet
metadata:
  labels:
    machine.openshift.io/cluster-api-cluster: <infrastructure_id> (1)
    machine.openshift.io/cluster-api-machine-role: <role> (2)
    machine.openshift.io/cluster-api-machine-type: <role>
  name: <infrastructure_id>-<role>-<region> (3)
  namespace: openshift-machine-api
spec:
  replicas: 1
  selector:
    matchLabels:
      machine.openshift.io/cluster-api-cluster: <infrastructure_id>
      machine.openshift.io/cluster-api-machineset: <infrastructure_id>-<role>-<region>
  template:
    metadata:
      creationTimestamp: null
      labels:
        machine.openshift.io/cluster-api-cluster: <infrastructure_id>
        machine.openshift.io/cluster-api-machine-role: <role>
        machine.openshift.io/cluster-api-machine-type: <role>
        machine.openshift.io/cluster-api-machineset: <infrastructure_id>-<role>-<region>
    spec:
      metadata:
        creationTimestamp: null
        labels:
          machine.openshift.io/cluster-api-machineset: <machineset_name>
          node-role.kubernetes.io/<role>: ""
      providerSpec:
        value:
          apiVersion: azureproviderconfig.openshift.io/v1beta1
          credentialsSecret:
            name: azure-cloud-credentials
            namespace: openshift-machine-api
          image: (4)
            offer: ""
            publisher: ""
            resourceID: /resourceGroups/<infrastructure_id>-rg/providers/Microsoft.Compute/galleries/gallery_<infrastructure_id>/images/<infrastructure_id>-gen2/versions/latest (5)
            sku: ""
            version: ""
          internalLoadBalancer: ""
          kind: AzureMachineProviderSpec
          location: <region> (6)
          managedIdentity: <infrastructure_id>-identity
          metadata:
            creationTimestamp: null
          natRule: null
          networkResourceGroup: ""
          osDisk:
            diskSizeGB: 128
            managedDisk:
              storageAccountType: Premium_LRS
            osType: Linux
          publicIP: false
          publicLoadBalancer: ""
          resourceGroup: <infrastructure_id>-rg
          sshPrivateKey: ""
          sshPublicKey: ""
          tags:
            - name: <custom_tag_name> (7)
              value: <custom_tag_value>
          subnet: <infrastructure_id>-<role>-subnet
          userDataSecret:
            name: worker-user-data
          vmSize: Standard_D4s_v3
          vnet: <infrastructure_id>-vnet
          zone: "1" (8)
1 指定基于您在预配集群时设置的集群ID的基础架构ID。如果您安装了OpenShift CLI,则可以通过运行以下命令获取基础架构ID
$ oc get -o jsonpath='{.status.infrastructureName}{"\n"}' infrastructure cluster

您可以通过运行以下命令获取子网

$  oc -n openshift-machine-api \
    -o jsonpath='{.spec.template.spec.providerSpec.value.subnet}{"\n"}' \
    get machineset/<infrastructure_id>-worker-centralus1

您可以通过运行以下命令获取VNet

$  oc -n openshift-machine-api \
    -o jsonpath='{.spec.template.spec.providerSpec.value.vnet}{"\n"}' \
    get machineset/<infrastructure_id>-worker-centralus1
2 指定要添加的节点标签。
3 指定基础架构ID、节点标签和区域。
4 指定计算机器集合的映像详细信息。如果您想使用Azure Marketplace映像,请参阅“选择Azure Marketplace映像”。
5 指定与您的实例类型兼容的映像。安装程序创建的Hyper-V第2代映像具有-gen2后缀,而第1代映像则具有相同名称,没有后缀。
6 指定放置机器的区域。
7 可选:在您的机器集合中指定自定义标签。在<custom_tag_name>字段中提供标签名称,在<custom_tag_value>字段中提供相应的标签值。
8 指定要在其上放置机器的区域内的区域。确保您的区域支持您指定的区域。

创建计算机器集合

除了安装程序创建的计算机器集合之外,您还可以创建自己的集合来动态管理您选择的特定工作负载的机器计算资源。

先决条件
  • 部署OpenShift Container Platform集群。

  • 安装OpenShift CLI (oc)。

  • 以具有cluster-admin权限的用户身份登录到oc

步骤
  1. 创建一个包含计算机器集合自定义资源(CR)示例的新YAML文件,并将其命名为<file_name>.yaml

    请确保您已设置<clusterID><role>参数值。

  2. 可选:如果您不确定某个字段应设置什么值,可以检查集群中现有的计算机集合。

    1. 要列出集群中的计算机构集合,请运行以下命令

      $ oc get machinesets -n openshift-machine-api
      示例输出
      NAME                                DESIRED   CURRENT   READY   AVAILABLE   AGE
      agl030519-vplxk-worker-us-east-1a   1         1         1       1           55m
      agl030519-vplxk-worker-us-east-1b   1         1         1       1           55m
      agl030519-vplxk-worker-us-east-1c   1         1         1       1           55m
      agl030519-vplxk-worker-us-east-1d   0         0                             55m
      agl030519-vplxk-worker-us-east-1e   0         0                             55m
      agl030519-vplxk-worker-us-east-1f   0         0                             55m
    2. 要查看特定计算机构集合自定义资源 (CR) 的值,请运行以下命令

      $ oc get machineset <machineset_name> \
        -n openshift-machine-api -o yaml
      示例输出
      apiVersion: machine.openshift.io/v1beta1
      kind: MachineSet
      metadata:
        labels:
          machine.openshift.io/cluster-api-cluster: <infrastructure_id> (1)
        name: <infrastructure_id>-<role> (2)
        namespace: openshift-machine-api
      spec:
        replicas: 1
        selector:
          matchLabels:
            machine.openshift.io/cluster-api-cluster: <infrastructure_id>
            machine.openshift.io/cluster-api-machineset: <infrastructure_id>-<role>
        template:
          metadata:
            labels:
              machine.openshift.io/cluster-api-cluster: <infrastructure_id>
              machine.openshift.io/cluster-api-machine-role: <role>
              machine.openshift.io/cluster-api-machine-type: <role>
              machine.openshift.io/cluster-api-machineset: <infrastructure_id>-<role>
          spec:
            providerSpec: (3)
              ...
      1 集群基础设施 ID。
      2 默认节点标签。

      对于具有用户预配基础设施的集群,计算机构集合只能创建workerinfra类型的机器。

      3 计算机构集合 CR 的<providerSpec>部分中的值是特定于平台的。有关 CR 中<providerSpec>参数的更多信息,请参阅您提供商的示例计算机构集合 CR 配置。
  3. 通过运行以下命令创建MachineSet CR

    $ oc create -f <file_name>.yaml
验证
  • 通过运行以下命令查看计算机构集合列表

    $ oc get machineset -n openshift-machine-api
    示例输出
    NAME                                DESIRED   CURRENT   READY   AVAILABLE   AGE
    agl030519-vplxk-infra-us-east-1a    1         1         1       1           11m
    agl030519-vplxk-worker-us-east-1a   1         1         1       1           55m
    agl030519-vplxk-worker-us-east-1b   1         1         1       1           55m
    agl030519-vplxk-worker-us-east-1c   1         1         1       1           55m
    agl030519-vplxk-worker-us-east-1d   0         0                             55m
    agl030519-vplxk-worker-us-east-1e   0         0                             55m
    agl030519-vplxk-worker-us-east-1f   0         0                             55m

    当新的计算机构集合可用时,DESIREDCURRENT值匹配。如果计算机构集合不可用,请等待几分钟,然后再次运行该命令。

为集群自动缩放器标记 GPU 机器集合

您可以使用机器集合标签来指示集群自动缩放器可以使用哪些机器来部署启用 GPU 的节点。

先决条件
  • 您的集群使用集群自动缩放器。

步骤
  • 在您想要创建机器的机器集合上,以便集群自动缩放器使用这些机器来部署启用 GPU 的节点,请添加cluster-api/accelerator标签

    apiVersion: machine.openshift.io/v1beta1
    kind: MachineSet
    metadata:
      name: machine-set-name
    spec:
      template:
        spec:
          metadata:
            labels:
              cluster-api/accelerator: nvidia-t4 (1)
    1 指定您选择的标签,该标签由字母数字字符、-_.组成,并且以字母数字字符开头和结尾。例如,您可以使用nvidia-t4来表示 Nvidia T4 GPU,或使用nvidia-a10g来表示 A10G GPU。

    您必须为ClusterAutoscaler CR 中的spec.resourceLimits.gpus.type参数指定此标签的值。有关更多信息,请参阅“集群自动缩放器资源定义”。

使用 Azure 市场产品

您可以创建一个在 Azure 上运行的机器集合,该集合部署使用 Azure 市场产品的机器。要使用此产品,您必须首先获取 Azure 市场映像。获取映像时,请考虑以下几点

  • 虽然映像相同,但 Azure 市场发布者因地区而异。如果您位于北美,请指定redhat作为发布者。如果您位于 EMEA,请指定redhat-limited作为发布者。

  • 此产品包括rh-ocp-worker SKU 和rh-ocp-worker-gen1 SKU。rh-ocp-worker SKU 代表 Hyper-V 第 2 代 VM 映像。OpenShift Container Platform 中使用的默认实例类型与第 2 代兼容。如果您计划使用仅与第 1 代兼容的实例类型,请使用与rh-ocp-worker-gen1 SKU 关联的映像。rh-ocp-worker-gen1 SKU 代表 Hyper-V 第 1 代 VM 映像。

在具有 64 位 ARM 实例的集群上不支持安装使用 Azure 市场的产品的映像。

先决条件
  • 您已安装 Azure CLI 客户端(az)

  • 您的 Azure 帐户有权使用此产品,并且您已使用 Azure CLI 客户端登录到此帐户。

步骤
  1. 通过运行以下命令之一来显示所有可用的 OpenShift Container Platform 映像

    • 北美

      $  az vm image list --all --offer rh-ocp-worker --publisher redhat -o table
      示例输出
      Offer          Publisher       Sku                 Urn                                                             Version
      -------------  --------------  ------------------  --------------------------------------------------------------  -----------------
      rh-ocp-worker  RedHat          rh-ocp-worker       RedHat:rh-ocp-worker:rh-ocp-worker:4.15.2024072409              4.15.2024072409
      rh-ocp-worker  RedHat          rh-ocp-worker-gen1  RedHat:rh-ocp-worker:rh-ocp-worker-gen1:4.15.2024072409         4.15.2024072409
    • EMEA

      $  az vm image list --all --offer rh-ocp-worker --publisher redhat-limited -o table
      示例输出
      Offer          Publisher       Sku                 Urn                                                                     Version
      -------------  --------------  ------------------  --------------------------------------------------------------          -----------------
      rh-ocp-worker  redhat-limited  rh-ocp-worker       redhat-limited:rh-ocp-worker:rh-ocp-worker:4.15.2024072409              4.15.2024072409
      rh-ocp-worker  redhat-limited  rh-ocp-worker-gen1  redhat-limited:rh-ocp-worker:rh-ocp-worker-gen1:4.15.2024072409         4.15.2024072409

    使用最新的可用于计算和控制平面节点的映像。如果需要,您的虚拟机将在安装过程中自动升级。

  2. 通过运行以下命令之一来检查您的产品的映像

    • 北美

      $ az vm image show --urn redhat:rh-ocp-worker:rh-ocp-worker:<version>
    • EMEA

      $ az vm image show --urn redhat-limited:rh-ocp-worker:rh-ocp-worker:<version>
  3. 通过运行以下命令之一来查看产品的条款

    • 北美

      $ az vm image terms show --urn redhat:rh-ocp-worker:rh-ocp-worker:<version>
    • EMEA

      $ az vm image terms show --urn redhat-limited:rh-ocp-worker:rh-ocp-worker:<version>
  4. 通过运行以下命令之一来接受产品的条款

    • 北美

      $ az vm image terms accept --urn redhat:rh-ocp-worker:rh-ocp-worker:<version>
    • EMEA

      $ az vm image terms accept --urn redhat-limited:rh-ocp-worker:rh-ocp-worker:<version>
  5. 记录您的产品映像详细信息,特别是publisherofferskuversion的值。

  6. 使用您的产品映像详细信息,将以下参数添加到机器集合 YAML 文件的providerSpec部分

    Azure 市场机器的示例providerSpec映像值
    providerSpec:
      value:
        image:
          offer: rh-ocp-worker
          publisher: redhat
          resourceID: ""
          sku: rh-ocp-worker
          type: MarketplaceWithPlan
          version: 413.92.2023101700

启用 Azure 启动诊断

您可以为机器集合创建的 Azure 机器启用启动诊断。

先决条件
  • 拥有现有的 Microsoft Azure 集群。

步骤
  • 将适用于您的存储类型的diagnostics配置添加到机器集合 YAML 文件中的providerSpec字段

    • 对于 Azure 托管存储帐户

      providerSpec:
        diagnostics:
          boot:
            storageAccountType: AzureManaged (1)
      1 指定 Azure 托管存储帐户。
    • 对于 Azure 非托管存储帐户

      providerSpec:
        diagnostics:
          boot:
            storageAccountType: CustomerManaged (1)
            customerManaged:
              storageAccountURI: https://<storage-account>.blob.core.windows.net (2)
      1 指定 Azure 非托管存储帐户。
      2 <storage-account>替换为您存储帐户的名称。

      仅支持 Azure Blob 存储数据服务。

验证
  • 在 Microsoft Azure 门户上,查看机器集合部署的机器的**启动诊断**页面,并验证您可以看到该机器的串行日志。

部署机器作为抢占式虚拟机的机器集合

您可以通过创建在 Azure 上运行的计算机构集合来节省成本,该集合将机器部署为非保证的抢占式虚拟机。抢占式虚拟机利用未使用的 Azure 容量,并且比标准虚拟机更便宜。您可以将抢占式虚拟机用于可以容忍中断的工作负载,例如批处理或无状态的水平可扩展工作负载。

Azure 可以随时终止抢占式虚拟机。发生中断时,Azure 会向用户发出 30 秒的警告。当 Azure 发布终止警告时,OpenShift Container Platform 开始从受影响的实例中删除工作负载。

使用抢占式虚拟机时,可能会由于以下原因发生中断

  • 实例价格超过您的最高价格

  • 抢占式虚拟机的供应减少

  • Azure 需要收回容量

当 Azure 终止实例时,在抢占式虚拟机节点上运行的终止处理程序会删除机器资源。为了满足计算机构集合replicas数量,计算机构集合会创建一个请求抢占式虚拟机的机器。

使用计算机构集合创建抢占式虚拟机

您可以通过将spotVMOptions添加到计算机构集合 YAML 文件来启动 Azure 上的抢占式虚拟机。

步骤
  • providerSpec字段下添加以下行

    providerSpec:
      value:
        spotVMOptions: {}

    您可以选择设置spotVMOptions.maxPrice字段以限制抢占式虚拟机的成本。例如,您可以设置maxPrice: '0.98765'。如果设置了maxPrice,则此值将用作每小时最高抢占价格。如果没有设置,则最高价格默认为-1,并收取高达标准虚拟机价格的费用。

    Azure 将抢占式虚拟机的价格限制在标准价格。如果实例设置为默认maxPrice,则 Azure 不会由于定价而逐出实例。但是,由于容量限制,实例仍然可能被逐出。

强烈建议使用默认标准虚拟机价格作为maxPrice值,并且不要为抢占式虚拟机设置最高价格。

在短暂操作系统磁盘上部署机器的机器集合

您可以创建一个在 Azure 上运行的计算机集群,该集群在临时操作系统磁盘上部署虚拟机。临时操作系统磁盘使用本地虚拟机容量,而不是远程 Azure 存储。因此,此配置不会产生额外费用,并可降低读取、写入和重新映像的延迟。

其他资源

使用计算机会集群在临时操作系统磁盘上创建虚拟机

您可以通过编辑计算机会集群 YAML 文件,在 Azure 上的临时操作系统磁盘上启动虚拟机。

先决条件
  • 拥有现有的 Microsoft Azure 集群。

步骤
  1. 运行以下命令编辑自定义资源 (CR):

    $ oc edit machineset <machine-set-name>

    其中<machine-set-name> 是您想要在其上配置临时操作系统磁盘的计算机会集群。

  2. 将以下内容添加到providerSpec字段:

    providerSpec:
      value:
        ...
        osDisk:
           ...
           diskSettings: (1)
             ephemeralStorageLocation: Local (1)
           cachingType: ReadOnly (1)
           managedDisk:
             storageAccountType: Standard_LRS (2)
           ...
    1 这些行启用临时操作系统磁盘的使用。
    2 临时操作系统磁盘仅支持使用标准 LRS 存储帐户类型的 VM 或规模集实例。

    OpenShift Container Platform 中对临时操作系统磁盘支持的实现仅支持CacheDisk放置类型。请勿更改placement配置设置。

  3. 使用更新的配置创建计算机会集群:

    $ oc create -f <machine-set-config>.yaml
验证
  • 在 Microsoft Azure 门户上,查看计算机会集群部署的虚拟机的**概述**页面,并验证临时操作系统磁盘字段是否设置为操作系统缓存位置

部署带有超高速磁盘作为数据磁盘的虚拟机的机器集群

您可以创建一个在 Azure 上运行的机器集群,该集群部署带有超高速磁盘的虚拟机。超高速磁盘是高性能存储,旨在用于最苛刻的数据工作负载。

您还可以创建一个持久卷声明 (PVC),它动态绑定到由 Azure 超高速磁盘支持的存储类,并将它们挂载到 Pod。

数据磁盘不支持指定磁盘吞吐量或磁盘 IOPS 的功能。您可以使用 PVC 配置这些属性。

使用机器集群创建带有超高速磁盘的虚拟机

您可以通过编辑机器集群 YAML 文件,在 Azure 上部署带有超高速磁盘的虚拟机。

先决条件
  • 拥有现有的 Microsoft Azure 集群。

步骤
  1. 使用以下命令在openshift-machine-api命名空间中创建自定义密钥,使用worker数据密钥:

    $ oc -n openshift-machine-api \
    get secret <role>-user-data \ (1)
    --template='{{index .data.userData | base64decode}}' | jq > userData.txt (2)
    1 <role>替换为worker
    2 指定userData.txt作为新自定义密钥的名称。
  2. 在文本编辑器中,打开userData.txt文件,找到文件中的最后一个}字符。

    1. 在其前面的行上添加一个,

    2. ,之后创建一个新行,并添加以下配置详细信息:

      "storage": {
        "disks": [ (1)
          {
            "device": "/dev/disk/azure/scsi1/lun0", (2)
            "partitions": [ (3)
              {
                "label": "lun0p1", (4)
                "sizeMiB": 1024, (5)
                "startMiB": 0
              }
            ]
          }
        ],
        "filesystems": [ (6)
          {
            "device": "/dev/disk/by-partlabel/lun0p1",
            "format": "xfs",
            "path": "/var/lib/lun0p1"
          }
        ]
      },
      "systemd": {
        "units": [ (7)
          {
            "contents": "[Unit]\nBefore=local-fs.target\n[Mount]\nWhere=/var/lib/lun0p1\nWhat=/dev/disk/by-partlabel/lun0p1\nOptions=defaults,pquota\n[Install]\nWantedBy=local-fs.target\n", (8)
            "enabled": true,
            "name": "var-lib-lun0p1.mount"
          }
        ]
      }
      1 您想要作为超高速磁盘附加到节点的磁盘的配置详细信息。
      2 指定在您使用的机器集群的dataDisks节中定义的lun值。例如,如果机器集群包含lun: 0,则指定lun0。您可以通过在此配置文件中指定多个"disks"条目来初始化多个数据磁盘。如果您指定多个"disks"条目,请确保每个条目的lun值与机器集群中的值匹配。
      3 磁盘上新分区的配置详细信息。
      4 为分区指定一个标签。使用分层名称(例如lun0p1表示lun0的第一个分区)可能会有所帮助。
      5 指定分区的总大小(以 MiB 为单位)。
      6 指定格式化分区时使用的文件系统。使用分区标签指定分区。
      7 指定一个systemd单元,以便在启动时挂载分区。使用分区标签指定分区。您可以通过在此配置文件中指定多个"partitions"条目来创建多个分区。如果您指定多个"partitions"条目,则必须为每个条目指定一个systemd单元。
      8 对于Where,指定storage.filesystems.path的值。对于What,指定storage.filesystems.device的值。
  3. 使用以下命令将禁用模板值提取到名为disableTemplating.txt的文件中:

    $ oc -n openshift-machine-api get secret <role>-user-data \ (1)
    --template='{{index .data.disableTemplating | base64decode}}' | jq > disableTemplating.txt
    1 <role>替换为worker
  4. 组合userData.txt文件和disableTemplating.txt文件以创建数据密钥文件,请运行以下命令:

    $ oc -n openshift-machine-api create secret generic <role>-user-data-x5 \ (1)
    --from-file=userData=userData.txt \
    --from-file=disableTemplating=disableTemplating.txt
    1 对于<role>-user-data-x5,指定密钥的名称。将<role>替换为worker
  5. 复制现有的 Azure MachineSet自定义资源 (CR) 并编辑它,请运行以下命令:

    $ oc edit machineset <machine-set-name>

    其中<machine-set-name>是您想要在其上配置超高速磁盘的机器集群。

  6. 在指示的位置添加以下行:

    apiVersion: machine.openshift.io/v1beta1
    kind: MachineSet
    spec:
      template:
        spec:
          metadata:
            labels:
              disk: ultrassd (1)
          providerSpec:
            value:
              ultraSSDCapability: Enabled (2)
              dataDisks: (2)
              - nameSuffix: ultrassd
                lun: 0
                diskSizeGB: 4
                deletionPolicy: Delete
                cachingType: None
                managedDisk:
                  storageAccountType: UltraSSD_LRS
              userDataSecret:
                name: <role>-user-data-x5 (3)
    1 指定一个标签,用于选择此机器集群创建的节点。此过程为此值使用disk.ultrassd
    2 这些行启用超高速磁盘的使用。对于dataDisks,请包含整个节。
    3 指定前面创建的用户数据密钥。将<role>替换为worker
  7. 运行以下命令创建使用更新配置的机器集群:

    $ oc create -f <machine-set-name>.yaml
验证
  1. 运行以下命令验证虚拟机是否已创建:

    $ oc get machines

    虚拟机应处于运行中状态。

  2. 对于正在运行并已附加节点的虚拟机,运行以下命令验证分区:

    $ oc debug node/<node-name> -- chroot /host lsblk

    在此命令中,oc debug node/<node-name>在节点<node-name>上启动一个调试 shell,并使用--传递一个命令。传递的命令chroot /host提供对底层主机操作系统二进制文件的访问权限,而lsblk显示附加到主机操作系统虚拟机的块设备。

后续步骤
  • 要在 Pod 中使用超高速磁盘,请创建一个使用挂载点的工作负载。创建一个类似于以下示例的 YAML 文件:

    apiVersion: v1
    kind: Pod
    metadata:
      name: ssd-benchmark1
    spec:
      containers:
      - name: ssd-benchmark1
        image: nginx
        ports:
          - containerPort: 80
            name: "http-server"
        volumeMounts:
        - name: lun0p1
          mountPath: "/tmp"
      volumes:
        - name: lun0p1
          hostPath:
            path: /var/lib/lun0p1
            type: DirectoryOrCreate
      nodeSelector:
        disktype: ultrassd

启用超高速磁盘的机器集群的故障排除资源

使用本节中的信息来了解和恢复您可能遇到的问题。

超高速磁盘配置错误

如果在机器集群中指定了ultraSSDCapability参数的错误配置,则虚拟机配置将失败。

例如,如果ultraSSDCapability参数设置为Disabled,但在dataDisks参数中指定了超高速磁盘,则会出现以下错误消息:

StorageAccountType UltraSSD_LRS can be used only when additionalCapabilities.ultraSSDEnabled is set.
  • 要解决此问题,请验证您的机器集群配置是否正确。

不支持的磁盘参数

如果在机器集群中指定了与超高速磁盘不兼容的区域、可用区或实例大小,则虚拟机配置将失败。检查日志中是否有以下错误消息:

failed to create vm <machine_name>: failure sending request for machine <machine_name>: cannot create vm: compute.VirtualMachinesClient#CreateOrUpdate: Failure sending request: StatusCode=400 -- Original Error: Code="BadRequest" Message="Storage Account type 'UltraSSD_LRS' is not supported <more_information_about_why>."
  • 要解决此问题,请验证您是否在受支持的环境中使用此功能,以及您的机器集群配置是否正确。

无法删除磁盘

如果删除超大磁盘作为数据磁盘的操作未按预期工作,则机器将被删除,数据磁盘将成为孤儿磁盘。如果需要,必须手动删除孤儿磁盘。

为机器集启用客户管理的加密密钥

您可以向 Azure 提供加密密钥来加密静止状态下托管磁盘上的数据。您可以使用 Machine API 启用使用客户管理密钥的服务器端加密。

要使用客户管理的密钥,需要 Azure Key Vault、磁盘加密集和加密密钥。磁盘加密集必须位于云凭据操作员 (CCO) 已授予权限的资源组中。如果没有,则需要在磁盘加密集上额外授予读取器角色。

步骤
  • 在机器集 YAML 文件的providerSpec字段下配置磁盘加密集。例如:

    providerSpec:
      value:
        osDisk:
          diskSizeGB: 128
          managedDisk:
            diskEncryptionSet:
              id: /subscriptions/<subscription_id>/resourceGroups/<resource_group_name>/providers/Microsoft.Compute/diskEncryptionSets/<disk_encryption_set_name>
            storageAccountType: Premium_LRS

使用机器集为 Azure 虚拟机配置可信启动

对 Azure 虚拟机使用可信启动仅是技术预览功能。技术预览功能不受 Red Hat 生产服务级别协议 (SLA) 的支持,并且可能功能不完整。Red Hat 不建议在生产环境中使用它们。这些功能可让您抢先体验即将推出的产品功能,从而能够在开发过程中测试功能并提供反馈。

有关 Red Hat 技术预览功能的支持范围的更多信息,请参阅技术预览功能支持范围

OpenShift Container Platform 4.17 支持 Azure 虚拟机 (VM) 的可信启动。通过编辑机器集 YAML 文件,您可以配置机器集对其部署的机器使用的可信启动选项。例如,您可以将这些机器配置为使用 UEFI 安全功能(例如安全启动或专用虚拟可信平台模块 (vTPM) 实例)。

某些功能组合会导致配置无效。

表 1. UEFI 功能组合兼容性
安全启动[1] vTPM[2] 有效配置

已启用

已启用

已启用

已禁用

已启用

已省略

已禁用

已启用

已省略

已启用

已禁用

已禁用

已省略

已禁用

已省略

已省略

  1. 使用secureBoot字段。

  2. 使用virtualizedTrustedPlatformModule字段。

有关相关功能和功能的更多信息,请参阅 Microsoft Azure 关于Azure 虚拟机的可信启动的文档。

步骤
  1. 在文本编辑器中,打开现有机器集的 YAML 文件或创建一个新文件。

  2. 编辑providerSpec字段下的以下部分以提供有效的配置

    启用 UEFI 安全启动和 vTPM 的有效配置示例
    apiVersion: machine.openshift.io/v1beta1
    kind: MachineSet
    # ...
    spec:
      template:
        machines_v1beta1_machine_openshift_io:
          spec:
            providerSpec:
              value:
                securityProfile:
                  settings:
                    securityType: TrustedLaunch (1)
                    trustedLaunch:
                      uefiSettings: (2)
                        secureBoot: Enabled (3)
                        virtualizedTrustedPlatformModule: Enabled (4)
    # ...
    1 启用对 Azure 虚拟机的可信启动的使用。此值对于所有有效配置都是必需的。
    2 指定要使用的 UEFI 安全功能。此部分对于所有有效配置都是必需的。
    3 启用 UEFI 安全启动。
    4 启用 vTPM 的使用。
验证
  • 在 Azure 门户上,查看机器集部署的机器的详细信息,并验证可信启动选项是否与您配置的值匹配。

使用机器集配置 Azure 机密虚拟机

使用 Azure 机密虚拟机仅是技术预览功能。技术预览功能不受 Red Hat 生产服务级别协议 (SLA) 的支持,并且可能功能不完整。Red Hat 不建议在生产环境中使用它们。这些功能可让您抢先体验即将推出的产品功能,从而能够在开发过程中测试功能并提供反馈。

有关 Red Hat 技术预览功能的支持范围的更多信息,请参阅技术预览功能支持范围

OpenShift Container Platform 4.17 支持 Azure 机密虚拟机 (VM)。

目前不支持在 64 位 ARM 架构上使用机密 VM。

通过编辑机器集 YAML 文件,您可以配置机器集对其部署的机器使用的机密 VM 选项。例如,您可以将这些机器配置为使用 UEFI 安全功能(例如安全启动或专用虚拟可信平台模块 (vTPM) 实例)。

有关相关功能和功能的更多信息,请参阅 Microsoft Azure 关于机密虚拟机的文档。

步骤
  1. 在文本编辑器中,打开现有机器集的 YAML 文件或创建一个新文件。

  2. 编辑providerSpec字段下的以下部分

    配置示例
    apiVersion: machine.openshift.io/v1beta1
    kind: MachineSet
    # ...
    spec:
      template:
        spec:
          providerSpec:
            value:
              osDisk:
                # ...
                managedDisk:
                  securityProfile: (1)
                    securityEncryptionType: VMGuestStateOnly (2)
                # ...
              securityProfile: (3)
                settings:
                    securityType: ConfidentialVM (4)
                    confidentialVM:
                      uefiSettings: (5)
                        secureBoot: Disabled (6)
                        virtualizedTrustedPlatformModule: Enabled (7)
              vmSize: Standard_DC16ads_v5 (8)
    # ...
    1 使用机密 VM 时,指定托管磁盘的安全配置文件设置。
    2 启用 Azure VM 来宾状态 (VMGS) blob 的加密。此设置需要使用 vTPM。
    3 指定机密 VM 的安全配置文件设置。
    4 启用机密 VM 的使用。此值对于所有有效配置都是必需的。
    5 指定要使用的 UEFI 安全功能。此部分对于所有有效配置都是必需的。
    6 禁用 UEFI 安全启动。
    7 启用 vTPM 的使用。
    8 指定支持机密 VM 的实例类型。
验证
  • 在 Azure 门户上,查看机器集部署的机器的详细信息,并验证机密 VM 选项是否与您配置的值匹配。

Microsoft Azure VM 的加速网络

加速网络使用单根 I/O 虚拟化 (SR-IOV) 为 Microsoft Azure VM 提供到交换机的更直接路径。这增强了网络性能。此功能可以在安装期间或之后启用。

限制

在决定是否使用加速网络时,请考虑以下限制:

  • 加速网络仅在 Machine API 可运行的集群上受支持。

  • 虽然 Azure 工作节点的最低要求是两个 vCPU,但加速网络需要包含至少四个 vCPU 的 Azure VM 大小。要满足此要求,您可以更改机器集中的vmSize值。有关 Azure VM 大小的信息,请参阅Microsoft Azure 文档

  • 在此功能在现有 Azure 集群上启用后,只有新配置的节点会受到影响。当前运行的节点不会协调。要在所有节点上启用此功能,必须替换每个现有机器。这可以针对每台机器单独进行,也可以通过将副本缩减到零,然后缩放到所需的副本数量来完成。

使用机器集配置容量预留

OpenShift Container Platform 4.17 及更高版本支持在 Microsoft Azure 集群上使用容量预留组进行按需容量预留。

您可以将机器集配置为部署在与您定义的容量请求参数匹配的任何可用资源上。这些参数指定您要预留的 VM 大小、区域和实例数量。如果您的 Azure 订阅配额可以容纳容量请求,则部署将成功。

有关更多信息,包括此 Azure 实例类型的限制和建议用例,请参阅 Microsoft Azure 关于按需容量预留的文档。

您无法更改机器集的现有容量预留配置。要使用不同的容量预留组,必须替换机器集和以前机器集部署的机器。

先决条件
  • 您可以使用cluster-admin权限访问集群。

  • 您已安装 OpenShift CLI (oc)。

  • 您已创建容量预留组。

    有关更多信息,请参阅 Microsoft Azure 文档创建容量预留

步骤
  1. 在文本编辑器中,打开现有机器集的 YAML 文件或创建一个新文件。

  2. 编辑providerSpec字段下的以下部分

    配置示例
    apiVersion: machine.openshift.io/v1beta1
    kind: MachineSet
    # ...
    spec:
      template:
        spec:
          providerSpec:
            value:
              capacityReservationGroupID: <capacity_reservation_group> (1)
    # ...
    1 指定您希望机器集在其上部署机器的容量预留组的 ID。
验证
  • 要验证机器部署,请列出通过运行以下命令创建的机器集中的机器

    $ oc get machines.machine.openshift.io \
      -n openshift-machine-api \
      -l machine.openshift.io/cluster-api-machineset=<machine_set_name>

    其中<machine_set_name> 是计算机器集的名称。

    在输出中,验证列出机器的特性是否与您的容量预留参数匹配。

向现有的 OpenShift Container Platform 集群添加 GPU 节点

您可以复制和修改默认的计算机器集配置,以创建支持 GPU 的机器集和 Azure 云提供商的机器。

下表列出了经过验证的实例类型

vmSize NVIDIA GPU 加速器 最大 GPU 数量 架构

Standard_NC24s_v3

V100

4

x86

Standard_NC4as_T4_v3

T4

1

x86

ND A100 v4

A100

8

x86

默认情况下,Azure 订阅没有针对具有 GPU 的 Azure 实例类型的配额。客户必须请求增加上面列出的 Azure 实例系列的配额。

步骤
  1. 通过运行以下命令查看openshift-machine-api命名空间中存在的机器和机器集。每个计算机器集都与 Azure 区域内的不同可用区相关联。安装程序会自动在可用区之间平衡计算机器。

    $ oc get machineset -n openshift-machine-api
    示例输出
    NAME                              DESIRED   CURRENT   READY   AVAILABLE   AGE
    myclustername-worker-centralus1   1         1         1       1           6h9m
    myclustername-worker-centralus2   1         1         1       1           6h9m
    myclustername-worker-centralus3   1         1         1       1           6h9m
  2. 复制一个现有的计算MachineSet定义,并将结果输出到 YAML 文件,方法是运行以下命令。这将成为支持 GPU 的计算机器集定义的基础。

    $ oc get machineset -n openshift-machine-api myclustername-worker-centralus1 -o yaml > machineset-azure.yaml
  3. 查看 machineset 的内容

    $ cat machineset-azure.yaml
    示例machineset-azure.yaml文件
    apiVersion: machine.openshift.io/v1beta1
    kind: MachineSet
    metadata:
      annotations:
        machine.openshift.io/GPU: "0"
        machine.openshift.io/memoryMb: "16384"
        machine.openshift.io/vCPU: "4"
      creationTimestamp: "2023-02-06T14:08:19Z"
      generation: 1
      labels:
        machine.openshift.io/cluster-api-cluster: myclustername
        machine.openshift.io/cluster-api-machine-role: worker
        machine.openshift.io/cluster-api-machine-type: worker
      name: myclustername-worker-centralus1
      namespace: openshift-machine-api
      resourceVersion: "23601"
      uid: acd56e0c-7612-473a-ae37-8704f34b80de
    spec:
      replicas: 1
      selector:
        matchLabels:
          machine.openshift.io/cluster-api-cluster: myclustername
          machine.openshift.io/cluster-api-machineset: myclustername-worker-centralus1
      template:
        metadata:
          labels:
            machine.openshift.io/cluster-api-cluster: myclustername
            machine.openshift.io/cluster-api-machine-role: worker
            machine.openshift.io/cluster-api-machine-type: worker
            machine.openshift.io/cluster-api-machineset: myclustername-worker-centralus1
        spec:
          lifecycleHooks: {}
          metadata: {}
          providerSpec:
            value:
              acceleratedNetworking: true
              apiVersion: machine.openshift.io/v1beta1
              credentialsSecret:
                name: azure-cloud-credentials
                namespace: openshift-machine-api
              diagnostics: {}
              image:
                offer: ""
                publisher: ""
                resourceID: /resourceGroups/myclustername-rg/providers/Microsoft.Compute/galleries/gallery_myclustername_n6n4r/images/myclustername-gen2/versions/latest
                sku: ""
                version: ""
              kind: AzureMachineProviderSpec
              location: centralus
              managedIdentity: myclustername-identity
              metadata:
                creationTimestamp: null
              networkResourceGroup: myclustername-rg
              osDisk:
                diskSettings: {}
                diskSizeGB: 128
                managedDisk:
                  storageAccountType: Premium_LRS
                osType: Linux
              publicIP: false
              publicLoadBalancer: myclustername
              resourceGroup: myclustername-rg
              spotVMOptions: {}
              subnet: myclustername-worker-subnet
              userDataSecret:
                name: worker-user-data
              vmSize: Standard_D4s_v3
              vnet: myclustername-vnet
              zone: "1"
    status:
      availableReplicas: 1
      fullyLabeledReplicas: 1
      observedGeneration: 1
      readyReplicas: 1
      replicas: 1
  4. 通过运行以下命令复制machineset-azure.yaml文件

    $ cp machineset-azure.yaml machineset-azure-gpu.yaml
  5. 更新machineset-azure-gpu.yaml中的以下字段

    • .metadata.name更改为包含gpu的名称。

    • .spec.selector.matchLabels["machine.openshift.io/cluster-api-machineset"]更改为与新的.metadata.name匹配。

    • .spec.template.metadata.labels["machine.openshift.io/cluster-api-machineset"]更改为与新的.metadata.name匹配。

    • .spec.template.spec.providerSpec.value.vmSize更改为Standard_NC4as_T4_v3

      示例machineset-azure-gpu.yaml文件
      apiVersion: machine.openshift.io/v1beta1
      kind: MachineSet
      metadata:
        annotations:
          machine.openshift.io/GPU: "1"
          machine.openshift.io/memoryMb: "28672"
          machine.openshift.io/vCPU: "4"
        creationTimestamp: "2023-02-06T20:27:12Z"
        generation: 1
        labels:
          machine.openshift.io/cluster-api-cluster: myclustername
          machine.openshift.io/cluster-api-machine-role: worker
          machine.openshift.io/cluster-api-machine-type: worker
        name: myclustername-nc4ast4-gpu-worker-centralus1
        namespace: openshift-machine-api
        resourceVersion: "166285"
        uid: 4eedce7f-6a57-4abe-b529-031140f02ffa
      spec:
        replicas: 1
        selector:
          matchLabels:
            machine.openshift.io/cluster-api-cluster: myclustername
            machine.openshift.io/cluster-api-machineset: myclustername-nc4ast4-gpu-worker-centralus1
        template:
          metadata:
            labels:
              machine.openshift.io/cluster-api-cluster: myclustername
              machine.openshift.io/cluster-api-machine-role: worker
              machine.openshift.io/cluster-api-machine-type: worker
              machine.openshift.io/cluster-api-machineset: myclustername-nc4ast4-gpu-worker-centralus1
          spec:
            lifecycleHooks: {}
            metadata: {}
            providerSpec:
              value:
                acceleratedNetworking: true
                apiVersion: machine.openshift.io/v1beta1
                credentialsSecret:
                  name: azure-cloud-credentials
                  namespace: openshift-machine-api
                diagnostics: {}
                image:
                  offer: ""
                  publisher: ""
                  resourceID: /resourceGroups/myclustername-rg/providers/Microsoft.Compute/galleries/gallery_myclustername_n6n4r/images/myclustername-gen2/versions/latest
                  sku: ""
                  version: ""
                kind: AzureMachineProviderSpec
                location: centralus
                managedIdentity: myclustername-identity
                metadata:
                  creationTimestamp: null
                networkResourceGroup: myclustername-rg
                osDisk:
                  diskSettings: {}
                  diskSizeGB: 128
                  managedDisk:
                    storageAccountType: Premium_LRS
                  osType: Linux
                publicIP: false
                publicLoadBalancer: myclustername
                resourceGroup: myclustername-rg
                spotVMOptions: {}
                subnet: myclustername-worker-subnet
                userDataSecret:
                  name: worker-user-data
                vmSize: Standard_NC4as_T4_v3
                vnet: myclustername-vnet
                zone: "1"
      status:
        availableReplicas: 1
        fullyLabeledReplicas: 1
        observedGeneration: 1
        readyReplicas: 1
        replicas: 1
  6. 要验证您的更改,请运行以下命令执行原始计算定义和新的支持 GPU 的节点定义的diff

    $ diff machineset-azure.yaml machineset-azure-gpu.yaml
    示例输出
    14c14
    <   name: myclustername-worker-centralus1
    ---
    >   name: myclustername-nc4ast4-gpu-worker-centralus1
    23c23
    <       machine.openshift.io/cluster-api-machineset: myclustername-worker-centralus1
    ---
    >       machine.openshift.io/cluster-api-machineset: myclustername-nc4ast4-gpu-worker-centralus1
    30c30
    <         machine.openshift.io/cluster-api-machineset: myclustername-worker-centralus1
    ---
    >         machine.openshift.io/cluster-api-machineset: myclustername-nc4ast4-gpu-worker-centralus1
    67c67
    <           vmSize: Standard_D4s_v3
    ---
    >           vmSize: Standard_NC4as_T4_v3
  7. 从定义文件创建支持 GPU 的计算机器集,方法是运行以下命令

    $ oc create -f machineset-azure-gpu.yaml
    示例输出
    machineset.machine.openshift.io/myclustername-nc4ast4-gpu-worker-centralus1 created
  8. 通过运行以下命令查看openshift-machine-api命名空间中存在的机器和机器集。每个计算机器集都与 Azure 区域内的不同可用区相关联。安装程序会自动在可用区之间平衡计算机器。

    $ oc get machineset -n openshift-machine-api
    示例输出
    NAME                                               DESIRED   CURRENT   READY   AVAILABLE   AGE
    clustername-n6n4r-nc4ast4-gpu-worker-centralus1    1         1         1       1           122m
    clustername-n6n4r-worker-centralus1                1         1         1       1           8h
    clustername-n6n4r-worker-centralus2                1         1         1       1           8h
    clustername-n6n4r-worker-centralus3                1         1         1       1           8h
  9. 通过运行以下命令查看openshift-machine-api命名空间中存在的机器。您每个集合只能配置一台计算机器,尽管您可以扩展计算机器集以在特定区域和区域中添加节点。

    $ oc get machines -n openshift-machine-api
    示例输出
    NAME                                                PHASE     TYPE                   REGION      ZONE   AGE
    myclustername-master-0                              Running   Standard_D8s_v3        centralus   2      6h40m
    myclustername-master-1                              Running   Standard_D8s_v3        centralus   1      6h40m
    myclustername-master-2                              Running   Standard_D8s_v3        centralus   3      6h40m
    myclustername-nc4ast4-gpu-worker-centralus1-w9bqn   Running      centralus   1      21m
    myclustername-worker-centralus1-rbh6b               Running   Standard_D4s_v3        centralus   1      6h38m
    myclustername-worker-centralus2-dbz7w               Running   Standard_D4s_v3        centralus   2      6h38m
    myclustername-worker-centralus3-p9b8c               Running   Standard_D4s_v3        centralus   3      6h38m
  10. 通过运行以下命令查看现有的节点、机器和机器集。请注意,每个节点都是具有特定 Azure 区域和 OpenShift Container Platform 角色的机器定义的实例。

    $ oc get nodes
    示例输出
    NAME                                                STATUS   ROLES                  AGE     VERSION
    myclustername-master-0                              Ready    control-plane,master   6h39m   v1.30.3
    myclustername-master-1                              Ready    control-plane,master   6h41m   v1.30.3
    myclustername-master-2                              Ready    control-plane,master   6h39m   v1.30.3
    myclustername-nc4ast4-gpu-worker-centralus1-w9bqn   Ready    worker                 14m     v1.30.3
    myclustername-worker-centralus1-rbh6b               Ready    worker                 6h29m   v1.30.3
    myclustername-worker-centralus2-dbz7w               Ready    worker                 6h29m   v1.30.3
    myclustername-worker-centralus3-p9b8c               Ready    worker                 6h31m   v1.30.3
  11. 查看计算机器集列表

    $ oc get machineset -n openshift-machine-api
    示例输出
    NAME                                   DESIRED   CURRENT   READY   AVAILABLE   AGE
    myclustername-worker-centralus1        1         1         1       1           8h
    myclustername-worker-centralus2        1         1         1       1           8h
    myclustername-worker-centralus3        1         1         1       1           8h
  12. 从定义文件创建支持 GPU 的计算机器集,方法是运行以下命令

    $ oc create -f machineset-azure-gpu.yaml
  13. 查看计算机器集列表

    oc get machineset -n openshift-machine-api
    示例输出
    NAME                                          DESIRED   CURRENT   READY   AVAILABLE   AGE
    myclustername-nc4ast4-gpu-worker-centralus1   1         1         1       1           121m
    myclustername-worker-centralus1               1         1         1       1           8h
    myclustername-worker-centralus2               1         1         1       1           8h
    myclustername-worker-centralus3               1         1         1       1           8h
验证
  1. 通过运行以下命令查看您创建的机器集

    $ oc get machineset -n openshift-machine-api | grep gpu

    MachineSet 副本计数设置为1,因此会自动创建一个新的Machine对象。

    示例输出
    myclustername-nc4ast4-gpu-worker-centralus1   1         1         1       1           121m
  2. 查看通过运行以下命令创建的机器集的Machine对象

    $ oc -n openshift-machine-api get machines | grep gpu
    示例输出
    myclustername-nc4ast4-gpu-worker-centralus1-w9bqn   Running   Standard_NC4as_T4_v3   centralus   1      21m

无需为节点指定命名空间。节点定义是集群范围的。

部署节点功能发现运算符

创建支持 GPU 的节点后,您需要发现支持 GPU 的节点,以便可以对其进行调度。为此,请安装节点功能发现 (NFD) 运算符。NFD 运算符识别节点中的硬件设备功能。它解决了识别和编目基础架构节点中的硬件资源的通用问题,以便可以将其提供给 OpenShift Container Platform。

步骤
  1. 从 OpenShift Container Platform 控制台中的**OperatorHub**安装节点功能发现运算符。

  2. 在**OperatorHub**中安装 NFD 运算符后,从已安装的运算符列表中选择**节点功能发现**,然后选择**创建实例**。这将在openshift-nfd命名空间中安装nfd-masternfd-worker pod,每个计算节点一个nfd-worker pod。

  3. 通过运行以下命令验证运算符是否已安装并正在运行

    $ oc get pods -n openshift-nfd
    示例输出
    NAME                                       READY    STATUS     RESTARTS   AGE
    
    nfd-controller-manager-8646fcbb65-x5qgk    2/2      Running 7  (8h ago)   1d
  4. 在控制台中浏览到已安装的运算符,然后选择**创建节点功能发现**。

  5. 选择**创建**以构建 NFD 自定义资源。这将在openshift-nfd命名空间中创建 NFD pod,这些 pod 会轮询 OpenShift Container Platform 节点以获取硬件资源并对其进行编目。

验证
  1. 成功构建后,通过运行以下命令验证每个节点上是否正在运行 NFD pod

    $ oc get pods -n openshift-nfd
    示例输出
    NAME                                       READY   STATUS      RESTARTS        AGE
    nfd-controller-manager-8646fcbb65-x5qgk    2/2     Running     7 (8h ago)      12d
    nfd-master-769656c4cb-w9vrv                1/1     Running     0               12d
    nfd-worker-qjxb2                           1/1     Running     3 (3d14h ago)   12d
    nfd-worker-xtz9b                           1/1     Running     5 (3d14h ago)   12d

    NFD 运算符使用供应商 PCI ID 来识别节点中的硬件。NVIDIA 使用 PCI ID 10de

  2. 通过运行以下命令查看 NFD 运算符发现的 NVIDIA GPU

    $ oc describe node ip-10-0-132-138.us-east-2.compute.internal | egrep 'Roles|pci'
    示例输出
    Roles: worker
    
    feature.node.kubernetes.io/pci-1013.present=true
    
    feature.node.kubernetes.io/pci-10de.present=true
    
    feature.node.kubernetes.io/pci-1d0f.present=true

    10de出现在支持 GPU 的节点的节点功能列表中。这意味着 NFD 运算符已正确识别来自支持 GPU 的 MachineSet 的节点。

在现有的 Microsoft Azure 集群上启用加速网络

您可以通过将acceleratedNetworking添加到机器集 YAML 文件来启用 Azure 上的加速网络。

先决条件
  • 拥有一个 Machine API 正在运行的现有 Microsoft Azure 集群。

步骤
  • 将以下内容添加到providerSpec字段:

    providerSpec:
      value:
        acceleratedNetworking: true (1)
        vmSize: <azure-vm-size> (2)
    1 此行启用加速网络。
    2 指定包含至少四个 vCPU 的 Azure VM 大小。有关 VM 大小的信息,请参阅Microsoft Azure 文档
后续步骤
  • 要对当前运行的节点启用此功能,您必须替换每个现有机器。这可以针对每台机器单独进行,也可以通过将副本缩减到零,然后按比例放大到所需的副本数量来完成。

验证
  • 在 Microsoft Azure 门户上,查看机器集配置的机器的**网络**设置页面,并验证加速网络字段是否设置为已启用