istioctl 部署到 EKS——如何不创建外部负载均衡器?

istioctl deploying to EKS -- how to NOT create an external load balancer?

我正在使用 istioctl 在 EKS 集群中安装 istio。但是,目前我将使用 nginx ingress 来处理面向外部的服务。我怎样才能在内部部署 istio 服务,或者至少避免自动创建的 ELB?

您可以通过编辑 istio-ingressgateway 来完成。

更改为 service type

LoadBalancer -> 使用云提供商的负载均衡器向外部公开服务

ClusterIP -> 在集群内部 IP 上公开服务。选择此值会使服务只能从集群内访问。

让我们编辑 ingressgateway

kubectl edit svc istio-ingressgateway -n istio-system

然后请将类型从 LoadBalancer 更改为 ClusterIP 和 #delete 每个 nodePort,因为您将不再使用它们并且它必须是 # 或删除,这样你才能实际编辑文件,没有它,它无法编辑,什么也没有发生。

编辑

I can do this at install with istioctl using a values.yaml file?

是的,这是可能的。

这是您需要更改的值:

values.gateways.istio-ingressgateway.type

例子

正在创建清单以使用 ClusterIP 应用 istio 演示配置文件

istioctl manifest generate --set profile=demo --set values.gateways.istio-ingressgateway.type="ClusterIP" > $HOME/generated-manifest.yaml