首页 > 解决方案 > aws-load-balancer-eip-allocations 不起作用。在 AWS 上使用 k8s 将静态 IP 分配给 LoadBalancer 服务

问题描述

我使用 aws-load-balancer-eip-allocations 在 AWS 上使用 k8s 将静态 IP 分配给 LoadBalancer 服务。EKS 的版本是 v1.16.13。https://github.com/kubernetes/kubernetes/blob/v1.16.0/staging/src/k8s.io/legacy-cloud-providers/aws/aws.go#L208-L211的文档第 210 和 211 行说“NLB 的静态 IP 地址。仅在 elbv2 (NLB) 上支持”。我不知道elbv2是什么。我使用下面的代码。但是,我没有得到静态IP。elbv2 有问题吗?如何使用 elbv2?另请参阅https://github.com/kubernetes/kubernetes/pull/69263

apiVersion: v1
kind: Service
metadata:
  name: ingress-service
  annotations:
    service.beta.kubernetes.io/aws-load-balancer-type: "nlb"
    service.beta.kubernetes.io/aws-load-balancer-eip-allocations: "eipalloc-0187de53333555567"
    service.beta.kubernetes.io/aws-load-balancer-cross-zone-load-balancing-enabled: "true"

标签: amazon-web-serviceskubernetesamazon-ec2kubernetes-ingressaws-load-balancer

解决方案


请记住,每个子网/区域需要 1 个 EIP,默认情况下,EKS 至少使用 2 个区域。

这是一个您可能会发现有用的工作示例:

metadata:
  annotations:
    service.beta.kubernetes.io/aws-load-balancer-backend-protocol: tcp
    service.beta.kubernetes.io/aws-load-balancer-cross-zone-load-balancing-enabled: 'true'
    service.beta.kubernetes.io/aws-load-balancer-type: nlb
    service.beta.kubernetes.io/aws-load-balancer-subnets: "subnet-xxxxxxxxxxxxxxxx,subnet-yyyyyyyyyyyyyyyyy"
    service.beta.kubernetes.io/aws-load-balancer-eip-allocations: "eipalloc-wwwwwwwwwwwwwwwww,eipalloc-zzzzzzzzzzzzzzzz"

我希望这对你有用


推荐阅读