如何解決 Amazon EKS 中的叢集建立錯誤?

2 分的閱讀內容
0

當我使用 AWS CloudFormation 或 eksctl 佈建 Amazon Elastic Kubernetes Service (Amazon EKS) 叢集時,收到服務錯誤。

簡短描述

請考慮下列疑難排解選項:

  • 您收到一則錯誤訊息,指出目標的可用區域沒有足夠的容量來支援叢集。完成在不同的可用區域中重新建立叢集部分中的步驟。
  • 您收到一則錯誤訊息,指出資源建立失敗。完成確認您擁有建立叢集的正確 IAM 許可部分或監控您的 Amazon VPC 資源部分中的步驟。
  • 您收到一則錯誤訊息,指出在等待工作節點時,建立已逾時。完成確認您的工作節點是否可以到達控制平面 API 端點部分中的步驟。

解決方法

在不同的可用區域中重新建立叢集

如果您在容量有限的可用區域中啟動控制平面執行個體,則可能會收到類似下列內容的錯誤:

Cannot create cluster 'sample-cluster' because us-east-1d, the targeted availability zone, does not currently have sufficient capacity to support the cluster. Retry and choose from these availability zones: us-east-1a, us-east-1b, us-east-1c

若要解決上述錯誤,請使用錯誤訊息中建議的可用區域再次建立叢集

如果您使用 CloudFormation 佈建叢集,請在 Subnets 參數中新增與可用區域相符的子網路值。

-或-

如果您使用 eksctl,請使用 --zones 旗標來新增不同可用區域的值。例如:

$ eksctl create cluster 'sample-cluster' --zones us-east-1a,us-east-1b,us-east-1c

**注意:**將 sample-cluster 取代為您的叢集名稱。將 us-east-1aus-east-1bus-east-1c 取代為您的可用區域。

確認您擁有建立叢集的正確 IAM 許可

建立叢集時,請確認您擁有正確的 AWS Identity and Access Management (IAM) 許可。這包括用於 Amazon EKS 服務 IAM 角色的正確政策。

您可以使用 eksctl 建立叢集的必要資源,例如 IAM 角色和安全群組。所需的最低許可取決於您要啟動的 eksctl 組態。如需詳細資訊,請參閱 eksctl GitHub 社群的疑難排解解決方案

如果您的叢集有 IAM 許可的問題,則您可能會在 eksctl 中收到類似下列內容的錯誤:

API: iam:CreateRole User: arn:aws:iam::your-account-id:user/your-user-name is not authorized to perform: iam:CreateRole on resource: arn:aws:iam::your-account-id:role/eksctl-newtest22-cluster-ServiceRole-10NXBYLSN4ULP

若要解決上述錯誤,請檢閱 eksctl 網站上的執行 eksctl 使用案例的最低 IAM 政策。另請參閱 Amazon EKS 的身分與存取管理,以及如何對使用 IAM 政策時的存取遭拒或未經授權的操作錯誤進行疑難排解?

監控您的 Amazon VPC 資源

建立叢集時,eksctl 預設會建立新的 Amazon Virtual Private Cloud (Amazon VPC)。如果您不希望 eksctl 建立新的 Amazon VPC,則必須在組態檔案中指定自訂 Amazon VPC 和子網路。

如果您的叢集存在 Amazon VPC 限制的問題,則可能會收到下列錯誤訊息:

The maximum number of VPCs has been reached. (Service: AmazonEC2; Status Code: 400; Error Code: VpcLimitExceeded; Request ID: a12b34cd-567e-890-123f-ghi4j56k7lmn)

若要解決上述錯誤,請監控您的資源。例如,檢查您 AWS 區域中的 Amazon VPC 數量,或是您建立叢集的每個區域的網際網路閘道數目。如需詳細資訊,請參閱 Amazon VPC 配額

對於與您區域中 Amazon VPC 資源數目的資源限制有關的問題,請考慮下列其中一個選項:

(選項 1) 使用現有的 Amazon VPC 來克服資源限制

建立組態檔案,指定您要佈建叢集工作節點的 Amazon VPC 和子網路:

$ eksctl create cluster sample-cluster -f cluster.yaml

-或-

(選項 2) 請求增加服務配額以克服資源限制

請求增加佈建 eksctl 之叢集的 CloudFormation 堆疊事件中的資源的服務配額。

確認您的工作節點可以到達控制平面 API 端點

eksctl 部署您的叢集時,它會等待啟動的工作節點加入叢集並達到就緒狀態。如果您的工作節點無法到達控制平面或具有無效的 IAM 角色,則可能會收到下列錯誤:

timed out (after 25m0s) waiting for at least 4 nodes to join the cluster and become ready in "eksfbots-ng1"

若要解決上述錯誤,請讓您的工作節點加入叢集,並確認您的工作節點處於「就緒」狀態


AWS 官方
AWS 官方已更新 2 年前