如何为AWS负载均衡器分配域名?解决EKS Ingress IP变更问题
为EKS Ingress控制器分配固定IP的解决方案
核心逻辑
AWS默认的负载均衡器(NLB/ALB)会动态分配IP,要实现固定IP,需结合**弹性IP(EIP)**与支持绑定EIP的Network Load Balancer(NLB),通过AWS Load Balancer Controller的注解配置完成绑定。
操作步骤
1. 创建弹性IP(EIP)
根据EKS集群的可用区数量,为每个可用区创建至少1个EIP(确保负载均衡器在每个可用区都有固定入口):
aws ec2 allocate-address --domain vpc
记录每个EIP的Allocation ID(格式如eipalloc-xxxxxx)。
2. 配置Ingress绑定固定IP
如果你使用的是AWS官方推荐的AWS Load Balancer Controller,在Ingress资源中添加以下注解:
apiVersion: networking.k8s.io/v1 kind: Ingress metadata: name: my-ingress annotations: # 指定使用NLB(仅NLB支持绑定EIP) alb.ingress.kubernetes.io/load-balancer-type: nlb # 设置为面向公网 alb.ingress.kubernetes.io/scheme: internet-facing # 绑定预先创建的EIP,多个可用区的EIP用逗号分隔 service.beta.kubernetes.io/aws-load-balancer-eip-allocations: eipalloc-xxxxxx,eipalloc-yyyyyy spec: rules: # 你的Ingress路由规则...
3. 验证配置生效
- 应用Ingress配置:
kubectl apply -f your-ingress.yaml - 查看NLB的IP地址,确认已绑定指定的EIP:
aws elbv2 describe-load-balancers --names <nlb-name> --query 'LoadBalancers[0].AvailabilityZones[*].LoadBalancerAddresses[*].IpAddress'
额外提示
- 若使用Application Load Balancer(ALB),无法直接绑定固定IP,建议直接使用ALB的CNAME记录作为DNS解析目标,ALB的域名是永久固定的,AWS会自动维护背后的IP变更。
- 确保EIP与EKS集群处于同一VPC,且未被其他资源占用。
内容的提问来源于stack exchange,提问作者Sten Ka Razin
相关产品推荐
相关产品推荐

