在 Amazon EKS 上管理 EFA 裝置 - Amazon EKS

協助改進此頁面

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

若要為本使用者指南貢獻內容,請點選每個頁面右側面板中的在 GitHub 上編輯此頁面連結。

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

在 Amazon EKS 上管理 EFA 裝置

Elastic Fabric Adapter (EFA) 是 Amazon EC2 執行個體的網路裝置,可為機器學習訓練和高效能運算 (HPC) 工作負載啟用高效能節點間通訊。Amazon EKS 支援 EFA 裝置外掛程式,可在 EKS 叢集中管理 EFA 裝置。

使用 EFA 介面建立 EKS 節點

當您使用 EFA 介面建立 EKS 節點時,EFA 介面會在執行個體引導期間連接。如果您需要自訂每個裝置的 EFA 組態,或為啟用 EFA 的 EC2 執行個體使用置放群組,建議您使用 EKS 受管節點群組或 EKS 自我管理節點群組。您可以使用啟動範本傳遞每個網路介面的組態。

使用 EKS Auto Mode 或 Karpenter 搭配動態佈建時,為請求 Pod 建立的執行個體vpc.amazonaws.com/efa會將所有介面設定為介面類型 EFA。EKS Auto Mode 和 Karpenter 中的靜態容量佈建目前不支援每個裝置 EFA 組態。EKS Auto Mode 和 Karpenter 目前不支援置放群組。

使用 搭配 efaEnabled設定eksctl佈建 EKS 節點時,所有介面都會設定為介面類型 EFA、建立 EFA 特定的安全群組,並在叢集上安裝 EFA 裝置外掛程式。如果您需要在使用 時自訂每個裝置的 EFA 組態eksctl,建議您使用 `eksctl 對啟動範本的支援。

搭配 EFA 使用 EKS 最佳化 AMIs

EKS 最佳化 AL2023 加速 AMIs (NVIDIA 和 Neuron) 和所有 Bottlerocket AMIs 都包含使用 EFA 所需的主機層級元件。EKS AL2023 和 Bottlerocket AMIs 不包含 EFA 裝置外掛程式,而且在部署使用 EFA 的工作負載之前,必須在叢集上單獨安裝裝置外掛程式。

安裝 EFA Kubernetes 裝置外掛程式

EFA 裝置外掛程式會將 EFA 裝置公告為vpc.amazonaws.com/efa延伸資源。您可以在容器資源請求和限制中請求 EFA 裝置。如需使用訓練工作負載設定 EFA 的完整逐步解說,請參閱 使用 Elastic Fabric Adapter 在 Amazon EKS 上執行機器學習訓練

EFA 裝置外掛程式會自動在實體 EC2 執行個體上配置在拓撲上靠近 Neuron 加速器和 NVIDIA GPUs 的 EFA 裝置。

先決條件

  • Amazon EKS 叢集。

  • 具有啟用 EFA 的 Amazon EC2 執行個體類型的節點。如需支援的執行個體類型清單,請參閱《Amazon EC2 使用者指南》中的支援的執行個體類型

  • 針對 EFA 安裝主機層級元件的節點。如果使用 EKS AL2023 加速 AMIs 或 EKS Bottlerocket AMIs,則會包含這些項目。

  • 已在命令列環境中安裝 Helm,如需詳細資訊,請參閱安裝 Helm 說明

  • kubectl 設定為與您的叢集通訊,安裝或更新 kubectl如需詳細資訊,請參閱 。

程序

  1. 新增 EKS Helm Chart 儲存庫。

    helm repo add eks https://aws.github.io/eks-charts
  2. 更新本機 Helm 儲存庫。

    helm repo update
  3. 安裝 EFA 裝置外掛程式。

    helm install efa eks/aws-efa-k8s-device-plugin -n kube-system
  4. 驗證 EFA 裝置外掛程式 DaemonSet 正在執行。

    kubectl get daemonset -n kube-system aws-efa-k8s-device-plugin-daemonset
    NAME DESIRED CURRENT READY UP-TO-DATE AVAILABLE NODE SELECTOR AGE aws-efa-k8s-device-plugin-daemonset 2 2 2 2 2 <none> 60s
  5. 確認您的節點具有可分配的 EFA 資源。

    kubectl get nodes "-o=custom-columns=NAME:.metadata.name,EFA:.status.allocatable.vpc\.amazonaws\.com/efa"
    NAME EFA ip-192-168-11-225.us-west-2.compute.internal 4 ip-192-168-24-96.us-west-2.compute.internal 4

在 Pod 中請求 EFA 裝置

若要使用裝置外掛程式請求 EFA 裝置,請在您的容器vpc.amazonaws.com/efa資源請求或限制中指定資源。

apiVersion: v1 kind: Pod metadata: name: efa-workload spec: containers: - name: app ... resources: limits: vpc.amazonaws.com/efa: 4 hugepages-2Mi: ... requests: vpc.amazonaws.com/efa: 4 hugepages-2Mi: ...