I deployed Istio using the operator and added a custom ingress gateway which is only accessible from a certain source range (our VPN).
apiVersion: install.istio.io/v1alpha1
kind: IstioOperator
metadata:
namespace: istio-system
name: ground-zero-ingressgateway
spec:
profile: empty
components:
ingressGateways:
- name: istio-ingressgateway
enabled: true
- name: istio-vpn-ingressgateway
label:
app: istio-vpn-ingressgateway
istio: vpn-ingressgateway
enabled: true
k8s:
serviceAnnotations:
...
service:
loadBalancerSourceRanges:
- "x.x.x.x/x"
Now I want to configure Istio to expose a service outside of the service mesh cluster, using the Kubernetes Ingress resource. I use the kubernetes.io/ingress.class
annotation to tell the Istio gateway controller that it should handle this Ingress
.
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: my-ingress
annotations:
kubernetes.io/ingress.class: istio
spec:
...
- Kubernetes version (EKS): 1.19
- Istio version: 1.10.3
Which ingress gateway controller is now used (istio-ingressgateway
or istio-vpn-ingressgateway
)? Is there a way to specify which one should be used?
P.S. I know that I could create a VirtualService
and specify the correct gateway but we want to write a manifest that also works without Istio by specifying the correct ingress controller with an annotation.
Ingress
instead of the gateway? – surenVirtualService
and use anIngress
instead. – ammerzon