我正在使用 terraform 部署 AWS 基础设施。我坚持在 EKS 节点组正在删除状态。运行状况显示未找到 IAM 角色,我再次创建了该角色并尝试从 CLI 更新节点组,它显示
“调用UpdateNodegroupVersion操作时发生错误(ResourceInUseException):节点组无法更新,因为它当前不处于Active状态”
我也无法从 CLI 和 terraform 中删除集群和节点组。在我的 terraform 脚本中,nodeGroup 的实例类型是(SPOT - t3.medium),但是当我从 CLI 检查 nodeGroup 时,我看到该实例是(按需 t3.large)。我的 terraform 代码中没有这样的配置。
main.tf:
module "vpc" {
source = "./modules/vpc"
cluster_name = var.cluster_name
}
module "eks" {
source = "./modules/eks"
cluster_name = var.cluster_name
private_subnet_ids = module.vpc.private_subnet_ids
subnet_ids = module.vpc.subnet_ids
}
module "karpenter" {
source = "./modules/karpenter"
eks-nodeName = module.eks.eks-data
eks-connect-provider-url = module.eks.aws_iam_openid_connect_provider
eks-connect-provider-arn = module.eks.aws_iam_openid_connect_provider-arn
cluster_name = module.eks.cluster_name
private-nodes = module.eks.aws_eks_node_group-private-nodes
}
nodes.tf
resource "aws_eks_node_group" "private-nodes" {
# count = var.delete_nodegroup ? 1 : 0
cluster_name = aws_eks_cluster.cluster.name
node_group_name = "private-nodes"
node_role_arn = aws_iam_role.nodes.arn
# subnet_ids = [
# aws_subnet.private-eu-west-1a.id,
# aws_subnet.private-eu-west-1b.id
# ]
subnet_ids = var.private_subnet_ids
capacity_type = "SPOT"
instance_types = ["t3.medium"]
scaling_config {
desired_size = 1
max_size = 6
min_size = 1
}
update_config {
max_unavailable = 1
}
labels = {
role = "general"
}
depends_on = [
aws_iam_role_policy_attachment.nodes-AmazonEKSWorkerNodePolicy,
aws_iam_role_policy_attachment.nodes-AmazonEKS_CNI_Policy,
aws_iam_role_policy_attachment.nodes-AmazonEC2ContainerRegistryReadOnly,
]
# Allow external changes without Terraform plan difference
lifecycle {
ignore_changes = [scaling_config[0].desired_size]
}
}
我用这个命令删除了nodeGroup
aws eks delete-nodegroup --cluster-name eks-gd360 --nodegroup-name private-nodes --region eu-west-1
我已遵循以下文档:删除托管节点组
我与 AWS 支持计费团队合作解决了这个问题,最初,他们建议购买 AWS 开发人员支持,以获得针对当前问题的开发人员帮助。我表示我相信这个问题是 AWS 内部的,他们同意进一步调查。
4 到 5 天后,支持团队采取了删除 NodeGroup 的行动,这使我能够删除 EKS 集群。
我问他们技术原因,他们是这样回答的:
这是 AWS 端的内部问题,可能由于多种原因而发生。但是,他们建议您等到当前请求完成后才能提交下一步操作。 例如:当您创建集群时,请等待其成功完成,然后再开始创建节点组。如果我们避免在请求进行过程中重叠请求,我们就可以避免再次重复此错误。
我通过 terraform destroy 销毁了资源,可能是 terraform 发生了问题。