【问题标题】:How to change service type to ALB in AWS EKS?如何在 AWS EKS 中将服务类型更改为 ALB?
【发布时间】:2020-09-17 04:52:55
【问题描述】:

我在我的 AWS EKS 集群中运行了我的应用程序的部署和服务,通过添加此注释 service.beta.kubernetes.io/aws-load-balancer-type,该服务被公开为 NLB 类型的负载均衡器: nlb 但是,当我尝试通过将注释更改为 service.beta.kubernetes.io/aws-load-balancer-type: alb 将其切换到 ALB 时,它创建了一个经典的负载均衡器,这意味着没有考虑到这个注解,那么有什么办法可以在 ALB 上公开服务?

【问题讨论】:

    标签: kubernetes amazon-elb amazon-eks


    【解决方案1】:

    您需要使用ALB Ingress Controller

    适用于 Kubernetes 的 AWS ALB 入口控制器是一个控制器,每当在具有 kubernetes.io/ingress.class 的集群上创建入口资源时,它都会触发创建应用程序负载均衡器 (ALB) 和必要的支持 AWS 资源: alb 注释。

    这是 git-repo,这些是您可以包含在 Ingress 中的 annotations,这是 the helm chart,如果您愿意,您可以使用它来部署它。

    作为轶事,它效果很好。唯一的缺点是它会为每个 Ingress 创建一个 ALB。为了解决这个问题,我一直将merge-ingress-controller 与它结合使用,这会导致一个 ALB 用于多个入口。

    【讨论】:

    • 如果您在 EC2 上运行 EKS 节点,您可以使用它吗?
    • 是的,我所有的工作节点都在 Ec2 上运行。流程最终为:ingress -> service -> pods pod ip 在目标组中注册,ALB 通过您在入口定义中指定的规则路由到这些目标组。目标组由 ALB 入口控制器创建和管理
    • 如果我在将服务类型设置为负载均衡器而不需要入口时直接使用 ALB 怎么办?
    • 我不认为你可以,但你可以做的是让 ALB 入口控制器管理你的 ALB 并将其路由到现有的目标组。这是我在一个用例中所做的事情。你可以使用这个注解alb.ingress.kubernetes.io/actions.forward-single-tg: > {"Type":"forward","TargetGroupArn": "arn-of-your-target-group"}
    猜你喜欢
    • 2020-07-03
    • 2019-06-28
    • 1970-01-01
    • 1970-01-01
    • 2021-03-22
    • 1970-01-01
    • 2021-06-29
    • 2020-07-17
    • 2022-01-23
    相关资源
    最近更新 更多