View a markdown version of this page

對使用 EC2 執行個體存放區設定的 AWS Outpost 上的本機 Amazon EKS 叢集進行故障診斷 - Amazon EKS

協助改進此頁面

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

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

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

對使用 EC2 執行個體存放區設定的 AWS Outpost 上的本機 Amazon EKS 叢集進行故障診斷

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

如果您在執行 後看到下列錯誤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

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

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

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

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

    kubectl get csr

    如果 CSR 處於 Pending 狀態,請核准:

    kubectl certificate approve node-csr-EXAMPLE

如果您的叢集進入 FAILED 狀態:

  • 容量不足:確認您的 Outpost 具有足夠的虛擬化容量,可供指定執行個體類型的 6 個控制平面執行個體 (3 etcd + 3 個 API 伺服器) 使用。執行個體類型必須在 Outpost 上槽化。

  • 無法滿足分散拓撲:如果您指定 spreadLevelhost,請確認至少有 3 個主機已設定所選的執行個體類型。如果您指定 rack,請確認至少 3 個機架具有具有所選執行個體類型的主機。

  • 子網路問題:確認您指定的子網路位於 Outpost 所在的可用區域中,且每個子網路至少有 3 個可用的 IP 地址。請參閱 在使用 EC2 執行個體存放區設定的 AWS Outpost 上,為 Amazon EKS 本機叢集建立 VPC 和子網路

如果您的叢集在 Kubernetes 版本或平台版本更新期間保持 UPDATING 狀態:

  • 容量不足:在更新期間,控制平面執行個體會在重新驗證之前刪除。如果在佈建替代執行個體之前,其他工作負載耗用釋放的容量,則更新會停止。確認您的 Outpost 具有控制平面執行個體類型的可用容量。

如果您失去執行 Kubernetes API 操作的能力,且您的 Outpost 已中斷連線:

  • etcd 可能已失去規定人數。如果在中斷連線期間多個etcd執行個體無法使用,就會發生這種情況。

  • 已在執行中的工作負載會繼續運作,但無法使用 Kubernetes API 操作。

  • 恢復連線時,Amazon EKS 會從最新的etcd快照復原叢集狀態。

請聯絡AWS 支援中心