帮助改进此页面
要帮助改进本用户指南,请选择位于每个页面右侧窗格中的在 GitHub 上编辑此页面链接。
删除集群
使用完 Amazon EKS 集群后,应删除与其关联的资源,这样便不会产生任何不必要的费用。
您可以使用 eksctl
、AWS Management Console或 AWS CLI 删除集群。
注意事项
-
如果集群中具有与负载均衡器关联的有效服务,则必须先删除这些服务,然后再删除集群,以便正确删除负载均衡器。否则,VPC 中可能有阻止您删除 VPC 的孤立资源。
-
如果您因为已删除集群创建者而收到错误,请参阅这篇文章
解决。 -
适用于 Prometheus 的 Amazon 托管服务资源不在集群生命周期内,需要独立于集群进行维护。删除集群时,请务必同时删除所有适用的抓取器以停止适用的费用。有关更多信息,请参阅《Amazon Managed Service for Prometheus 用户指南》中的查找和删除抓取程序。
-
要删除连接的集群,请参阅 从 Amazon EKS 控制台注销 Kubernetes 集群
EKS 自动模式注意事项
-
所有 EKS 自动模式节点都将被删除,包括 EC2 托管式实例
-
所有负载均衡器都将被删除
有关更多信息,请参阅 禁用 EKS 自动模式。
删除集群(eksctl)
此过程需要 eksctl
版本 0.204.0
或更高版本。可以使用以下命令来查看您的版本:
eksctl version
有关安装或升级 eksctl
的说明,请参阅 eksctl
文档中的 Installation
-
列出集群中运行的所有服务。
kubectl get svc --all-namespaces
-
删除具有关联的
EXTERNAL-IP
值的任何服务。这些服务的前面配置了一个 Elastic Load Balancing 负载均衡器,您必须从 Kubernetes 中将其删除才能释放负载均衡器和关联资源。kubectl delete svc service-name
-
-
使用以下命令(将
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 控制台)
-
列出集群中运行的所有服务。
kubectl get svc --all-namespaces
-
删除具有关联的
EXTERNAL-IP
值的任何服务。这些服务的前面配置了一个 Elastic Load Balancing 负载均衡器,您必须从 Kubernetes 中将其删除才能释放负载均衡器和关联资源。kubectl delete svc service-name
-
删除所有节点组和 Fargate 配置文件。
-
打开 Amazon EKS 控制台
。 -
请在左侧导航窗格中,选择 Amazon EKS Clusters(集群),然后在集群的选项卡列表中,选择要删除的集群的名称。
-
选择 Compute(计算)选项卡,然后选择要删除的节点组。选择 Delete(删除),输入节点组的名称,然后选择 Delete(删除)。删除集群中的所有节点组。
注意
只会列出托管节点组。
-
选择要删除的 Fargate Profile(Fargate 配置文件),选择 Delete(删除),输入配置文件的名称,然后选择 Delete(删除)。删除集群中的所有 Fargate 配置文件。
-
-
删除所有自行管理的节点 AWS CloudFormation 堆栈。
-
请选择要删除的节点堆栈,然后选择 Delete(删除)。
-
在 Delete stack(删除堆栈)确认对话框中,请选择 Delete stack(删除堆栈)。删除集群中的所有自行管理的节点堆栈。
-
请删除集群。
-
打开 Amazon EKS 控制台
。 -
选择要删除的集群并选择 Delete(删除)。
-
在删除集群确认屏幕上,选择 Delete (删除)。
-
-
(可选)删除 VPC AWS CloudFormation 堆栈。
-
请选择要删除的 VPC 堆栈,然后选择 Delete(删除)。
-
在 Delete stack(删除堆栈)确认对话框中,请选择 Delete stack(删除堆栈)。
删除集群(AWS CLI)
-
列出集群中运行的所有服务。
kubectl get svc --all-namespaces
-
删除具有关联的
EXTERNAL-IP
值的任何服务。这些服务的前面配置了一个 Elastic Load Balancing 负载均衡器,您必须从 Kubernetes 中将其删除才能释放负载均衡器和关联资源。kubectl delete svc service-name
-
删除所有节点组和 Fargate 配置文件。
-
使用以下命令列出集群中的节点组。
aws eks list-nodegroups --cluster-name my-cluster
注意
只会列出托管节点组。
-
使用以下命令删除每个节点组。删除集群中的所有节点组。
aws eks delete-nodegroup --nodegroup-name my-nodegroup --cluster-name my-cluster
-
使用以下命令列出集群中的 Fargate 配置文件。
aws eks list-fargate-profiles --cluster-name my-cluster
-
使用以下命令删除每个 Fargate 配置文件。删除集群中的所有 Fargate 配置文件。
aws eks delete-fargate-profile --fargate-profile-name my-fargate-profile --cluster-name my-cluster
-
-
删除所有自行管理的节点 AWS CloudFormation 堆栈。
-
使用以下命令列出您的可用 AWS CloudFormation 堆栈。在生成的输出中查找节点模板名称。
aws cloudformation list-stacks --query "StackSummaries[].StackName"
-
使用以下命令(将
node-stack
替换为节点堆栈名称)删除每个节点堆栈。删除集群中的所有自行管理的节点堆栈。aws cloudformation delete-stack --stack-name node-stack
-
-
使用以下命令删除集群,同时将
my-cluster
替换为您的集群名称。aws eks delete-cluster --name my-cluster
-
(可选)删除 VPC AWS CloudFormation 堆栈。
-
使用以下命令列出您的可用 AWS CloudFormation 堆栈。在生成的输出中查找 VPC 模板名称。
aws cloudformation list-stacks --query "StackSummaries[].StackName"
-
使用以下命令删除 VPC 堆栈,同时将
my-vpc-stack
替换为您的 VPC 堆栈名称。aws cloudformation delete-stack --stack-name my-vpc-stack
-