NSX ALB en tant que fournisseur de services d'équilibrage de charge de cluster

NSX ALB peut agir comme fournisseur d'équilibrage de charge externe pour vos clusters Kubernetes dans un déploiement Tanzu Kubernetes Grid.

Configuration de base : Configurer NSX ALB comme implémentation de l'équilibrage de charge pour tous les clusters

Pour configurer l'implémentation de l'équilibrage de charge NSX ALB pour tous les clusters :

  1. Créez un fichier YAML de configuration de cluster de gestion et ajoutez les champs suivants dans le fichier :

    AVI_ENABLE: true
    AVI_CONTROLLER: <avi controller IP address or FQDN>
    AVI_USERNAME: <avi admin username>
    AVI_PASSWORD: <avi admin password>
    AVI_CA_DATA_B64: <base64 encoded certificate>
    AVI_CLOUD_NAME: <cloud you configured to deploy virtual services>
    AVI_SERVICE_ENGINE_GROUP: <SEG you configured to host virtual services>
    AVI_DATA_NETWORK: <VIP Network you want to use for your load balancer external IP>
    AVI_DATA_NETWORK_CIDR: <above VIP Network's CIDR>
    
    #### only for NSX-T cloud ####
    AVI_NSXT_T1LR: <NSX-T Tier 1 path used for NSX Advanced Loader Balancer backend network>
    

    Pour plus d'informations sur la création d'un fichier de configuration de cluster de gestion, reportez-vous à la section Créer un fichier de configuration de cluster de gestion.

  2. Créez le cluster de gestion au moyen de la commande tanzu management-cluster create.

NSX ALB est désormais configuré comme équilibrage de charge pour le cluster de gestion et tous les clusters de charge de travail créés par ce cluster de gestion.

Configurer les fonctionnalités Advanced L4 Load Balancer de NSX ALB

Vous pouvez éventuellement configurer certaines fonctionnalités d'équilibrage de charge avancées de NSX ALB dans Tanzu Kubernetes Grid.

(Facultatif) Activer NSX ALB en tant qu’implémentation d’équilibrage de charge sur des clusters de charge de travail spécifiques

Pour configurer NSX ALB en tant qu'équilibrage de charge uniquement sur des clusters de charge de travail spécifiques :

  1. Créez un fichier YAML de configuration de cluster de gestion et ajoutez les champs suivants dans le fichier :

    AVI_ENABLE: true
    AVI_LABELS: '{"enable-nsx-alb":"true"}'
    AVI_CONTROLLER: <avi controller IP address or FQDN>
    AVI_USERNAME: <avi admin username>
    AVI_PASSWORD: <avi admin password>
    AVI_CA_DATA_B64: <base64 encoded certificate>
    AVI_CLOUD_NAME: <cloud you configured to deploy virtual services>
    AVI_SERVICE_ENGINE_GROUP: <SEG you configured to host virtual services>
    AVI_DATA_NETWORK: <VIP Network you want to use for your load balancer external IP>
    AVI_DATA_NETWORK_CIDR: <above VIP Network's CIDR>
    
    #### only for NSX-T cloud ####
    AVI_NSXT_T1LR: <NSX-T Tier 1 path used for NSX Advanced Loader Balancer backend network>
    

    Pour plus d'informations sur la création d'un fichier de configuration de cluster de gestion, reportez-vous à la section Créer un fichier de configuration de cluster de gestion.

  2. Créez le cluster de gestion au moyen de la commande tanzu management-cluster create.

  3. Dans le fichier YAML de configuration du cluster de charge de travail, ajoutez le champ suivant :

    AVI_LABELS: '{"enable-nsx-alb":"true"}'
    
  4. Créez le cluster de charge de travail au moyen de la commande tanzu cluster create.

NSX ALB est désormais configuré comme équilibrage de charge uniquement pour les clusters de charge de travail avec la variable AVI_LABELS correspondante.

Configurer une adresse IP statique externe pour NSX ALB

Cette fonctionnalité exploite l'application Avi Kubernetes Operator (AKO) qui est déployée dans les clusters. Pour plus d'informations, reportez-vous à la section Service de type équilibrage de charge avec l'adresse IP préférée.

Assurez-vous que l'adresse IP que vous spécifiez est une adresse non allouée dans le pool d'adresses IP configuré dans votre contrôleur AVI.

Pour configurer l'adresse IP statique externe pour le service d'équilibrage de charge fourni par NSX ALB, ajoutez l'adresse IP externe dans le champ loadbalancerIP dans le type d'équilibrage de charge du fichier de configuration de service, comme indiqué dans cet exemple :

