View a markdown version of this page

針對 Amazon SageMaker HyperPod 可觀測性附加元件進行疑難排解 - Amazon SageMaker AI

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

針對 Amazon SageMaker HyperPod 可觀測性附加元件進行疑難排解

使用以下指引來解決 Amazon SageMaker HyperPod (SageMaker HyperPod) 可觀測性附加元件的常見問題。

針對 Amazon Managed Grafana 中缺少的指標進行疑難排解

如果指標未出現在 Amazon Managed Grafana 儀表板中,請執行下列步驟來識別並解決問題。

驗證 Amazon Managed Service for Prometheus-Amazon Managed Grafana 連線

  1. 登入 Amazon Managed Grafana 主控台。

  2. 在左側窗格中,選擇所有工作區

  3. 工作區資料表中,選擇您的工作區。

  4. 在工作區的詳細資訊頁面中,選擇資料來源索引標籤。

  5. 驗證 Amazon Managed Service for Prometheus 資料來源是否存在。

  6. 檢查連線設定:

    • 確認端點 URL 正確。

    • 驗證是否已正確設定 IAM 驗證。

    • 選擇 Test connection (測試連線)。驗證狀態是否為資料來源運作中

驗證 Amazon EKS 附加元件狀態

  1. https://console.aws.amazon.com/eks/home#/clusters 開啟 Amazon EKS 主控台。

  2. 選取您的叢集。

  3. 選擇附加元件索引標籤。

  4. 驗證 SageMaker HyperPod 可觀測性附加元件是否已列出,且其狀態是否為 ACTIVE

  5. 如果狀態不是 ACTIVE,請參閱針對附加元件安裝失敗進行疑難排解

驗證 Pod 身分識別關聯

  1. https://console.aws.amazon.com/eks/home#/clusters 開啟 Amazon EKS 主控台。

  2. 選取您的叢集。

  3. 在叢集詳細資訊窗格上,選擇存取索引標籤。

  4. Pod 身分識別關聯資料表中,選擇具有下列屬性值的關聯:

    • 命名空間hyperpod-observability

    • 服務帳戶hyperpod-observability-operator-otel-collector

    • 附加元件amazon-sagemaker-hyperpod-observability

  5. 確定連接至此關聯的 IAM 角色具有下列許可。

    JSON
    { "Version":"2012-10-17", "Statement": [ { "Sid": "PrometheusAccess", "Effect": "Allow", "Action": "aps:RemoteWrite", "Resource": "arn:aws:aps:us-east-1:111122223333:workspace/workspace-ID" }, { "Sid": "CloudwatchLogsAccess", "Effect": "Allow", "Action": [ "logs:CreateLogGroup", "logs:CreateLogStream", "logs:DescribeLogGroups", "logs:DescribeLogStreams", "logs:PutLogEvents", "logs:GetLogEvents", "logs:FilterLogEvents", "logs:GetLogRecord", "logs:StartQuery", "logs:StopQuery", "logs:GetQueryResults" ], "Resource": [ "arn:aws:logs:us-east-1:111122223333:log-group:/aws/sagemaker/Clusters/*", "arn:aws:logs:us-east-1:111122223333:log-group:/aws/sagemaker/Clusters/*:log-stream:*" ] } ] }
  6. 確定連接至此關聯的 IAM 角色具有下列信任政策。驗證來源 ARN 和來源帳戶是否正確。

    JSON
    { "Version":"2012-10-17", "Statement": [ { "Sid": "AllowEksAuthToAssumeRoleForPodIdentity", "Effect": "Allow", "Principal": { "Service": "pods.eks.amazonaws.com" }, "Action": [ "sts:AssumeRole", "sts:TagSession" ], "Condition": { "StringEquals": { "aws:SourceArn": "arn:aws:eks:us-east-1:111122223333:cluster/cluster-name", "aws:SourceAccount": "111122223333" } } } ] }

