

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

# 針對 Amazon SageMaker HyperPod 可觀測性附加元件進行疑難排解
<a name="hyperpod-observability-addon-troubleshooting"></a>

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

## 針對 Amazon Managed Grafana 中缺少的指標進行疑難排解
<a name="troubleshooting-missing-metrics"></a>

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

### 驗證 Amazon Managed Service for Prometheus-Amazon Managed Grafana 連線
<a name="verify-amp-grafana-connection"></a>

1. 登入 Amazon Managed Grafana 主控台。

1. 在左側窗格中，選擇**所有工作區**。

1. 在**工作區**資料表中，選擇您的工作區。

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

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

1. 檢查連線設定：
   + 確認端點 URL 正確。
   + 驗證是否已正確設定 IAM 驗證。
   + 選擇 **Test connection** (測試連線)。驗證狀態是否為**資料來源運作中**。

### 驗證 Amazon EKS 附加元件狀態
<a name="verify-eks-addon-status"></a>

1. 在 [https://console.aws.amazon.com/eks/home\$1/clusters](https://console.aws.amazon.com/eks/home#/clusters) 開啟 Amazon EKS 主控台。

1. 選取您的叢集。

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

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

1. 如果狀態不是 **ACTIVE**，請參閱[針對附加元件安裝失敗進行疑難排解](#troubleshooting-addon-installation-failures)。

### 驗證 Pod 身分識別關聯
<a name="verify-pod-identity-association"></a>

1. 在 [https://console.aws.amazon.com/eks/home\$1/clusters](https://console.aws.amazon.com/eks/home#/clusters) 開啟 Amazon EKS 主控台。

1. 選取您的叢集。

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

1. 在 **Pod 身分識別關聯**資料表中，選擇具有下列屬性值的關聯：
   + **命名空間**：`hyperpod-observability`
   + **服務帳戶**：`hyperpod-observability-operator-otel-collector`
   + **附加元件**：`amazon-sagemaker-hyperpod-observability`

1. 確定連接至此關聯的 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:*"
               ]
           }
       ]
   }
   ```

------

1. 確定連接至此關聯的 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 限流
<a name="check-amp-throttling"></a>

1. 登入 AWS 管理主控台 ，並在 https：//[https://console.aws.amazon.com/servicequotas/](https://console.aws.amazon.com/servicequotas/) 開啟 Service Quotas 主控台。

1. 在**受管配額**方塊中，搜尋並選取 Amazon Managed Service for Prometheus。

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

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

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

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

### 確認已啟用 KV 快取和智慧型路由
<a name="verify-caching-routing"></a>

如果`KVCache Metrics`儀表板遺失，則未啟用功能，或未於 中提及連接埠`modelMetrics`。如需如何啟用此功能的詳細資訊，請參閱 中的步驟 1 和 3[設定 KV 快取和智慧型路由以提升效能](sagemaker-hyperpod-model-deployment-deploy-ftm.md#sagemaker-hyperpod-model-deployment-deploy-ftm-cache-route)。

如果`Intelligent Router Metrics`儀表板遺失，請啟用 功能使其顯示。如需如何啟用此功能的詳細資訊，請參閱 [設定 KV 快取和智慧型路由以提升效能](sagemaker-hyperpod-model-deployment-deploy-ftm.md#sagemaker-hyperpod-model-deployment-deploy-ftm-cache-route)。

## 針對附加元件安裝失敗進行疑難排解
<a name="troubleshooting-addon-installation-failures"></a>

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

### 檢查運作狀態探查狀態
<a name="check-health-probe-status"></a>

1. 在 [https://console.aws.amazon.com/eks/home\$1/clusters](https://console.aws.amazon.com/eks/home#/clusters) 開啟 Amazon EKS 主控台。

1. 選取您的叢集。

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

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

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

1. 如果運作狀態問題與憑證或 Pod 身分識別有關，請參閱[驗證 Pod 身分識別關聯](#verify-pod-identity-association)。同時確保 Pod 身分識別代理程式附加元件正在叢集中執行。

1. 檢查管理員日誌中是否有錯誤。如需說明，請參閱[檢閱管理員日誌](#review-manager-logs)。

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

### 檢閱管理員日誌
<a name="review-manager-logs"></a>

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

   ```
   kubectl logs -n hyperpod-observability -l control-plane=hyperpod-observability-controller-manager
   ```

1. 如有緊急問題，請聯絡 支援。

## 檢閱所有可觀測性 Pod
<a name="review-all-observability-pods"></a>

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

```
kubectl get pods -n hyperpod-observability
```

尋找狀態為 `pending` 或 `crashloopbackoff` 的 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 進行疑難排解
<a name="pods-stuck-in-pending"></a>

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

1. 在以下網址開啟 Amazon EKS 主控台：[https://console.aws.amazon.com/eks/home\$1/clusters](https://console.aws.amazon.com/eks/home#/clusters)。

1. 選擇您的叢集。

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

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

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

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

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

## 對受限執行個體群組的可觀測性進行故障診斷
<a name="troubleshooting-rig-observability"></a>

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

### 在受限節點上未啟動的可觀測性 Pod
<a name="troubleshooting-rig-pods-not-starting"></a>

如果可觀測性 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 的日誌
<a name="troubleshooting-rig-viewing-logs"></a>

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

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

### 具有標準和受限節點的叢集中的 DNS 解析失敗
<a name="troubleshooting-rig-dns-resolution"></a>

在混合叢集 （同時具有標準和受限執行個體群組的叢集） 中，當嘗試連接 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
<a name="troubleshooting-rig-metrics-not-reaching-amp"></a>

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

1. **驗證執行角色許可。**確定受限制執行個體群組的執行角色具有 Prometheus 工作區的`aps:RemoteWrite`許可。如需詳細資訊，請參閱[受限執行個體群組的其他先決條件](hyperpod-observability-addon-setup.md#hyperpod-observability-addon-rig-prerequisites)。

1. **檢查節點收集器 Pod 狀態。**執行下列命令，並確認節點收集器 Pod 在受限節點上執行：

   ```
   kubectl get pods -n hyperpod-observability | grep node-collector
   ```

1. **檢查中央收集器部署。**在具有受限節點的叢集中，附加元件會為每個網路邊界部署一個中央收集器。確認每個界限都有中央收集器：

   ```
   kubectl get deployments -n hyperpod-observability | grep central-collector
   ```

1. **檢查 Pod 事件是否有錯誤。**在收集器 Pod `kubectl describe`上使用 來尋找錯誤事件：

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

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

### Pod 身分驗證不適用於受限的執行個體群組節點
<a name="troubleshooting-rig-pod-identity"></a>

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

### Fluent Bit 未在受限節點上執行
<a name="troubleshooting-rig-fluent-bit"></a>

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