NSX ALB como proveedor de servicio de equilibrador de carga del clúster proveedor

NSX ALB puede actuar como proveedor de equilibrador de carga externo para los clústeres de Kubernetes en una implementación de Tanzu Kubernetes Grid.

Configuración básica: Configurar NSX ALB como implementación de equilibrador de carga para todos los clústeres

Para configurar la implementación del equilibrador de carga de NSX ALB para todos los clústeres:

  1. Cree un archivo YAML de configuración del clúster de administración y agregue los siguientes campos al archivo:

    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>
    

    Para obtener información sobre cómo crear un archivo de configuración del clúster de administración, consulte Crear un archivo de configuración del clúster de administración.

  2. Cree el clúster de administración mediante el comando tanzu management-cluster create.

NSX ALB ahora está configurado como el equilibrador de carga para el clúster de administración y todos los clústeres de carga de trabajo creados por este clúster de administración.

Configurar las funciones avanzadas del equilibrador de carga de capa 4 de NSX ALB

De forma opcional, puede configurar algunas funciones avanzadas de equilibrio de carga de NSX ALB en Tanzu Kubernetes Grid.

(Opcional ) Habilitar NSX ALB como la implementación del equilibrador de carga de trabajo en clústeres de carga de trabajo específicos

Para configurar NSX ALB como equilibrador de carga solo en clústeres de carga de trabajo específicos:

  1. Cree un archivo YAML de configuración del clúster de administración y agregue los siguientes campos al archivo:

    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>
    

    Para obtener información sobre cómo crear un archivo de configuración del clúster de administración, consulte Crear un archivo de configuración del clúster de administración.

  2. Cree el clúster de administración mediante el comando tanzu management-cluster create.

  3. En el archivo YAML de configuración del clúster de carga de trabajo, agregue el siguiente campo:

    AVI_LABELS: '{"enable-nsx-alb":"true"}'
    
  4. Cree el clúster de carga de trabajo mediante el comando tanzu cluster create.

NSX ALB ahora está configurado como equilibrador de carga solo para los clústeres de carga de trabajo que tengan el valor AVI_LABELS correspondiente.

Configurar una dirección IP estática externa para NSX ALB

Esta función aprovecha la aplicación Avi Kubernetes Operator (AKO) que se implementa en los clústeres. Para obtener información, consulte Servicio de tipo Equilibrador de carga con IP preferida.

Asegúrese de que la dirección IP que especifique sea una dirección no asignada en el grupo de direcciones IP que está configurado en el controlador AVI.

Para configurar la dirección IP estática externa para el servicio del equilibrador de carga proporcionado por NSX ALB, agregue la dirección IP externa en el campo loadbalancerIP en el tipo de equilibrador de carga del archivo de configuración del servicio, como se muestra en este ejemplo:

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
  

Configurar puertas de enlace de API v1alpha1 para NSX ALB

Una implementación de Tanzu Kubernetes Grid integrada con NSX ALB admite las API de puerta de enlace v1alpha1. Esta función aprovecha la aplicación AKO implementada en los clústeres. Para obtener más información sobre la compatibilidad de la API de puerta de enlace, consulte Puerta de enlace y clase de puerta de enlace.

Para configurar las puertas de enlace de API v1alpha1 para los servicios de equilibrador de carga proporcionados por NSX ALB, establezca la marca spec.extraConfigs.servicesAPI en el objeto AKODeploymentConfig en true. A continuación se muestra un ejemplo:

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

Otras funciones NSX ALB en Tanzu Kubernetes Grid

Todas las funciones de NSX ALB que se pueden utilizar a través de AKO son compatibles con Tanzu Kubernetes Grid. Para utilizar una función, establezca el valor correspondiente en el objeto AKODeploymentConfig.spec.extraConfigs.<FEATURE-KNOB>. Para obtener más información, consulte la Guía de implementación del operador de AVI Kubernetes.

NSX ALB en el clúster de administración

NSX ALB como proveedor de servicios del equilibrador de carga se habilita automáticamente en el clúster de administración si NSX ALB está habilitado en la implementación de Tanzu Kubernetes Grid.

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