Complete a 3 Question Survey and Earn a re:Post Badge
Help improve AWS Support Official channel in re:Post and share your experience - complete a quick three-question survey to earn a re:Post badge!
為什麼我的 Amazon EKS 節點群組處於降級狀態?
我的 Amazon Elastic Kubernetes Service (Amazon EKS) 叢集中的受管節點群組處於「降級」狀態。
解決方法
根據您在 NodegroupHealth 中收到的錯誤訊息,執行下列疑難排解動作。
AccessDenied
當 Amazon EKS 或某個受管節點無法在 Kubernetes 叢集 API 伺服器中進行驗證或授權時,就會發生 AccessDenied 錯誤。您會收到類似以下範例的錯誤:
「您的工作節點無權存取叢集。確認節點執行個體角色是否存在,且在 aws-auth ConfigMap 中正確設定。」
若要對此問題進行疑難排解,請執行下列命令以確認 aws-auth configmap 中的節點執行個體角色權限是否正確:
kubectl get configmap aws-auth -n kube-system -o yaml
或者,確認您已將節點角色正確對應到存取項目。
您的工作節點執行個體角色必須存在並正確設定。請確認節點角色僅對應到 system:bootstrappers 或 system:nodes。將節點角色對應到 system:masters 並不是最佳做法。
當對受管節點群組執行作業的角色沒有 eks:node-manager ClusterRole 或** ClusterRoleBinding** 權限時,您也會收到 AccessDenied 錯誤。若要對此問題進行疑難排解,請更新您的角色權限。
如果您使用私有的 Amazon Machine Image (AMI) 來啟動受管節點群組,則可能會收到未獲授權使用映像檔錯誤訊息。當 AWS 推出新的 Windows AMI 時,AWS 會將所有早於 4 個月的 AMI 設為私有。若要對此問題進行疑難排解,請參閱未獲授權使用映像檔。
AmiIdNotFound
當 Amazon EKS 找不到與啟動範本關聯的 AMI ID 時,就會發生 AmiIdNotFound 錯誤。您會收到類似以下範例的錯誤:
「AmiIdNotFound: ami id‘[ami-0cxx]’不存在」
若要對此問題進行疑難排解,請確定您已新增至自訂啟動範本的 AMI ID 存在。此外,請確定您已將其與 AWS 帳戶共用。
AutoScalingGroupNotFound
當 Amazon EKS 找不到與受管節點群組相關聯的 Amazon Elastic Compute Cloud (EC2) Auto Scaling 群組時,就會發生 AutoScalingGroupNotFound 錯誤。您會收到類似以下範例的錯誤:
「AutoScalingGroupNotFound - 找不到 Amazon AutoScalingGroup ASG 名稱。」
若要對此問題進行疑難排解,請確定您沒有刪除與受管節點群組相關聯的 EC2 Auto Scaling 群組。如果您不小心刪除了 EC2 Auto Scaling 群組,請建立具有相同名稱的 EC2 Auto Scaling 群組。等待幾分鐘,然後檢查節點群組是否恢復到作用中狀態。
ClusterUnreachable
當 Amazon EKS 或您的受管節點無法與 Kubernetes 叢集 API 伺服器通訊時,就會發生 ClusterUnreachable 錯誤。您會收到類似以下範例的錯誤:
「Ec2SecurityGroupNotFound 您必須使用有效且完整格式的啟動範本。VPC 'vpc-0a8cxx' 中不存在安全群組 'sg-09fxx'」
此錯誤通常是由於網路中斷或 API 伺服器在提交請求時逾時所造成的。如果您的 etcd 資料庫大小超出 8 GB 的配額,也會發生此錯誤。若要對此問題進行疑難排解,請參閱管理 Amazon EKS 叢集上的 etcd 資料庫大小。此外,請確保核心附加元件 (例如 kube-proxy、Amazon Virtual Private Cloud (Amazon VPC) CNI 和 CoreDNS) 都保持最新版本。
AutoScalingGroupInvalidConfiguration
當受管節點群組的 EC2 Auto Scaling 群組設定不正確時,就會發生 AutoScalingGroupInvalidConfiguration 錯誤。您會收到類似以下範例的錯誤:
「AutoScalingGroupInvalidConfiguration: Amazon AutoScalingGroup ASG 名稱所使用的子網路 ([錯誤的子網路 ID 1、錯誤的子網路 ID 2、錯誤的子網路 ID 3]) 不符合 Amazon EKS 的預期設定。預期的子網路為:([正確的子網 ID 1、正確的子網 ID 2、正確的子網 ID 3])。」
若要對此問題進行疑難排解,請找出並移除對 EC2 Auto Scaling 群組的變更。請確定關聯的子網路沒有變更。更新與節點群組相關聯的 EC2 Auto Scaling,以使用錯誤訊息中列出的子網路。
手動更新與受管節點群組相關聯的 EC2 Auto Scaling 群組並不是最佳做法。僅應在還原您先前所做的手動變更時,才進行手動修改。
Ec2SecurityGroupNotFound
當 Amazon EKS 找不到叢集安全群組時,就會發生 Ec2SecurityGroupNotFound 錯誤。您會收到類似以下範例的錯誤:
「Ec2SecurityGroupNotFound 找不到節點群組名稱的 Amazon EC2 安全群組 sg-04f3xx。」
如果您收到此錯誤訊息,您將無法再使用處於降級狀態的受管節點群組。而是必須啟動一個新的節點群組。然後,排空並刪除先前的節點群組。如需如何排空節點群組的詳細資訊,請參閱 Kubernetes 網站上的安全排空節點。
Ec2LaunchTemplateNotFound
當受管節點群組的 Amazon Elastic Compute Cloud (Amazon EC2) 啟動範本與 Amazon EKS 建立的版本不符時,就會發生 Ec2LaunchTemplateNotFound 錯誤。您會收到類似以下範例的錯誤:
「找不到 Amazon EC2 啟動範本 lt-0cdac3xxf 版本號碼。」
Amazon EKS 會使用與基礎受管 EC2 Auto Scaling 群組相關聯的受管啟動範本來部署受管群組。
如果您不小心刪除啟動範本,那麼最佳做法是啟動新的節點群組。然後,排空並刪除先前的節點群組。如需如何排空節點群組的詳細資訊,請參閱 Kubernetes 網站上的安全排空節點。
手動更新與受管節點群組相關聯的 EC2 Auto Scaling 群組並不是最佳做法。僅應在還原您先前所做的手動變更時,才進行手動修改
Ec2LaunchTemplateVersionMismatch
當受管節點群組的 EC2 Auto Scaling 群組啟動範本版本與 Amazon EKS 建立的版本不符時,就會發生 Ec2LaunchTemplateVersionMismatch 錯誤。您會收到類似以下範例的錯誤:
「Amazon EC2 啟動範本:lt-0cdacxx 具有與您 Autoscaling 群組相關聯的新版本 (號碼),但該版本並非由 Amazon EKS 管理。預期的啟動範本版本為:(號碼) lt-0cdac39f3axx。」
Amazon EKS 一律使用受管啟動範來本部署受管節點群組。如果您未提供啟動範本,Amazon EKS 會自動使用您帳戶的預設值建立一個範本。修改自動產生的範本並不是最佳做法。您也無法直接更新不使用自訂啟動範本的現有節點群組。而是必須使用自訂啟動範本建立新的節點群組。
若要解決自訂啟動範本的 Ec2LaunchTemplateVersionMismatch 版本錯誤,請將啟動範本版本更新為錯誤訊息中註明的預期啟動範本版本。
如需進一步了解 Amazon EKS 節點群組啟動範本中允許的動作,請參閱啟動範本組態基礎。
AsgInstanceLaunchFailures
當您的 EC2 Auto Scaling 群組無法啟動執行個體時,就會發生 AsgInstanceLaunchFailures 錯誤。您會收到類似以下範例的錯誤:
「AsgInstanceLaunchFailures 無法啟動 Spot 執行個體。UnfulfillableCapacity - 由於您的請求組態而無法滿足容量。請調整您的請求,然後再試一次。啟動 EC2 執行個體失敗。」
當您請求的執行個體類型沒有足夠的 Spot 執行個體容量時,通常會發生此錯誤。最佳做法是混合使用來自不同 Spot 執行個體集區的執行個體類型和系列來獲取容量。如需詳細資訊,請參閱如何使用 Amazon EKS 受管節點群組啟動 Spot 執行個體,並對其進行疑難排解?
InsufficientFreeAddresses
當與受管節點群組相關聯的子網路沒有足夠的可用 IP 位址供新節點使用時,就會發生 InsufficientFreeAddresses 錯誤。您會收到類似以下範例的錯誤:
「InsufficientFreeAddresses - Amazon AutoScaling 無法啟動執行個體,因為與您 AutoScaling 群組相關聯的子網路中沒有足夠的可用位址。」
若要解決此問題,請確定與受管節點群組相關聯的子網路中有足夠的 IP 位址。如需詳細資訊,請參閱最佳化 IP 位址使用率。
IamInstanceProfileNotFound 或 IamNodeRoleNotFound
當您刪除與受管節點群組相關聯的 AWS Identity and Access Management (IAM) 角色或設定檔時,就會出現 IamInstanceProfileNotFound 或 IamNodeRoleNotFound 錯誤。若要解決此問題,請建立新 IAM 角色或設定檔,並使其名稱和設定與已刪除角色或設定檔相同。

相關內容
- 已提問 2 年前lg...
- 已提問 9 個月前lg...
- 已提問 7 個月前lg...