删除集群 - Amazon EKS
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 AWS 服务入门

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

删除集群

使用完 Amazon EKS 集群后,应删除与其关联的资源,这样一来,便不会产生任何不必要的费用。

重要

如果集群中具有与负载均衡器关联的有效服务,则必须先删除这些服务,然后再删除集群,以便正确删除负载均衡器。否则,VPC 中可能有阻止您删除 VPC 的孤立资源。

您可以使用下面的删除群集:eksctl、AWS 管理控制台或 AWS CLI。选择带有要用于删除集群的工具名称的选项卡。

eksctl

要删除 Amazon EKS 群集和节点eksctl

此过程需要 eksctl 版本 0.47.0 或更高版本。可以使用以下命令来查看您的 版本:

eksctl version

有关安装或升级 eksctl 的更多信息,请参阅安装或升级 eksctl

  1. 列出集群中运行的所有服务。

    kubectl get svc --all-namespaces
  2. 删除具有关联的 EXTERNAL-IP 值的任何服务。这些服务的前面配置了一个弹性负载均衡器,您必须从 Kubernetes 中将其删除才能释放负载均衡器和关联资源。

    kubectl delete svc <service-name>
  3. 使用以下命令(将 <prod> 替换为您的集群名称)删除集群及其关联的节点。

    eksctl delete cluster --name <prod>

    输出:

    [ℹ] using region <region-code> [ℹ] deleting EKS cluster "prod" [ℹ] will delete stack "eksctl-prod-nodegroup-standard-nodes" [ℹ] waiting for stack "eksctl-prod-nodegroup-standard-nodes" to get deleted [ℹ] will delete stack "eksctl-prod-cluster" [✔] the following EKS cluster resource(s) for "prod" will be deleted: cluster. If in doubt, check CloudFormation console
AWS Management Console

使用 AWS 管理控制台删除 Amazon EKS 集群

  1. 列出集群中运行的所有服务。

    kubectl get svc --all-namespaces
  2. 删除具有关联的 EXTERNAL-IP 值的任何服务。这些服务的前面配置了一个弹性负载均衡器,您必须从 Kubernetes 中将其删除才能释放负载均衡器和关联资源。

    kubectl delete svc <service-name>
  3. 删除所有节点组和 Fargate 配置文件。

    1. 从打开 Amazon EKS 控制台https://console.aws.amazon.com/eks/home#/clusters

    2. 在左侧导航窗格中,选择集群,然后在集群的选项卡列表中,选择要删除的集群的名称。

    3. 选择配置” 选项卡。在存储库的计算选项卡上,选择要删除的节点组,选择Delete中,输入节点组的名称,然后选择Delete。删除集群中的所有节点组。

      注意

      只会列出托管节点组

    4. 选择Fargate 配置文件要删除,请选择Delete,输入配置文件的名称,然后选择Delete。删除集群中的所有 Fargate 配置文件。

  4. 删除所有自行管理的 AWS CloudFormation 堆栈。

    1. 打开 AWS CloudFormation 控制台 (https://console.aws.amazon.com/cloudformation)。

    2. 选择要删除的节点堆栈,然后依次选择操作删除堆栈

    3. Delete Stack (删除堆栈) 确认屏幕上,选择 Yes, Delete (是,删除)。删除集群中的所有自行管理的节点堆栈。

  5. 请删除集群。

    1. 从打开 Amazon EKS 控制台https://console.aws.amazon.com/eks/home#/clusters

    2. 选择要删除的集群并选择 Delete (删除)

    3. 在删除集群确认屏幕上,选择 Delete (删除)

  6. (可选)删除 VPC AWS CloudFormation 堆栈。

    1. 选择要删除的 VPC 堆栈并选择 Actions (操作),然后选择 Delete Stack (删除堆栈)

    2. Delete Stack (删除堆栈) 确认屏幕上,选择 Yes, Delete (是,删除)

AWS CLI

使用 AWS CLI 删除 Amazon EKS 集群

  1. 列出集群中运行的所有服务。

    kubectl get svc --all-namespaces
  2. 删除具有关联的 EXTERNAL-IP 值的任何服务。这些服务的前面配置了一个弹性负载均衡器,您必须从 Kubernetes 中将其删除才能释放负载均衡器和关联资源。

    kubectl delete svc <service-name>
  3. 删除所有节点组和 Fargate 配置文件。

    1. 使用以下命令列出集群中的节点组。

      aws eks list-nodegroups --cluster-name <my-cluster>
      注意

      只会列出托管节点组

    2. 使用以下命令删除每个节点组。删除集群中的所有节点组。

      aws eks delete-nodegroup --nodegroup-name <my-nodegroup> --cluster-name <my-cluster>
    3. 使用以下命令列出集群中的 Fargate 配置文件。

      aws eks list-fargate-profiles --cluster-name <my-cluster>
    4. 使用以下命令删除每个 Fargate 配置文件。删除集群中的所有 Fargate 配置文件。

      aws eks delete-fargate-profile --fargate-profile-name <my-fargate-profile> --cluster-name <my-cluster>
  4. 删除所有自行管理的 AWS CloudFormation 堆栈。

    1. 使用以下命令列出您的 AWS CloudFormation 堆栈。在生成的输出中查找节点模板名称。

      aws cloudformation list-stacks --query "StackSummaries[].StackName"
    2. 使用以下命令(将 <node-stack> 替换为节点堆栈名称)删除每个节点堆栈。删除集群中的所有自行管理的节点堆栈。

      aws cloudformation delete-stack --stack-name <node-stack>
  5. 使用以下命令(将 <my-cluster> 替换为您的集群名称)删除集群。

    aws eks delete-cluster --name <my-cluster>
  6. (可选)删除 VPC AWS CloudFormation 堆栈。

    1. 使用以下命令列出您的 AWS CloudFormation 堆栈。在生成的输出中查找 VPC 模板名称。

      aws cloudformation list-stacks --query "StackSummaries[].StackName"
    2. 使用以下命令(将 <my-vpc-stack> 替换为您的 VPC 堆栈名称)删除 VPC 堆栈。

      aws cloudformation delete-stack --stack-name <my-vpc-stack>