檢查 Amazon Managed Service for Prometheus 限流

  1. 登入 AWS 管理主控台 ,並在 https://https://console.aws.amazon.com/servicequotas/ 開啟 Service Quotas 主控台。

  2. 受管配額方塊中,搜尋並選取 Amazon Managed Service for Prometheus。

  3. 選擇每個工作區的作用中系列配額。

  4. 資源層級配額索引標籤中,選取您的 Amazon Managed Service for Prometheus 工作區。

  5. 確保使用率低於您目前的配額。

  6. 如果您已達到配額限制,請選擇左側的選項按鈕來選取您的工作區,然後選擇在資源層級請求增加

確認已啟用 KV 快取和智慧型路由

如果KVCache Metrics儀表板遺失,則未啟用功能,或未於 中提及連接埠modelMetrics。如需如何啟用此功能的詳細資訊,請參閱 中的步驟 1 和 3設定 KV 快取和智慧型路由以提升效能

如果Intelligent Router Metrics儀表板遺失,請啟用 功能使其顯示。如需如何啟用此功能的詳細資訊,請參閱 設定 KV 快取和智慧型路由以提升效能

針對附加元件安裝失敗進行疑難排解

如果可觀測性附加元件無法安裝,請使用下列步驟來診斷並解決問題。

檢查運作狀態探查狀態

  1. https://console.aws.amazon.com/eks/home#/clusters 開啟 Amazon EKS 主控台。

  2. 選取您的叢集。

  3. 選擇附加元件索引標籤。

  4. 選擇失敗的附加元件。

  5. 檢閱運作狀態問題區段。

  6. 如果運作狀態問題與憑證或 Pod 身分識別有關,請參閱驗證 Pod 身分識別關聯。同時確保 Pod 身分識別代理程式附加元件正在叢集中執行。

  7. 檢查管理員日誌中是否有錯誤。如需說明,請參閱檢閱管理員日誌

  8. 請聯絡 AWS Support 以取得問題詳細資訊。

檢閱管理員日誌

  1. 取得附加元件管理員 Pod:

    kubectl logs -n hyperpod-observability -l control-plane=hyperpod-observability-controller-manager
  2. 如有緊急問題,請聯絡 支援。

檢閱所有可觀測性 Pod

SageMaker HyperPod 可觀測性附加元件建立的所有 Pod 都位於 hyperpod-observability 命名空間中。若要取得這些 Pod 的狀態,請執行以下命令。

kubectl get pods -n hyperpod-observability

尋找狀態為 pendingcrashloopbackoff 的 Pod。執行下列命令以取得這些待定或失敗 Pod 的日誌。

kubectl logs -n hyperpod-observability pod-name

如果您在日誌中找不到錯誤,請執行下列命令來描述 Pod 並尋找錯誤。

kubectl describe -n hyperpod-observability pod pod-name

若要取得更多內容,請執行下列兩個命令來描述這些 Pod 的部署和常駐程式集。

kubectl describe -n hyperpod-observability deployment deployment-name
kubectl describe -n hyperpod-observability daemonset daemonset-name

針對卡在待定狀態的 Pod 進行疑難排解

如果您看到有 Pod 卡在 pending 狀態,請確定節點夠大,足以容納所有 Pod。若要驗證是否如此,請執行下列步驟。

  1. 在以下網址開啟 Amazon EKS 主控台:https://console.aws.amazon.com/eks/home#/clusters

  2. 選擇您的叢集。

  3. 選擇叢集的運算索引標籤。

  4. 選擇執行個體類型最小的節點。

  5. 在容量配置區段中,尋找可用的 Pod。

  6. 如果沒有可用的 Pod,則您需要較大的執行個體類型。

如有緊急問題,請聯絡 AWS 支援。

對受限執行個體群組的可觀測性進行故障診斷

使用以下指引來解決具有受限執行個體群組之叢集的特定問題。

在受限節點上未啟動的可觀測性 Pod

如果可觀測性 Pod 未在受限節點上啟動,請檢查 Pod 狀態和事件:

kubectl get pods -n hyperpod-observability -o wide kubectl describe pod pod-name -n hyperpod-observability

