【问题标题】:AWS - k8s - ingress LoadBalancerAWS - k8s - 入口负载均衡器
【发布时间】:2019-02-28 00:14:25
【问题描述】:

我正在尝试配置以下设置。

User -> https://xxx.abc.com -> VPC-IP(AWS LB):443 -> POD:8080

参考这个问题AWS VPC - k8s - load balancing

如果我设置了入口服务; LoadBalancer 是 kubernetes 创建的吗?

我目前正在使用 AWS 安全组限制对 VPC 的仅特定 IP 的访问。

是否可以使用现有的 LoadBalancer 并将其分配/附加到 Ingress Service?或者我必须手动将 SG 分配给 K8S 创建的负载均衡器?

【问题讨论】:

标签: amazon-web-services kubernetes nginx-ingress amazon-eks


【解决方案1】:

只想详细说明@aurelius的解决方案2:

第 1 步:让您的 ingress-service 输入 NodePort,它会在集群的所有节点上获得类似 Node:34567 的端口。

第 2 步:配置设置您现有的负载平衡器以路由到这些端口作为后端。

AWS existing load-balancer => Workder-Node1:34567 => Ingress-service => xxx
                           => Workder-Node2:34567 => Ingress-service => xxx
                           => Workder-Node3:34567 => Ingress-service => xxx

【讨论】:

    【解决方案2】:

    抱歉,您的问题似乎不清楚或有点纠结 = 希望我没有错过重点。

    要实现这个场景: User -> https://xxx.abc.com -> VPC-IP(AWS LB):443 -> POD:8080

    您需要按照通常的设置来配置入口和入口控制器,只需在 ingress.yaml 中添加一个主机(您的 url)。除非您不购买并将您的域连接到 AWS,否则您将无法访问它。 但您可以通过以下方式检查设置是否有效:

    curl -v -H "HOST:host_from_config" loadbalanceraddress.com

    如果我设置了入口服务; LoadBalancer 是由 Kubernetes?

    是的。

    当服务类型设置为 LoadBalancer 时,Kubernetes 提供 相当于 type= 到 pod 中的功能 集群并通过编程(在 Kubernetes 外部)对其进行扩展 具有 Kubernetes pod 条目的负载均衡器。 Kubernetes 服务控制器自动创建外部负载 平衡器、健康检查(如果需要)、防火墙规则(如果需要)和 检索云提供商分配的外部 IP 和 将其填充到服务对象中。

    您可以随时随地限制安全组策略,只需找到它属于哪个SG并根据需要编辑规则或更改负载均衡器属于哪个SG并进行调整。

    关于将现有 LB 与 Ingress 一起使用的场景 - 您可以尝试将现有 LoadBalancer(没有尝试过)添加到服务配置中,将正确的实例附加到 LoadBalancer 等。虽然我没有尝试过,但似乎像一些努力和正确的配置一样,它应该是可能的。

    status: loadBalancer: ingress: - hostname: example-address.eu-central-1.elb.amazonaws.com

    另一种方法是将服务的类型更改为 NodePort 并将其指向手动创建的 LB 到您的应用程序 - 当您需要将多个服务连接到一个 ELB 时可以使用此方法。它已被描述为here

    【讨论】:

      猜你喜欢
      • 2019-07-14
      • 2019-08-13
      • 1970-01-01
      • 2014-12-18
      • 2017-12-18
      • 2020-05-29
      • 2018-04-14
      • 2017-07-31
      • 1970-01-01
      相关资源
      最近更新 更多