1
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"

调用 DeleteSecurityGroup 操作时发生错误(DependencyViolation):资源 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 *.jsonand grep sg-yyy *.json,我得到三个结果:两个实体结果本身和一个从 eni-xxx 到 sg-yyy 的引用。也没有 EC2 实例在引用...我不知道如何解决这个问题。

仅供参考,我没有用这个 EKS 集群做任何自定义 AWS 的东西。没有自定义网络或 AWS 命令​​。我只是希望创建和删除/重新创建测试集群,并试图解决这个阻塞错误。

4

1 回答 1

1

解决方案是使用安全组手动删除 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>
于 2019-10-09T19:40:23.427 回答