如何在 AWS 上获取 kubernetes 负载均衡器服务的永久 IP 地址?

Posted

技术标签:

【中文标题】如何在 AWS 上获取 kubernetes 负载均衡器服务的永久 IP 地址?【英文标题】:How to get permanent ip address of a kubernetes load balancer service on AWS? 【发布时间】:2016-10-30 01:17:32 【问题描述】:

如何在 AWS kubernetes 集群中以永久 IP 地址发布服务,以便添加 DNS 记录?我在 kubernetes 中定义了LoadBalancer 类型的服务xxxkubectl describe service xxx 给了我类似的东西:

LoadBalancer Ingress:   aae55ce563ca611e692c10a83aef9ddc-467886677.eu-west-1.elb.amazonaws.com
Port:           <unset> 9004/TCP

确实,我可以访问 aae55ce563ca611e692c10a83aef9ddc-467886677.eu-west-1.elb.amazonaws.com:9004 上的应用程序。如何将其设为永久 IP 地址?

【问题讨论】:

【参考方案1】:

正如@error2007s 所说,您无法为 ELB 获取静态 IP。但是,如果您只想为您的 ELB 分配一个域名,那么您可以使用指向 aae55ce563ca611e692c10a83aef9ddc-467886677.eu-west-1.elb.amazonaws.com 的 CNAME 记录。如果您使用的是 Route53,您还可以定义别名以获得更好的性能。在您的托管区域下创建一个记录集,选择类型A,在“别名:”下选择是,最后从下拉框中选择您的ELB。

亚马逊记录了这两个选项:

http://docs.aws.amazon.com/ElasticLoadBalancing/latest/DeveloperGuide/using-domain-names-with-elb.html

【讨论】:

感谢详尽的回答。我没有意识到除了 A 记录还有其他选择。【参考方案2】:

对于 AWS ELB,您无法创建永久 IP 地址,因为 AWS ELB 的 IP 地址是动态的并且经常更改。因此,您必须使用“aae55ce563ca611e692c10a83aef9ddc-467886677.eu-west-1.elb.amazonaws.com”作为应用程序的规范名称。也可以参考这个问题Amazon EC2 Elastic Load Balancer: Does its IP ever Change?

【讨论】:

以上是关于如何在 AWS 上获取 kubernetes 负载均衡器服务的永久 IP 地址?的主要内容,如果未能解决你的问题,请参考以下文章

Kubernetes AWS EKS 负载均衡器未配置

带有 ALB 入口控制器的 Terraform AWS Kubernetes EKS 资源不会创建负载均衡器

通过 AWS 上的 ELB 在 Kubernetes 上公开单个 Kafka 代理

如何在 AWS Elastic Beanstalk 应用程序负载均衡器上运行的 Spring webapp 上获取请求者 IP

如何通过 Ingress AWS 应用程序负载均衡器公开 Linkerd Viz 仪表板

AWS 中的 Kubernetes 自动缩放