【问题标题】:istio-ingressgateway LoadBalancer showing "Pending" in AWS EKSistio-ingressgateway LoadBalancer 在 AWS EKS 中显示“待处理”
【发布时间】:2021-05-06 22:13:09
【问题描述】:

我安装了一个私有 EKS 集群,其中附加的子网是私有子网。我的要求是“安装 Istio 的私有 EKS” 并创建多个微服务并在 vpc 中公开它们。 为了在 VPC 中公开它们,我预计“istio-ingressgateway”会创建一个内部 ALB,但它显示“待处理”

istio-ingressgateway   LoadBalancer   1xx.x0x.xx.2xx     <pending> 

我的需要是使用“NodePort”在不同的端口中安装多个微服务,并通过网关公开它们。

请求任何帮助或查看此内容。

谢谢!

【问题讨论】:

  • 根据定义,私有 EKS 集群使用私有 VPC,因此它无法创建暴露于互联网的负载均衡器,因为它缺少公共子网
  • 感谢您抽出宝贵时间发表评论!。我的想法是,如果我得到一个内部 ALB 地址,那么在 vpc 中,我可以从不同的节点端口路由流量,例如: 像这样。知道该怎么做吗?
  • 哦,是的,您可以使用内部负载平衡器,将发布说明,秒

标签: istio amazon-eks istio-sidecar


【解决方案1】:

您有 2 个选项,可以使用 ALB 入口控制器并创建一个内部入口对象并添加注释:

alb.ingress.kubernetes.io/scheme: "internal"

或创建一个将创建 ELB 的 LoadBalancer 服务。将这些注释添加到服务中:

service.beta.kubernetes.io/aws-load-balancer-internal:在服务上使用,表示我们需要一个内部 ELB。

service.beta.kubernetes.io/aws-load-balancer-security-groups:用于指定要添加到创建的ELB的安全组。这将替换之前分配给 ELB 的所有其他安全组。

例如,

此外,您需要在 VPC 子网中使用这些标签:

Key: kubernetes.io/role/internal-elb
Value: 1

对于您的情况,请选择选项 2。

【讨论】:

  • 我明白你的意思。但我的目标是将服务创建为“NodePort”和 istio 的网关。即istio: ingressgateway 使用负载均衡器,以便我可以通过 访问每个微服务。但是当我查看“kubectl get svc -n istio-system”时,我总是得到负载均衡器,因为 期望这里有一个内部 alb 地址
  • 将任何类型的服务公开为 NodePort 都不是一个好主意,仅鼓励用于测试目的
  • 但这里的问题是,我有 10-12 个微服务,所以如果我使用服务负载均衡器进行部署,那么我需要创建 10-12 个 ALB 对吗?太贵了
  • 嗯,你的第一个要求是有一个内部 LoadBalancer,如果你使用服务内部注释来做到这一点,你确实需要每个服务一个,如果你使用内部 alb 入口(示例 1)你每个命名空间只需要一个 ALB
猜你喜欢
  • 2021-08-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-08-09
  • 2021-11-18
相关资源
最近更新 更多