获得了一个带有alb入口控制器和连接到route53的外部DNS的EKS集群,现在一些客户端希望使用静态IP或IP范围来连接到我们的服务器并将这些IP列入其防火墙白名单。
尝试了新的AWS Global Accelerator,然后按照本教程https://docs.aws.amazon.com/global-accelerator/latest/dg/getting-started.html进行操作,但失败了:
Listeners in this accelerator have an unhealthy status. To make sure that Global Accelerator can run health checks successfully, ensure that a service is responding on the protocol and port that you specified in the health check configuration. Learn more
经进一步了解,运行状况检查将与ALB上配置的相同,也可能由于route53运行状况检查ip未列入白名单而所有入站流量都在端口80和443中打开,因此可能会失败如何对此进行进一步调试,或者是否还有其他解决方案可获取ALB的IP范围或静态IP。
答案 0 :(得分:0)
您需要向入口控制器添加这样的运行状况检查规则:
- http:
paths:
- path: /global-accelerator-healthcheck
backend:
serviceName: global-accelerator-healthcheck
servicePort: use-annotation
然后添加注释:
alb.ingress.kubernetes.io/actions.global-accelerator-healthcheck: '{"Type": "fixed-response", "FixedResponseConfig": {"ContentType": "text/plain", "StatusCode": "200", "MessageBody": "healthy" }}'
然后将全局加速器配置为对该端点的运行状况检查
答案 1 :(得分:0)
说到 AWS ALB Ingress 控制器,总是尽量想到 当您使用 AWS ALB 及其目标组时。
代码:
annotations:
alb.ingress.kubernetes.io/healthcheck-protocol: HTTP
alb.ingress.kubernetes.io/healthcheck-port: "8161"
alb.ingress.kubernetes.io/healthcheck-path: /admin
alb.ingress.kubernetes.io/success-codes: '401'
alb.ingress.kubernetes.io/backend-protocol: HTTP`
注意:如果您对不同的服务有不同的健康检查设置,请从 K8s“Ingress”中删除此块,并为每个 K8s“服务”添加块。
如果需要更多信息,请参阅:https://kubernetes-sigs.github.io/aws-load-balancer-controller/v2.1/guide/ingress/annotations/