TheKoguryo's 기술 블로그

 Version 2024.04.01

1.2.1.3 OCI Network Load Balancer 상세 설정하기

OCI Network Load Balancer는 OCI에서 제공하고 있는 L4 로드 밸런서입니다. TCP, UDP의 프로토콜을 지원합니다. 무료 서비스입니다.

기본 생성 Load Balancer

추가 설정없이 Service Type만 Load Balancer로 지정하는 경우, 이전에 주로 사용하던 Fixed Shape 형태의 로드 밸런서로 100Mbps 사이즈로 생성되며, 기본적으로 Public Subnet을 전제로 만들어 지게 됩니다.

  • 기본 Load Balancer 생성 명령

    kubectl expose deployment nginx-docker-hub --port 80 --type LoadBalancer --name nginx-docker-hub-svc
    
  • 기본 Load Balancer 생성 YAML

    # nginx-docker-hub-svc.yaml
    ---
    apiVersion: v1
    kind: Service
    metadata:
      name: nginx-docker-hub-svc
    spec:
      ports:
      - port: 80
        targetPort: 80
      selector:
        app: nginx-docker-hub
      type: LoadBalancer
    
  • 생성된 OCI Load Balancer

    image-20230516181811499

OCI Network Load Balancer 상세 설정하기

OCI Network Load Balancer의 설정가능한 annotations 전체 항목 에서 보듯이 annotation을 통해 추가적인 설정 기능을 제공합니다.

  1. OCI Network Load Balancer를 사용하는 경우, 전체 annotations 중에서 아래 조합으로 기본적인 설정을 할 수 있겠습니다.

    # nginx-docker-hub-svc-nlb.yaml
    ---
    apiVersion: v1
    kind: Service
    metadata:
      name: nginx-docker-hub-svc
      annotations:
        oci.oraclecloud.com/load-balancer-type: "nlb"
    spec:
      ports:
      - port: 80
        targetPort: 80
      selector:
        app: nginx-docker-hub
      type: LoadBalancer
      loadBalancerIP: 158.179.xxx.xxx
    
    • annotation 설정값 설명

      항목설명
      oci.oraclecloud.com/load-balancer-type"nlb"Default: "lb" - OCI Load Balancer 사용
      "nlb" - L4을 지원하는 OCI Network Load Balancer, 무료 서비스
      • spec.loadBalancerIP: Reserved Public IP를 사전에 만들어 가지고 있는 경우, 해당 IP를 직접 입력하여, 생성되는 Load Balancer에 원하는 IP를 부여합니다.
  2. 생성 결과

    • Network Load Balancer로 생성, Reserved Public IP

    image-20240108011603041

  • 추가사항: Internal Load Balancer

    • 생성되는 위치가 Private Subnet인 경우, 아래 옵션을 추가로 지정합니다.

      metadata:
        annotations:
          service.beta.kubernetes.io/oci-load-balancer-internal: "true"
          ...
      
      • 지정하지 않는 경우 Kubernetes상의 오류와 함께 OCI Load Balancer 자체가 생성되지 않습니다.
      • 위 항목 지정시, spec.loadBalancerIP는 동작하지 않습니다.


이 글은 개인으로서, 개인의 시간을 할애하여 작성된 글입니다. 글의 내용에 오류가 있을 수 있으며, 글 속의 의견은 개인적인 의견입니다.

Last updated on 7 Jan 2024