EKS Ingress(用于 ALB)在部署超过 3 个 Ingress 时没有端点

EKS Ingress (for ALB) gets no endpoint when deploying more than 3 Ingresses

我在入口控制器中使用 AWS ALB 部署 3 个以上的应用程序时偶然发现了这个奇怪的限制。

最多 3 个应用程序,没有问题,当配置第 4 个入口时,它没有获得端点:

然而,负载均衡器 (ALB) 已按预期配置:

是否有我不知道的 3 个 Ingress 的限制?还是我在配置的某处设置了这个限制?

"failing" ingress 的 kubectl describe ingress 的输出(注意丢失的地址 - 其他 3 个 ingresses 都有地址):

Name:             some-ingress
Namespace:        default
Address:          
Default backend:  default-http-backend:80 (<none>)
Rules:
  Host  Path  Backends
  ----  ----  --------
  *     
        /    ssl-redirect-default:use-annotation (<none>)
        /*   ssl-redirect:use-annotation (<none>)
        /*   some-service:80 (192.168.92.252:8080)
Annotations:
  alb.ingress.kubernetes.io/actions.ssl-redirect:          {"Type": "redirect", "RedirectConfig": { "Protocol": "HTTPS", "Port": "443", "StatusCode": "HTTP_301"}}
  alb.ingress.kubernetes.io/actions.ssl-redirect-default:  {"Type": "redirect", "RedirectConfig": { "Protocol": "HTTPS", "Path": "/someapp/#{path}", "Port": "443", "StatusCode": "HTTP_301"}}
  alb.ingress.kubernetes.io/certificate-arn:               arn:aws:acm:eu-central-1:...
  alb.ingress.kubernetes.io/listen-ports:                  [{"HTTP": 80}, {"HTTPS":443}]
  alb.ingress.kubernetes.io/scheme:                        internet-facing
  kubernetes.io/ingress.class:                             alb
Events:
  Type    Reason  Age                From                    Message
  ----    ------  ----               ----                    -------
  Normal  CREATE  16m                alb-ingress-controller  LoadBalancer some-alb created, ARN: some-alb-arn:loadbalancer/app/some-alb/some-ids
  Normal  CREATE  16m (x2 over 16m)  alb-ingress-controller  rule 1 created with conditions [{    Field: "path-pattern",    Values: ["/"]  }]
  Normal  CREATE  16m (x2 over 16m)  alb-ingress-controller  rule 2 created with conditions [{    Field: "path-pattern",    Values: ["/*"]  }]
  Normal  CREATE  16m                alb-ingress-controller  rule 3 created with conditions [{    Field: "path-pattern",    Values: ["/*"]  }]

发现问题,apparently there is a Security Group Limit of 5 per Cluster Node ENI (Elastic Network Interface), and every new application instance with ALB Ingress adds a SG。这是一个服务配额,可以增加:

相关日志是通过以下途径找到的:

kubectl logs -n kube-system   deployment.apps/alb-ingress-controller

我已经有 2 个用于 ENI 的 SG,所以在部署了 3 个应用程序实例后,就达到了限制。我刚刚将限制增加到 15(每个服务配额请求),瞧,我可以使用 ALB Ingresses 部署更多应用程序实例。

对我来说,这解决了这个问题,但是这个解决方案不会无限扩展,因为每个应用程序实例都会向 ENI 添加一个新的安全组,所以 13 个应用程序实例是我的新限制。