Azure Kubernetes - Istio Multiple Loadbalancers?

696 views Asked by At

I have create an internal load balancer for my Istio Ingress controller as shown below

apiVersion: install.istio.io/v1alpha1
kind: IstioOperator
metadata:
  namespace: istio-system
  name: istio-control-plane
spec:
  profile: default #or demo
  components:
    ingressGateways:
      - name: istio-internal-ingressgateway
        enabled: true
        k8s:
          serviceAnnotations:
            service.beta.kubernetes.io/azure-load-balancer-internal: "true"

due this the default external loadbalancer got removed.

Does it mean that Istio support only one Loadbalancer? Can't I have 2 or more loadbalancer, may be one per Istio Gateway?

1

There are 1 answers

3
Jakub On BEST ANSWER

Does it mean that Istio support only one Loadbalancer? Can't I have 2 or more loadbalancer, may be one per Istio Gateway?

No, istio support multiple gateways, you changed wrong component.

Gateways are a special type of component, since multiple ingress and egress gateways can be defined. In the IstioOperator API, gateways are defined as a list type.


Take a look at this documentation.

There is an example.

A new user gateway can be created by adding a new list entry:

apiVersion: install.istio.io/v1alpha1
kind: IstioOperator
spec:
  components:
    ingressGateways:
      - name: istio-ingressgateway
        enabled: true
      - namespace: user-ingressgateway-ns
        name: ilb-gateway
        enabled: true
        k8s:
          resources:
            requests:
              cpu: 200m
          serviceAnnotations:
            cloud.google.com/load-balancer-type: "internal"
          service:
            ports:
            - port: 8060
              targetPort: 8060
              name: tcp-citadel-grpc-tls
            - port: 5353
              name: tcp-dns

Additional resources: