協助改進此頁面
本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
若要為本使用者指南貢獻內容,請點選每個頁面右側面板中的在 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:
-
檢查節點上的
kubelet日誌。使用 SSM 或 SSH 存取節點並執行:systemctl status kubelet -l -
檢查是否有未經授權的錯誤。未經授權的錯誤可能表示缺少節點角色許可或
aws-authConfigMap 問題。確認節點的執行個體角色已在 ConfigMapaws-auth中正確映射。 -
檢查 CSR 狀態。驗證節點的憑證簽署請求是否已核准:
kubectl get csr如果 CSR 處於
Pending狀態,請核准:kubectl certificate approve node-csr-EXAMPLE
如果您的叢集進入 FAILED 狀態:
-
容量不足:確認您的 Outpost 具有足夠的虛擬化容量,可供指定執行個體類型的 6 個控制平面執行個體 (3
etcd+ 3 個 API 伺服器) 使用。執行個體類型必須在 Outpost 上槽化。 -
無法滿足分散拓撲:如果您指定
spreadLevel的host,請確認至少有 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 支援中心