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

12/22/2019

I am using istioctl to install istio in an EKS cluster. However, for the moment I will be using an nginx ingress for externally facing services. How can I just deploy the istio service internally, or at least avoid the automatically created ELB?

-- shaunc
aws-eks
istio
kubernetes

1 Answer

12/23/2019

You can do it by editing istio-ingressgateway.

Change service type from

LoadBalancer -> Exposes the Service externally using a cloud provider’s load balancer

to

ClusterIP -> Exposes the Service on a cluster-internal IP. Choosing this value makes the Service only reachable from within the cluster.

Let's edit ingressgateway

kubectl edit svc istio-ingressgateway -n istio-system

Then please change the type from LoadBalancer to ClusterIP and # or delete every nodePort since You won't use them anymore and it have to be # or deleted so You could actually edit the file, without it, it fails to edit and nothing is happening.

EDIT

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

Yes, it's possible.

This is a value You need to change:

values.gateways.istio-ingressgateway.type

example

Creating manifest to apply istio demo profile with ClusterIP

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