1.2.1.2 OCI Load Balancer 상세 설정하기
OCI Load Balancer는 OCI에서 제공하고 있는 L7 로드 밸런서입니다. HTTP/HTTPS, HTTP/2, TCP의 프로토콜을 지원합니다. HTTP 기반 서비스 사용시 OCI Certificate을 통해 인증서 서비스를 연동하거나, OCI WAF, WAA 등과 연동을 할 수 있습니다.
기본 생성 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
OCI Load Balancer 상세 설정하기
OCI Load Balancer의 설정가능한 annotations 전체 항목 에서 보듯이 annotation을 통해 추가적인 설정 기능을 제공합니다.
-
OCI Load Balancer를 사용하는 경우, 전체 annotations 중에서 아래 조합으로 기본적인 설정을 할 수 있겠습니다.
# nginx-docker-hub-svc-v2.yaml --- apiVersion: v1 kind: Service metadata: name: nginx-docker-hub-svc annotations: oci.oraclecloud.com/load-balancer-type: "lb" service.beta.kubernetes.io/oci-load-balancer-shape: "flexible" service.beta.kubernetes.io/oci-load-balancer-shape-flex-min: "10" service.beta.kubernetes.io/oci-load-balancer-shape-flex-max: "10" service.beta.kubernetes.io/oci-load-balancer-backend-protocol: "HTTP" 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
"lb"
Default: "lb"
- OCI Load Balancer 사용,
* L7지원
"nlb"
- OCI Network Load Balancer 사용시
* L4 지원service.beta.kubernetes.io/oci-load-balancer-shape
"flexible"
Default: "100Mbps"
flexible shape 선택service.beta.kubernetes.io/oci-load-balancer-shape-flex-min
"10"
flexible 유형인 경우 최소 용량 지정 service.beta.kubernetes.io/oci-load-balancer-shape-flex-max
"10"
flexible 유형인 경우 최대 용량 지정 service.beta.kubernetes.io/oci-load-balancer-backend-protocol
"HTTP"
Default: "TCP"
Load Balancer의 Listener의 프로토콜을 지정
WAF, WAA 지원을 위해 HTTP으로 지정 -
spec.loadBalancerIP
: Reserved Public IP를 사전에 만들어 가지고 있는 경우, 해당 IP를 직접 입력하여, 생성되는 Load Balancer에 원하는 IP를 부여합니다.
-
-
생성결과
-
Flexible Shape, Reserved Public IP
-
Bandwidth
-
Protocol
-
-
추가사항: Internal Load Balancer
-
생성되는 위치가 Private Subnet인 경우, 아래 옵션을 추가로 지정합니다.
metadata: annotations: service.beta.kubernetes.io/oci-load-balancer-internal: "true" ...
- 지정하지 않는 경우 Kubernetes상의 오류와 함께 OCI Load Balancer 자체가 생성되지 않습니다.
- 위 항목 지정시,
spec.loadBalancerIP
는 동작하지 않습니다.
-
이 글은 개인으로서, 개인의 시간을 할애하여 작성된 글입니다. 글의 내용에 오류가 있을 수 있으며, 글 속의 의견은 개인적인 의견입니다.