常見原因包括:

  • 映像提取失敗:如果受限節點上尚未允許列出可觀測性容器映像,Pod 事件可能會顯示映像提取錯誤。確保您執行的是最新版本的可觀測性附加元件。如果升級後問題仍存在,請聯絡 支援。

  • 提示容錯:確認 Pod 規格包含受限節點所需的容錯。啟用 RIG 支援時,從 版本開始的附加元件v1.0.5-eksbuild.1會自動新增此容錯。如果您使用的是舊版,請升級到最新版本。

檢視受限節點上 Pod 的日誌

kubectl logs 命令不適用於在受限節點上執行的 Pod。這是預期的限制,因為日誌串流所需的通訊路徑不適用於受限節點。

若要檢視受限節點的日誌,請使用 Amazon Managed Grafana 中的叢集日誌儀表板,直接查詢 CloudWatch Logs。您可以依執行個體 ID、日誌串流、日誌層級和任意文字搜尋來篩選,以尋找相關的日誌項目。

具有標準和受限節點的叢集中的 DNS 解析失敗

在混合叢集 (同時具有標準和受限執行個體群組的叢集) 中,當嘗試連接 Amazon Managed Service for Prometheus 或 CloudWatch 等 AWS 服務端點時,標準節點上的 Pod 可能會遇到 DNS 解析逾時。

原因:kube-dns服務具有來自標準 CoreDNS Pod 和 RIG CoreDNS Pod 的端點。由於網路隔離,標準節點 Pod 無法連線到 RIG CoreDNS 端點。當kube-proxy負載平衡從標準節點 Pod 到 RIG CoreDNS 端點的 DNS 請求時,請求會逾時。

解決方案:kube-dns服務internalTrafficPolicy: Local上設定 ,讓 Pod 僅到達其本機節點上的 CoreDNS:

kubectl patch svc kube-dns -n kube-system -p '{"spec":{"internalTrafficPolicy":"Local"}}'

套用此修補程式後,重新啟動受影響的可觀測性 Pod:

kubectl delete pods -n hyperpod-observability -l app.kubernetes.io/name=hyperpod-node-collector

來自限制節點的指標未到達 Amazon Managed Service for Prometheus

如果來自受限節點的指標未出現在您的 Amazon Managed Service for Prometheus 工作區中:

  1. 驗證執行角色許可。確定受限制執行個體群組的執行角色具有 Prometheus 工作區的aps:RemoteWrite許可。如需詳細資訊,請參閱受限執行個體群組的其他先決條件

  2. 檢查節點收集器 Pod 狀態。執行下列命令,並確認節點收集器 Pod 在受限節點上執行:

    kubectl get pods -n hyperpod-observability | grep node-collector
  3. 檢查中央收集器部署。在具有受限節點的叢集中,附加元件會為每個網路邊界部署一個中央收集器。確認每個界限都有中央收集器:

    kubectl get deployments -n hyperpod-observability | grep central-collector
  4. 檢查 Pod 事件是否有錯誤。在收集器 Pod kubectl describe上使用 來尋找錯誤事件:

    kubectl describe pod collector-pod-name -n hyperpod-observability

如果確認上述內容後問題仍存在,請聯絡 支援。

Pod 身分驗證不適用於受限的執行個體群組節點

驗證 Pod 身分識別關聯 疑難排解步驟僅適用於標準節點。在受限節點上,附加元件會使用叢集執行個體群組執行角色進行 AWS 身分驗證,而非 Amazon EKS Pod Identity。如果受限節點缺少指標,請驗證執行角色許可,而不是 Pod Identity 關聯。

Fluent Bit 未在受限節點上執行

這是預期的行為。Fluent Bit 刻意不部署在受限節點上。來自受限節點的日誌會透過 SageMaker HyperPod 平台發佈至 CloudWatch,獨立於可觀測性附加元件。使用 Amazon Managed Grafana 中的叢集日誌儀表板來檢視這些日誌。