NSX ALB come provider di servizio di bilanciamento del carico del cluster Provider

NSX ALB può fungere da provider di bilanciamento del carico esterno per i cluster Kubernetes in una distribuzione di Tanzu Kubernetes Grid.

Configurazione di base: Configurazione di NSX ALB come implementazione del bilanciamento del carico per tutti i cluster

Per configurare l'implementazione del bilanciamento del carico di NSX ALB per tutti i cluster:

  1. Creare un file YAML di configurazione del cluster di gestione e aggiungere i seguenti campi nel file:

    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>
    

    Per ulteriori informazioni sulla creazione di un file di configurazione del cluster di gestione, vedere Creazione di un file di configurazione del cluster di gestione.

  2. Creare il cluster di gestione utilizzando il comando tanzu management-cluster create.

NSX ALB è ora configurato come bilanciamento del carico per il cluster di gestione e tutti i cluster del carico di lavoro creati da questo cluster di gestione.

Configurazione delle funzionalità di bilanciamento del carico L4 avanzate di NSX ALB

Facoltativamente, è possibile configurare determinate funzionalità di bilanciamento del carico avanzate di NSX ALB in Tanzu Kubernetes Grid.

(Facoltativo) Abilitazione di NSX ALB come implementazione del bilanciamento del carico in cluster del carico di lavoro specifici

Per configurare NSX ALB come bilanciamento del carico solo in cluster del carico di lavoro specifici:

  1. Creare un file YAML di configurazione del cluster di gestione e aggiungere i seguenti campi nel file:

    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>
    

    Per ulteriori informazioni sulla creazione di un file di configurazione del cluster di gestione, vedere Creazione di un file di configurazione del cluster di gestione.

  2. Creare il cluster di gestione utilizzando il comando tanzu management-cluster create.

  3. Nel file YAML di configurazione del cluster del carico di lavoro, aggiungere il campo seguente:

    AVI_LABELS: '{"enable-nsx-alb":"true"}'
    
  4. Creare il cluster del carico di lavoro utilizzando il comando tanzu cluster create.

NSX ALB è ora configurato come bilanciamento del carico solo per i cluster del carico di lavoro che hanno il valore di AVI_LABELS corrispondente.

Configurazione dell'indirizzo IP statico esterno per NSX ALB

Questa funzionalità utilizza l'applicazione Avi Kubernetes Operator (AKO) distribuita nei cluster. Per informazioni, vedere Servizio di tipo LoadBalancer con IP preferito.

Assicurarsi che l'indirizzo IP specificato sia un indirizzo non allocato nel pool di IP configurato nel controller AVI.

Per configurare l'indirizzo IP statico esterno per il servizio di bilanciamento del carico fornito da NSX ALB, aggiungere l'indirizzo IP esterno nel campo loadbalancerIP nel file di configurazione del tipo di servizio LoadBalancer, come illustrato nell'esempio seguente:

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
  

Configurazione dei gateway API v1alpha1 per NSX ALB

Una distribuzione di Tanzu Kubernetes Grid integrata con NSX ALB supporta le API del gateway v1alpha1. Questa funzionalità utilizza l'applicazione AKO distribuita nei cluster. Per ulteriori informazioni sul supporto dell'API del gateway, vedere Gateway e classe del gateway.

Per configurare API del gateway v1alpha1 per i servizi di bilanciamento del carico forniti da NSX ALB, impostare il flag spec.extraConfigs.servicesAPI nell'oggetto AKODeploymentConfig su true. Di seguito è disponibile un esempio:

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

Altre funzionalità di NSX ALB in Tanzu Kubernetes Grid

Tutte le funzionalità di NSX ALB disponibili tramite AKO sono supportate in Tanzu Kubernetes Grid. Per utilizzare una funzionalità, impostare il valore corrispondente nell'oggetto AKODeploymentConfig.spec.extraConfigs.<FEATURE-KNOB>. Per ulteriori informazioni, vedere Guida alla distribuzione di Avi Kubernetes Operator.

NSX ALB nel cluster di gestione

NSX ALB come fornitore di servizi di bilanciamento del carico viene abilitato automaticamente nel cluster di gestione se NSX ALB è abilitato nella distribuzione di Tanzu Kubernetes Grid.

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