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

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

删除集群

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

重要

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

您可以使用 eksctlAWS 管理控制台AWS CLI来删除集群。

[使用 eksctl 删除 Amazon EKS 集群和节点]

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

eksctl version

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

注意

此过程仅适用于使用 eksctl 创建的集群。

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

    kubectl get svc --all-namespaces
  2. 删除具有关联的 EXTERNAL-IP 值的任何服务。这些服务的前面配置了一个 Elastic Load Balancing 负载均衡器,您必须从 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 管理控制台删除 Amazon EKS 集群]

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

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

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

    1. Open the Amazon EKS console at https://console.amazonaws.cn/eks/home#/clusters.

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

    3. Select the Configuration tab. On the Compute tab, select a node group to delete, select Delete, enter the name of the node group, and then select Delete. 删除集群中的所有节点组。

      注意

      只会列出托管节点组

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

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

    1. https://console.amazonaws.cn/cloudformation 打开 AWS CloudFormation 控制台。

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

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

  5. 请删除集群。

    1. Open the Amazon EKS console at https://console.amazonaws.cn/eks/home#/clusters.

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

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

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

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

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

[使用 AWS CLI删除 Amazon EKS 集群]

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

    kubectl get svc --all-namespaces
  2. 删除具有关联的 EXTERNAL-IP 值的任何服务。这些服务的前面配置了一个 Elastic Load Balancing 负载均衡器,您必须从 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>