全部產品
Search
文件中心

Container Service for Kubernetes:調度負載至FPGA節點

更新時間:Jun 19, 2024

在使用Kubernetes叢集實現FPGA計算時,為了有效利用FPGA裝置,可根據需要將應用調度到具有FPGA裝置的節點上。本文介紹根據FPGA節點標籤進行節點調度。

前提條件

背景資訊

阿里雲Kubernetes在部署FPGA節點的時候會發現FPGA的屬性,並且作為NodeLabel資訊暴露給您,擁有如下優勢:

  • 可以快速篩選FPGA節點。

  • 部署時可以作為調度條件使用。

步驟一:查看FPGA節點的標籤

方式一:通過控制台查看FPGA節點的標籤

  1. 登入Container Service管理主控台

  2. 在控制台左側導覽列,單擊叢集

  3. 叢集列表頁面,單擊目的地組群名稱或者目的地組群右側操作列下的詳情

  4. 在叢集管理頁左側導覽列,選擇節點管理 > 節點

  5. 節點列表頁面中,選擇FPGA節點,單擊操作列的更多 > 詳情

    查看FPGA節點的標籤。

    節點詳情

方式二:通過kubectl命令查看FPGA節點的標籤

  1. 執行以下命令查看FPGA節點詳情。

    kubectl get nodes

    預期輸出:

    NAME                       STATUS   ROLES    AGE     VERSION
    cn-beijing.192.168.XX.X1   Ready    <none>   3h51m   v1.18.8-aliyun.1
    cn-beijing.192.168.XX.X2   Ready    <none>   3h41m   v1.18.8-aliyun.1             
  2. 選擇一個FPGA節點,執行以下命令查看該FPGA節點的標籤。

    kubectl describe node cn-beijing.192.168.XX.X2

    預期輸出:

    Name:               cn-beijing.192.168.XX.X2
    Roles:              <none>
    Labels:             ack.aliyun.com=c05888610e***
                        alibabacloud.com/nodepool-id=npfda879b6***
                        beta.kubernetes.io/arch=amd64
                        beta.kubernetes.io/instance-type=ecs.f3-c4f1.xlarge
                        beta.kubernetes.io/os=linux
                        failure-domain.beta.kubernetes.io/region=cn-beijing
                        failure-domain.beta.kubernetes.io/zone=cn-beijing-h
                        fpga.k8s.aliyun.com=f3
                        kubernetes.io/arch=amd64
                        kubernetes.io/hostname=cn-beijing.192.168.XX.X2
                        kubernetes.io/os=linux
                        node.kubernetes.io/instance-type=ecs.f3-c4f1.xlarge
                        topology.diskplugin.csi.alibabacloud.com/zone=cn-beijing-h
                        topology.kubernetes.io/region=cn-beijing
                        topology.kubernetes.io/zone=cn-beijing-h

    從預期輸出可得,該FPGA節點包含節點標籤(NodeLabel)fpga.k8s.aliyun.com=f3,下方樣本使用該節點標籤實現應用調度。

步驟二:調度應用到FPGA節點

  1. 登入Container Service管理主控台

  2. 在控制台左側導覽列,單擊叢集

  3. 叢集列表頁面,單擊目的地組群名稱或者目的地組群右側操作列下的詳情

  4. 在叢集管理頁左側導覽列,選擇工作負載 > 無狀態

  5. 無狀態頁面中,單擊使用YAML建立資源

  6. 選擇自訂樣本模板,將以下樣本複製到模板中。

    apiVersion: batch/v1
    kind: Job
    metadata:
      name: fpga-run-task1
    spec:
      backoffLimit: 0
      completions: 1
      parallelism: 1
      template:
        spec:
          nodeSelector:
            fpga.k8s.aliyun.com: f3
          containers:
          - image: <your image>
            imagePullPolicy: Always
            name: fpga-run-task1
            resources:
              limits:
                xilinx.com/fpga-aliyun-f3: 1
            securityContext:
              privileged: true
    說明

    <your image>替換為您自訂的應用鏡像地址。

  7. 單擊建立

    在叢集管理頁左側導覽列選擇工作負載 > 容器組

    在容器組列表中,您可看到樣本的Pod(容器組)已被成功調度到對應的節點上,從而實現基於FPGA節點標籤的靈活調度。