nginx 入口控制器类型 nlb 带有静态 ip 给出错误 "AllocationIdNotFound"

nginx ingress controller type nlb with static ip giving error "AllocationIdNotFound"

我正在使用静态 ip 创建 nlb 类型的 nginx 入口控制器,但是对于静态 ip,我收到此错误 AllocationIdNotFound。虽然这个分配 id 是有效的,并且具有这个 id 的 eip 存在于同一区域中。 这是我在 nginx 入口控制器服务中使用的注释

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-xxxxxxxxxx, subnet-xxxxxxxxxx"
      service.beta.kubernetes.io/aws-load-balancer-eip-allocations: "eipalloc-xxxxxxxxxx, eipalloc-xxxxxxxxxx"

如果我评论 service.beta.kubernetes.io/aws-load-balancer-eip-allocations 注释,负载均衡器创建成功但没有 eips。

我做错了什么?

您需要通过 cli 或控制台手动创建 eips,并在注释中添加以逗号分隔的分配 ID,它会被创建。确保子网和 eips 的数量与您的可用区相同。

你没有做错什么,我刚遇到同样的问题。

服务解释 service.beta.kubernetes.io/aws-load-balancer-eip-allocations 注释的方式似乎存在错误。如果您删除逗号后的 space 它应该可以工作。

试试这个:

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-xxxxxxxxxx, subnet-xxxxxxxxxx"
      service.beta.kubernetes.io/aws-load-balancer-eip-allocations: "eipalloc-xxxxxxxxxx,eipalloc-xxxxxxxxxx"