

 **協助改進此頁面** 

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

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

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

# 對使用 EC2 執行個體存放區設定的 AWS Outpost 上的本機 Amazon EKS 叢集進行故障診斷
<a name="eks-outposts-instance-store-troubleshooting"></a>

本主題涵蓋在以 EC2 執行個體存放區設定的 AWS Outposts 上使用本機 Amazon EKS 叢集時可能看到的常見錯誤，以及如何進行故障診斷。

## `kubectl` 設定 後無法運作 `kubeconfig`
<a name="eks-outposts-instance-store-troubleshooting-kubectl"></a>

如果您在執行 後看到下列錯誤`aws eks update-kubeconfig`：

```
Either parameter --cluster-name or --cluster-id must be specified.
```

或者：

```
couldn't get current server API group list: getting credentials: exec: executable aws failed with exit code 1
```

確認您的 `exec` `kubeconfig`(`~/.kube/config`) 在 args `--cluster-name`中指定 ，而不是 `--cluster-id`：

```
      args:
        - --region
        - region-code
        - eks
        - get-token
        - --cluster-name
        - my-cluster
        - --output
        - json
      command: aws
```

## 未加入叢集的節點
<a name="eks-outposts-instance-store-troubleshooting-nodes-not-joining"></a>

如果您的節點在您執行 時未顯示`kubectl get nodes`：

1.  **檢查節點上的`kubelet`日誌。**使用 SSM 或 SSH 存取節點並執行：

   ```
   systemctl status kubelet -l
   ```

1.  **檢查是否有未經授權的錯誤。**未經授權的錯誤可能表示缺少節點角色許可或 `aws-auth` ConfigMap 問題。確認節點的執行個體角色已在 ConfigMap `aws-auth` 中正確映射。

1.  **檢查 CSR 狀態。**驗證節點的憑證簽署請求是否已核准：

   ```
   kubectl get csr
   ```

   如果 CSR 處於 `Pending` 狀態，請核准：

   ```
   kubectl certificate approve node-csr-EXAMPLE
   ```

## 叢集卡在 `CREATING` 狀態
<a name="eks-outposts-instance-store-troubleshooting-creating"></a>

如果您的叢集進入 FAILED 狀態：
+  **容量不足：**確認您的 Outpost 具有足夠的虛擬化容量，可供指定執行個體類型的 6 個控制平面執行個體 (3 `etcd` \+ 3 個 API 伺服器） 使用。執行個體類型必須在 Outpost 上槽化。
+  **無法滿足分散拓撲：**如果您指定 `spreadLevel`的 `host`，請確認至少有 3 個主機已設定所選的執行個體類型。如果您指定 `rack`，請確認至少 3 個機架具有具有所選執行個體類型的主機。
+  **子網路問題：**確認您指定的子網路位於 Outpost 所在的可用區域中，且每個子網路至少有 3 個可用的 IP 地址。請參閱 [在使用 EC2 執行個體存放區設定的 AWS Outpost 上，為 Amazon EKS 本機叢集建立 VPC 和子網路](eks-outposts-instance-store-vpc-subnet-requirements.md)。

## 叢集卡在 `UPDATING` 狀態
<a name="eks-outposts-instance-store-troubleshooting-updating"></a>

如果您的叢集在 Kubernetes 版本或平台版本更新期間保持 `UPDATING` 狀態：
+  **容量不足：**在更新期間，控制平面執行個體會在重新驗證之前刪除。如果在佈建替代執行個體之前，其他工作負載耗用釋放的容量，則更新會停止。確認您的 Outpost 具有控制平面執行個體類型的可用容量。

## `etcd` 規定人數損失
<a name="eks-outposts-instance-store-troubleshooting-etcd-quorum"></a>

如果您失去執行 Kubernetes API 操作的能力，且您的 Outpost 已中斷連線：
+  `etcd` 可能已失去規定人數。如果在中斷連線期間多個`etcd`執行個體無法使用，就會發生這種情況。
+ 已在執行中的工作負載會繼續運作，但無法使用 Kubernetes API 操作。
+ 恢復連線時，Amazon EKS 會從最新的`etcd`快照復原叢集狀態。

請聯絡[AWS 支援中心](https://console.aws.amazon.com/support/home)。