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 주소 구성

이 기능은 클러스터에 배포된 AKO(Avi Kubernetes Operator) 애플리케이션을 활용합니다. 자세한 내용은 기본 IP가 있는 로드 밸런서 유형의 서비스를 참조하십시오.

지정하는 IP 주소가 AVI 컨트롤러에 구성된 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 배포 가이드를 참조하십시오.

관리 클러스터에서 ALB NSX

Tanzu Kubernetes Grid 배포에서 NSX ALB를 사용하도록 설정한 경우 관리 클러스터에서 로드 밸런서 서비스 제공자로 NSX ALB를 자동으로 사용하도록 설정됩니다.

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