apiVersion: v1
kind: Service
metadata:
  name: corgi-test
spec:
  type: LoadBalancer
  selector:
    corgi: test
  ports:
    - nodePort: 30008
      port: 80
      targetPort: 80
  loadBalancerIP: 1.1.1.1
  

Configurer les passerelles d'API v1alpha1 pour NSX ALB

Un déploiement Tanzu Kubernetes Grid intégré à NSX ALB prend en charge les API de passerelle v1alpha1. Cette fonctionnalité exploite l'application AKO déployée dans les clusters. Pour plus d'informations sur la prise en charge de l'API de passerelle, reportez-vous à la section Passerelle et classe de passerelle.

Pour configurer les passerelles d'API v1alpha1 pour les services d'équilibrage de charge fournis par NSX ALB, définissez l'indicateur spec.extraConfigs.servicesAPI dans l'objet AKODeploymentConfig sur true. Vous en trouverez un exemple ci-dessous :

apiVersion: ako.vmware.com/v1alpha1
kind: AviInfraSetting
metadata:
  name: sample-infrasetting
spec:
  seGroup:
    name: Default-Group
---
apiVersion: networking.x-k8s.io/v1alpha1
kind: GatewayClass
metadata:
  name: sample-gateway-class
spec:
  controller: ako.vmware.com/avi-lb
  parametersRef:
    group: ako.vmware.com
    kind: AviInfraSetting
    name: sample-infrasetting
---
kind: Gateway
apiVersion: networking.x-k8s.io/v1alpha1
metadata:
  name: sample-gateway
spec:
  gatewayClassName: sample-gateway-class
  listeners:
    - protocol: TCP
      port: 80
      routes:
        selector:
          matchLabels:
            ako.vmware.com/gateway-namespace: default
            ako.vmware.com/gateway-name: sample-gateway
        group: v1
        kind: Service
    - protocol: TCP
      port: 81
      routes:
        selector:
          matchLabels:
            ako.vmware.com/gateway-namespace: default
            ako.vmware.com/gateway-name: sample-gateway
        group: v1
        kind: Service
---
apiVersion: v1
kind: Service
metadata:
  name: coffee-svc
  labels:
    app: coffee
    ako.vmware.com/gateway-name: sample-gateway
    ako.vmware.com/gateway-namespace: default
spec:
  ports:
    - port: 81
      targetPort: 80
      protocol: TCP
  selector:
    app: coffee
  type: NodePort   # <== service type should be aligned with AKODeploymentConfig.spec.extraConfigs.ingress.serviceType, NodePort is the default value.
---
apiVersion: v1
kind: Service
metadata:
  name: tea-svc
  labels:
    app: tea
    ako.vmware.com/gateway-name: sample-gateway
    ako.vmware.com/gateway-namespace: default
spec:
  ports:
    - port: 80
      targetPort: 80
      protocol: TCP
  selector:
    app: tea
  type: NodePort # <== service type should be aligned with AKODeploymentConfig.spec.extraConfigs.ingress.serviceType, NodePort is the default value.
---
apiVersion: apps/v1
kind: Deployment
metadata:
  name: nginx-coffee
spec:
  selector:
    matchLabels:
      app: coffee
  replicas: 1
  template:
    metadata:
      labels:
        app: coffee
    spec:
      containers:
        - name: nginx
          image: harbor-repo.vmware.com/dockerhub-proxy-cache/library/nginx
          ports:
            - containerPort: 80
---
apiVersion: apps/v1
kind: Deployment
metadata:
  name: nginx-tea
spec:
  selector:
    matchLabels:
      app: tea
  replicas: 1
  template:
    metadata:
      labels:
        app: tea
    spec:
      containers:
        - name: nginx
          image: harbor-repo.vmware.com/dockerhub-proxy-cache/library/nginx
          ports:
            - containerPort: 80

Autres fonctionnalités de NSX ALB dans Tanzu Kubernetes Grid

Toutes les fonctionnalités de NSX ALB qui peuvent être disponibles via AKO sont prises en charge dans Tanzu Kubernetes Grid. Pour utiliser une fonctionnalité, définissez la valeur correspondante dans l'objet AKODeploymentConfig.spec.extraConfigs.<FEATURE-KNOB>. Pour plus d'informations, reportez-vous à la section Guide de déploiement d'Avi Kubernetes Operator.

NSX ALB dans le cluster de gestion

NSX ALB en tant que fournisseur de services d'équilibrage de charge est activé automatiquement dans le cluster de gestion si NSX ALB est activé dans votre déploiement Tanzu Kubernetes Grid.

check-circle-line exclamation-circle-line close-line
Scroll to top icon