eksctl delete cluster --region=us-west-2 --name=myeks-2
[ℹ] using region us-west-2
[ℹ] deleting EKS cluster "myeks-2"
[ℹ] cleaning up LoadBalancer services
[✖] cannot delete orphan ELB Security Groups: cannot delete security group k8s-elb-aaa: DependencyViolation: resource sg-yyy has a dependent object
我创建了一个 EKS 集群,我掌舵安装了一些东西,现在我想把它吹走,然后重新创建,然后再试一次。似乎有一个孤儿ENI + SG无法删除,我不明白为什么。
aws ec2 delete-security-group --group-id "sg-yyy"
调用删除安全组操作时出错(依赖项冲突(:资源 sg-yyy 具有依赖对象
我可以找到一个引用此安全组的网络接口:
aws ec2 describe-network-interfaces --filters Name=group-id,Values=sg-yyy | jq '.NetworkInterfaces[].NetworkInterfaceId'
如果我尝试删除它,我会得到
aws ec2 delete-network-interface --network-interface-id eni-xxx
调用 DeleteNetworkInterface 操作时出错 (InvalidParameterValue(:网络接口 'eni-xxx' 当前正在使用中。
如果我这样做:
aws ec2 describe-instances > instances.json
aws ec2 describe-nat-gateways > nat-gateways.json
aws ec2 describe-network-acls > network-acls.json
aws ec2 describe-network-interfaces > network-interfaces.json
aws ec2 describe-security-groups > security-groups.json
然后grep eni-xxx *.json
和grep sg-yyy *.json
,我得到三个结果:两个实体结果本身和一个从 eni-xxx 到 sg-yyy 的引用。也没有 EC2 实例引用...我不确定如何解决这个问题。
仅供参考,我没有使用此 EKS 集群做任何自定义 AWS 工作。没有自定义联网或 AWS 命令。我只是希望创建和删除/重新创建测试集群,并正在尝试解决此阻塞错误。
解决方案是使用安全组手动删除ELB:
aws elb describe-load-balancers | jq '.LoadBalancerDescriptions[] | select (.SecurityGroups[] | contains("sg-yyy")) | .LoadBalancerName'
aws elb delete-load-balancer --load-balancer-name <load-balancer-name>