如何导出AWS中关联指定EKS集群的负载均衡器列表并区分访问类型?
关联EKS集群的负载均衡器列表导出及类型区分方法
一、使用AWS CLI + kubectl获取列表
- 先配置kubectl关联目标EKS集群:
aws eks update-kubeconfig --name <你的EKS集群名称> - 查询集群内所有LoadBalancer类型的Service,提取对应的负载均衡器地址和服务名称:
kubectl get svc -o jsonpath='{range .items[?(@.spec.type=="LoadBalancer")]}{.status.loadBalancer.ingress[0].hostname}{"\t"}{.metadata.name}{"\n"}' - 进一步查询每个负载均衡器的访问类型:
输出中的kubectl get svc -o jsonpath='{range .items[?(@.spec.type=="LoadBalancer")]}{.status.loadBalancer.ingress[0].hostname}{"\n"}' | cut -d '.' -f 1 | while read lb_name; do aws elbv2 describe-load-balancers --names $lb_name --query 'LoadBalancers[*].{Name:LoadBalancerName, 访问类型:Scheme}' done访问类型字段,internet-facing代表公网访问,internal代表内网访问。
二、通过AWS控制台手动操作
- 进入AWS EKS控制台,选中目标集群
- 切换到资源标签,在服务列表里筛选类型为
LoadBalancer的条目 - 点击负载均衡器的链接跳转到ELB控制台,查看方案字段即可区分公网/内网类型
三、额外提示
- 若使用AWS Load Balancer Controller创建的ALB/NLB,上述方法同样适用,kubectl查询到的hostname对应ALB/NLB地址,再通过AWS CLI查询其Scheme属性即可
- 可将CLI输出结果保存到文件,方便后续查看:
kubectl get svc -o jsonpath='{range .items[?(@.spec.type=="LoadBalancer")]}{.status.loadBalancer.ingress[0].hostname}{"\t"}{.metadata.name}{"\n"}' > eks-linked-lbs.txt
内容的提问来源于stack exchange,提问作者Lekost93
相关产品推荐
相关产品推荐

