NSX ALB als Anbieter des Cluster-Lastausgleichsdiensts

NSX ALB kann als externer Load Balancer-Anbieter für Ihre Kubernetes-Cluster in einer Tanzu Kubernetes Grid-Bereitstellung fungieren.

Grundlegende Einrichtung: Konfigurieren von NSX ALB als Load Balancer-Implementierung für alle Cluster

So konfigurieren Sie NSX ALB als Load Balancer-Implementierung für alle Cluster:

  1. Erstellen Sie eine YAML-Datei für die Verwaltungsclusterkonfiguration und fügen Sie die folgenden Felder in der Datei hinzu:

    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>
    

    Weitere Informationen zum Erstellen einer Konfigurationsdatei für den Verwaltungscluster finden Sie unter Erstellen einer Konfigurationsdatei für den Verwaltungscluster.

  2. Erstellen Sie den Verwaltungscluster mit dem Befehl tanzu management-cluster create.

NSX ALB ist jetzt als Lastausgleichsdienst für den Verwaltungscluster und alle Arbeitslastcluster konfiguriert, die von diesem Verwaltungscluster erstellt werden.

Konfigurieren der Advanced L4 Load Balancer-Funktionen von NSX ALB

Optional können Sie bestimmte erweiterte Lastausgleichsfunktionen von NSX ALB in Tanzu Kubernetes Grid konfigurieren.

(Optional) Aktivieren von NSX ALB als Load Balancer-Implementierung in bestimmten Arbeitslastclustern

So konfigurieren Sie NSX ALB nur auf bestimmten Arbeitslastclustern als Load Balancer:

  1. Erstellen Sie eine YAML-Datei für die Verwaltungsclusterkonfiguration und fügen Sie die folgenden Felder in der Datei hinzu:

    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>
    

    Weitere Informationen zum Erstellen einer Konfigurationsdatei für den Verwaltungscluster finden Sie unter Erstellen einer Konfigurationsdatei für den Verwaltungscluster.

  2. Erstellen Sie den Verwaltungscluster mit dem Befehl tanzu management-cluster create.

  3. Fügen Sie in der YAML-Datei der Konfiguration des Arbeitslastclusters das folgende Feld hinzu:

    AVI_LABELS: '{"enable-nsx-alb":"true"}'
    
  4. Erstellen Sie den Arbeitslastcluster mit dem Befehl tanzu cluster create.

NSX ALB wird jetzt nur noch als Lastausgleichsdienst für die Arbeitslastcluster konfiguriert, die den entsprechenden AVI_LABELS-Wert haben.

Konfigurieren einer externen statischen IP-Adresse für NSX ALB

Diese Funktion nutzt die Avi Kubernetes Operator(AKO)-Anwendung, die in den Clustern bereitgestellt wird. Weitere Informationen finden Sie unter Dienst vom Typ Load Balancer mit bevorzugter IP.

Stellen Sie sicher, dass es sich bei der von Ihnen angegebenen IP-Adresse um eine nicht zugeteilte Adresse im IP-Pool handelt, der in Ihrem AVI-Controller konfiguriert ist.

Um eine externe statische IP-Adresse für den von NSX ALB bereitgestellten Lastausgleichsdienst zu konfigurieren, fügen Sie die externe IP-Adresse im Feld loadbalancerIP der Konfigurationsdatei für den Diensttyp „Load Balancer“ hinzu, wie in diesem Beispiel ersichtlich:

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
  

Konfigurieren von v1alpha1-API-Gateways für NSX ALB

Eine in NSX ALB integrierte Tanzu Kubernetes Grid-Bereitstellung unterstützt die Gateway-APIs v1alpha1. Diese Funktion nutzt die AKO-Anwendung, die in den Clustern bereitgestellt wird. Weitere Informationen zur Gateway-API-Unterstützung finden Sie unter Gateway and Gateway Class.

Um die v1alpha1-API-Gateways für die von NSX ALB bereitgestellten Lastausgleichsdienste zu konfigurieren, setzen Sie das Flag spec.extraConfigs.servicesAPI im Objekt AKODeploymentConfig auf true. Im Folgenden finden Sie ein Beispiel:

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

Weitere NSX ALB-Funktionen in Tanzu Kubernetes Grid

Alle NSX ALB-Funktionen, die über AKO verfügbar sind, werden in Tanzu Kubernetes Grid unterstützt. Um eine Funktion zu verwenden, legen Sie den entsprechenden Wert im Objekt AKODeploymentConfig.spec.extraConfigs.<FEATURE-KNOB> fest. Weitere Informationen finden Sie im Avi Kubernetes Operator-Bereitstellungshandbuch.

NSX ALB im Verwaltungscluster

NSX ALB als Anbieter des Lastausgleichsdiensts wird automatisch im Verwaltungscluster aktiviert, wenn NSX ALB in Ihrer Tanzu Kubernetes Grid-Bereitstellung aktiviert ist.

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