删除集群 - Amazon EKS

删除集群

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

要删除连接的集群,请参阅 从 Amazon EKS 控制台注销 Kubernetes 集群

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

  • 如果您因为已删除集群创建者而收到错误,请参阅这篇文章解决。

  • 适用于 Prometheus 的 Amazon 托管服务资源不在集群生命周期内,需要独立于集群进行维护。删除集群时,请务必同时删除所有适用的抓取器以停止适用的费用。有关更多信息,请参阅《Amazon Managed Service for Prometheus 用户指南》中的查找和删除抓取程序

您可以使用 eksctl、AWS Management Console或 AWS CLI 删除集群。

删除集群(eksctl)

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

eksctl version

有关安装或升级 eksctl 的说明,请参阅 eksctl 文档中的 Installation

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

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

      kubectl delete svc service-name
  2. 使用以下命令(将 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 控制台)

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

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

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

    1. 打开 Amazon EKS console(Amazon EKS 控制台)

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

    3. 选择 Compute(计算)选项卡,然后选择要删除的节点组。选择 Delete(删除),输入节点组的名称,然后选择 Delete(删除)。删除集群中的所有节点组。

      注意

      只会列出托管节点组

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

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

    1. 打开 AWS CloudFormation 控制台

    2. 请选择要删除的节点堆栈,然后选择 Delete(删除)。

    3. Delete stack(删除堆栈)确认对话框中,请选择 Delete stack(删除堆栈)。删除集群中的所有自行管理的节点堆栈。

  5. 请删除集群。

    1. 打开 Amazon EKS console(Amazon EKS 控制台)

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

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

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

    1. 打开 AWS CloudFormation 控制台

    2. 请选择要删除的 VPC 堆栈,然后选择 Delete(删除)。

    3. Delete stack(删除堆栈)确认对话框中,请选择 Delete stack(删除堆栈)。

删除集群(AWS CLI)

  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. 使用以下命令删除 VPC 堆栈,同时将 my-vpc-stack 替换为您的 VPC 堆栈名称。

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