本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
INVALID 運算環境
您可能未正確設定受管運算環境。如果您這麼做,運算環境會進入 INVALID 狀態,且無法接受要放置的任務。下列各節說明可能的原因,以及如何根據原因進行故障診斷。
不支援的Kubernetes版本
當您使用 CreateComputeEnvironment API 操作或 UpdateComputeEnvironmentAPI 操作來建立或更新運算環境時,您可能會看到類似以下的錯誤訊息。如果您在 中指定不支援的Kubernetes版本,就會發生此問題EC2Configuration。
At least one imageKubernetesVersion in EC2Configuration is not supported.
若要解決此問題,請刪除運算環境,然後使用支援的Kubernetes版本重新建立它。
您可以在 Amazon EKS 叢集上執行次要版本升級。例如,1.yy即使不支援次要版本,您也可以將叢集從 1.xx 升級至 。
不過,在主要版本更新INVALID之後,運算環境狀態可能會變更為 。例如,如果您執行從 1.xx升級至 的主要版本升級2.yy。如果 不支援主要版本 AWS Batch,您會看到類似以下內容的錯誤訊息。
reason=CLIENT_ERROR - ...EKSCluster version [2.yy] is unsupported
若要解決此問題,請在使用 API 操作建立或更新運算環境時指定支援的Kubernetes版本。
AWS Batch Amazon EKS 上的 目前支援下列Kubernetes版本:
-
1.36 -
1.35 -
1.34 -
1.33 -
1.32 -
1.31 -
1.30
執行個體描述檔不存在
如果指定的執行個體描述檔不存在,Amazon EKS 運算環境 AWS Batch 上的 狀態會變更為 INVALID。您可以在類似以下內容的 statusReason 參數中看到錯誤集。
CLIENT_ERROR - Instance profile arn:aws:iam::...:instance-profile/<name>does not exist
若要解決此問題,請指定或建立運作中的執行個體描述檔。如需詳細資訊,請參閱《Amazon EKS 使用者指南》中的 Amazon EKS 節點 IAM 角色。
無效的Kubernetes命名空間
如果在 Amazon EKS AWS Batch 上無法驗證運算環境的命名空間,則運算環境狀態會變更為 INVALID。例如,如果命名空間不存在,可能會發生此問題。
您可以在類似以下內容的 statusReason 參數中看到錯誤訊息集。
CLIENT_ERROR - Unable to validate Kubernetes Namespace
如果以下任何一項成立,可能會發生此問題:
-
CreateComputeEnvironment呼叫中的Kubernetes命名空間字串不存在。如需詳細資訊,請參閱 CreateComputeEnvironment。 -
管理命名空間所需的角色型存取控制 (RBAC) 許可未正確設定。
-
AWS Batch 無法存取 Amazon EKS Kubernetes API 伺服器端點。
若要解決此問題,請參閱 確認 aws-auth ConfigMap 已正確設定。如需詳細資訊,請參閱在 Amazon EKS AWS Batch 上開始使用。
Amazon EKS 存取項目設定不完整
如果在叢集上 AWS Batch 建立 Amazon EKS 存取項目,但無法完成關聯使其可供使用的存取政策,則運算環境狀態會變更為 INVALID。若要解決此問題,請授予缺少的 Amazon EKS 許可,然後重試操作。
statusReason 參數包含類似以下的錯誤訊息。
CLIENT_ERROR - Access Entry setup incomplete on cluster [my-cluster]. Retry by calling UpdateComputeEnvironment.
如果 AWS Batch 無法將存取政策與新的存取項目建立關聯,則可能會發生此狀態。 AWS Batch 則 無法刪除要復原的存取項目。一般原因是呼叫 CreateComputeEnvironment或 UpdateComputeEnvironment 的 IAM 身分不允許呼叫 eks:AssociateAccessPolicy、 eks:DeleteAccessEntry或兩者。如果只有政策關聯失敗, 會 AWS Batch 移除存取項目,而請求失敗並顯示錯誤,而不是離開運算環境INVALID。
驗證呼叫 CreateComputeEnvironment和 的 IAM 身分UpdateComputeEnvironment是否可呼叫 AWS Batch 用於管理存取項目的所有 Amazon EKS 動作。前兩個動作讀取叢集狀態,其餘動作則管理存取項目本身。
-
eks:DescribeCluster -
eks:DescribeAccessEntry -
eks:CreateAccessEntry -
eks:AssociateAccessPolicy -
eks:DeleteAccessEntry
更新身分的許可後,UpdateComputeEnvironment請在運算環境中呼叫 以重試 操作。如需 AWS Batch 所需許可的詳細資訊,請參閱 所需的許可。
已刪除的運算環境
假設您在刪除連接到 Amazon EKS 運算環境 AWS Batch 的 之前刪除 Amazon EKS 叢集。然後,運算環境狀態會變更為 INVALID。在此案例中,如果您以相同名稱重新建立 Amazon EKS 叢集,則運算環境無法正常運作。
若要解決此問題,請刪除並重新建立 Amazon EKS 運算環境 AWS Batch 。
節點不會加入 Amazon EKS 叢集
AWS Batch 如果 Amazon EKS 判斷並非所有節點都加入 Amazon EKS 叢集,則 上的 會縮減運算環境。在 AWS Batch Amazon EKS 上縮減運算環境時,運算環境狀態會變更為 INVALID。
注意
AWS Batch 不會立即變更運算環境狀態,因此您可以偵錯問題。
您可以在類似下列其中一項的 statusReason 參數中看到錯誤訊息集:
Your compute environment has been INVALIDATED and scaled down because none of the
instances joined the underlying ECS Cluster. Common issues preventing instances joining are
the following: VPC/Subnet configuration preventing communication to ECS, incorrect Instance
Profile policy preventing authorization to ECS, or customized AMI or LaunchTemplate
configurations affecting ECS agent.
Your compute environment has been INVALIDATED and scaled down because none of the
nodes joined the underlying Amazon EKS Cluster. Common issues preventing nodes joining are the
following: networking configuration preventing communication to Amazon EKS Cluster, incorrect Amazon EKS
Instance Profile or Kubernetes RBAC policy preventing authorization to Amazon EKS Cluster, customized
AMI or LaunchTemplate configurations affecting Amazon EKS/Kubernetes node bootstrap.
使用預設 Amazon EKS AMI 時,此問題最常見的原因如下:
-
執行個體角色未正確設定。如需詳細資訊,請參閱《Amazon EKS 使用者指南》中的 Amazon EKS 節點 IAM 角色。
-
子網路未正確設定。如需詳細資訊,請參閱《Amazon EKS 使用者指南》中的 Amazon EKS VPC 和子網路需求和考量事項。
-
未正確設定安全群組。如需詳細資訊,請參閱《Amazon EKS 使用者指南》中的 Amazon EKS 安全群組需求和考量事項。
注意
您也可以在個人運作狀態儀表板 (PHD) 中看到錯誤通知。