Search code examples
azurekubernetesistioazure-load-balancer

Azure Kubernetes - Istio Multiple Loadbalancers?


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?


Solution

  • 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: