本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
计算环境无效
您可能错误地配置了托管计算环境。如果是这样,计算环境就会进入INVALID状态,无法接受作业放置。以下各节描述了可能的原因以及如何根据原因进行故障排除。
不支持 Kubernetes version
当使用 CreateComputeEnvironment API 操作或 UpdateComputeEnvironmentAPI 操作以创建或更新计算环境时,可能会看到类似于以下内容的错误消息。如果在EC2Configuration中指定不受支持的Kubernetes版本,则会出现此问题。
At least one imageKubernetesVersion in EC2Configuration is not supported.
要解决此问题,请删除计算环境,然后使用支持的Kubernetes版本重新创建。
可以在 Amazon EKS 集群上执行次要版本升级。例如,即使不支持次要版本,也可以将集群从1.xx升级到1.yy。
但是,主要版本更新后,计算环境的状态可能会更改为INVALID。例如,如果将主要版本从1.xx升级到2.yy。如果不支持主要版本 AWS Batch,您将看到一条类似于以下内容的错误消息。
reason=CLIENT_ERROR - ...EKSCluster version [2.yy] is unsupported
要解决此问题,请在使用 API 操作创建或更新计算环境时指定支持的Kubernetes版本。
AWS Batch 在亚马逊上,EKS 目前支持以下Kubernetes版本:
-
1.36 -
1.35 -
1.34 -
1.33 -
1.32 -
1.31 -
1.30
实例配置文件不存在
如果指定的实例配置文件不存在,则 Amaz AWS Batch on EKS 计算环境的状态将更改为INVALID。在statusReason参数中会出现类似于以下内容的错误集。
CLIENT_ERROR - Instance profile arn:aws:iam::...:instance-profile/<name>does not exist
要解决此问题,请指定或创建有效的实例配置文件。有关更多信息,请参阅《Amazon EKS 用户指南》中的 Amazon EKS 节点 IAM 角色。
无效 Kubernetes 命名空间
如果 AWS Batch 在 Amazon EKS 上无法验证计算环境的命名空间,则计算环境状态将更改为INVALID。例如,如果命名空间不存在,则可能会出现此问题。
在statusReason参数中会出现类似于以下内容的错误消息集。
CLIENT_ERROR - Unable to validate Kubernetes Namespace
在满足以下任一条件时,可能出现此问题:
-
CreateComputeEnvironment调用中的Kubernetes命名空间字符串不存在。有关更多信息,请参阅 CreateComputeEnvironment。 -
管理命名空间所需的 Role-Based 访问控制 (RBAC) 权限配置不正确。
-
AWS Batch 无法访问亚马逊 EKS Kubernetes API 服务器终端节点。
要解决此问题,请参阅验证 aws-auth ConfigMap 配置是否正确。有关更多信息,请参阅 开始使用 AWS Batch 在亚马逊 EKS 上。
亚马逊 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:AssociateAccessPolicyeks:DeleteAccessEntry,或两者兼而有之。如果只有策略关联失败,则 AWS Batch 删除访问条目,请求因错误而失败,而不是离开计算环境INVALID。
验证您的 IAM 身份UpdateComputeEnvironment是否调用CreateComputeEnvironment并被允许调 AWS Batch 用用于管理访问条目的所有 Amazon EKS 操作。前两个操作读取集群状态,其余操作管理访问条目本身。
-
eks:DescribeCluster -
eks:DescribeAccessEntry -
eks:CreateAccessEntry -
eks:AssociateAccessPolicy -
eks:DeleteAccessEntry
更新身份权限后,调用UpdateComputeEnvironment计算环境重试该操作。有关 AWS Batch 所需权限的更多信息,请参阅所需的权限。
已删除的计算环境
假设您在删除亚马逊 EKS 计算环境中连接的集群之前删除 AWS Batch 了亚马逊 EKS 集群。然后,计算环境状态更改为INVALID。在这种情况下,如果使用相同的名称重新创建 Amazon EKS 集群,则计算环境将无法正常运行。
要解决此问题,请删除并 AWS Batch 在 Amazon EKS 上重新创建计算环境。
节点未加入 Amazon EKS 集群
AWS Batch 在亚马逊上,如果EKS确定并非所有节点都加入了亚马逊 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 安全组要求和注意事项。
注意
在 Personal Health Dashboard (PHD) 中也可能会出现错误通知。