クラスタのロード バランサ サービス プロバイダとしての NSX ALB

NSX ALB は、Tanzu Kubernetes Grid 環境内の Kubernetes クラスタの外部ロード バランサ プロバイダとして機能できます。

基本設定:すべてのクラスタのロード バランサ実装としての NSX ALB の構成

すべてのクラスタの NSX ALB ロード バランサの実装を構成するには、次の手順を実行します。

  1. 管理クラスタ構成 YAML ファイルを作成し、ファイルに次のフィールドを追加します。

    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>
    

    管理クラスタ構成ファイルの作成方法については、「管理クラスタ構成ファイルの作成」を参照してください。

  2. tanzu management-cluster create コマンドを使用して管理クラスタを作成します。

NSX ALB は、管理クラスタと、この管理クラスタによって作成されたすべてのワークロード クラスタのロード バランサとして構成されるようになりました。

NSX ALB の高度な L4 ロード バランサ機能の構成

必要に応じて、Tanzu Kubernetes Grid で NSX ALB の特定の高度なロード バランシング機能を構成できます。

(オプション)NSX ALB を特定のワークロード クラスタでロード バランサの実装として有効にする

NSX ALB をロード バランサとして特定のワークロード クラスタでのみ構成するには、次の手順を実行します。

  1. 管理クラスタ構成 YAML ファイルを作成し、ファイルに次のフィールドを追加します。

    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>
    

    管理クラスタ構成ファイルの作成方法については、「管理クラスタ構成ファイルの作成」を参照してください。

  2. tanzu management-cluster create コマンドを使用して管理クラスタを作成します。

  3. ワークロード クラスタ構成 YAML ファイルに、次のフィールドを追加します。

    AVI_LABELS: '{"enable-nsx-alb":"true"}'
    
  4. tanzu cluster create コマンドを使用してワークロード クラスタを作成します。

NSX ALB は、対応する AVI_LABELS 値を持つワークロード クラスタのロード バランサとしてのみ構成されるようになりました。

NSX ALB の外部固定 IP アドレスの構成

この機能は、クラスタに展開されている Avi Kubernetes Operator (AKO) アプリケーションを利用します。詳細については、「優先 IP アドレスを使用したロード バランサ タイプのサービス」を参照してください。

指定する IP アドレスが、Avi Controller で構成されている IP アドレス プール内の未割り当てアドレスであることを確認します。

NSX ALB によって提供されるロード バランサ サービスの外部固定 IP アドレスを構成するには、次の例に示すように、ロード バランサ タイプのサービス構成ファイルの loadbalancerIP フィールドに外部 IP アドレスを追加します。

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
  

NSX ALB の v1alpha1 API ゲートウェイの構成

NSX ALB と統合された Tanzu Kubernetes Grid 環境では、ゲートウェイ API v1alpha1 がサポートされます。この機能は、クラスタに展開された AKO アプリケーションを利用します。ゲートウェイ API のサポートの詳細については、「ゲートウェイおよびゲートウェイ クラス」を参照してください。

NSX ALB によって提供されるロード バランサ サービスの v1alpha1 API ゲートウェイを構成するには、AKODeploymentConfig オブジェクトの spec.extraConfigs.servicesAPI をフラグ true に設定します。次に例を示します。

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

Tanzu Kubernetes Grid のその他の NSX ALB 機能

AKO を介して使用可能なすべての NSX ALB 機能は、Tanzu Kubernetes Grid でサポートされています。機能を使用するには、AKODeploymentConfig.spec.extraConfigs.<FEATURE-KNOB> オブジェクトの対応する値を設定します。詳細については、『Avi Kubernetes Operator デプロイ ガイド』を参照してください。

管理クラスタでの NSX ALB

Tanzu Kubernetes Grid 環境で NSX ALB が有効になっている場合、管理クラスタでは、ロード バランサ サービス プロバイダとして NSX ALB が自動的に有効になります。

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