- 인쇄
- PDF
Load Balancer 속성 설정 예제
- 인쇄
- PDF
VPC 환경에서 이용 가능합니다.
Load Balancer 인스턴스 연동에서 소개한 각종 어노테이션을 활용하여 Load Balancer 인스턴스의 속성을 설정하는 예제입니다.
Kubernetes에서 생성한 네이버 클라우드 플랫폼의 로드밸런서를 Kubernetes의 Service 리소스가 아닌 콘솔 및 API를 통해 설정하시는 경우, 상태 동기화에 문제가 발생할 수 있습니다. 생성된 로드밸런서에 대한 설정 변경은 반드시 Kubernetes에서 생성된 Service 리소스 수정을 통해 이루어져야 합니다.
네트워크 프록시 로드 밸런서(NPLB) 속성 설정 예제
인스턴스가 생성될 전용 서브넷 선택 예제
인스턴스 생성 시, kube-system 네임스페이스에서 ncloud-config 이름을 가진 configmap 내의 lbSubnetNo를 기본값으로 사용합니다. 만약 다른 로드 밸런서 전용 서브넷에 인스턴스를 생성해야 하는 경우 service.beta.kubernetes.io/ncloud-load-balancer-subnet-id
어노테이션을 사용할 수 있습니다.
다음은 NPLB 인스턴스가 생성될 전용 서브넷을 선택하는 예제입니다.
kind: Service
apiVersion: v1
metadata:
name: my-nginx
annotations:
service.beta.kubernetes.io/ncloud-load-balancer-layer-type: "nplb"
service.beta.kubernetes.io/ncloud-load-balancer-subnet-id: "452772"
spec:
ports:
- port: 80
targetPort: 80
selector:
run: my-nginx
type: LoadBalancer
로드 밸런서의 부하 처리 성능 설정 예제
service.beta.kubernetes.io/ncloud-load-balancer-size
어노테이션을 사용해 생성한 로드 밸런서의 부하 처리 성능을 설정할 수 있습니다.
다음은 해당 어노테이션을 사용해 부하 처리 성능을 설정하는 예제입니다.
kind: Service
apiVersion: v1
metadata:
name: my-nginx
annotations:
service.beta.kubernetes.io/ncloud-load-balancer-layer-type: "nplb"
service.beta.kubernetes.io/ncloud-load-balancer-size: "MEDIUM"
spec:
ports:
- port: 80
targetPort: 80
selector:
run: my-nginx
type: LoadBalancer
로드 밸런서의 공인 아이피 부여 예제
LoadBalancer
타입의 Service 일때, spec.loadBalancerIP
필드에 로드밸런서에 할당할 공인아이피를 정의할 수 있습니다.
해당 필드에는 네이버 클라우드 플랫폼 콘솔 > VPC > Public IP
메뉴에서 확인 할 수 있는 미할당 상태의 공인 아이피만 기술 할 수 있습니다.
기본적으로 로드밸런서를 삭제하면 할당된 공인 아이피도 함께 반납됩니다. 공인 아이피가 함께 반납되지 않도록 하기 위해 service.beta.kubernetes.io/ncloud-load-balancer-retain-public-ip-on-termination: "true"
annotation을 사용할 수 있습니다.
apiVersion: v1
kind: Service
metadata:
name: static-service
annotations:
service.beta.kubernetes.io/ncloud-load-balancer-layer-type: "nplb"
service.beta.kubernetes.io/ncloud-load-balancer-retain-public-ip-on-termination: "true"
spec:
loadBalancerIP: 110.234.194.181
type: LoadBalancer
ports:
- port: 80
targetPort: 8080
protocol: TCP
name: http
selector:
app: nginx
네트워크 로드 밸런서(NLB) 속성 설정 예제
인스턴스가 생성될 전용 서브넷 선택 예제
인스턴스 생성 시, kube-system 네임스페이스에서 ncloud-config 이름을 가진 configmap 내의 lbSubnetNo를 기본값으로 사용합니다. 만약 다른 로드 밸런서 전용 서브넷에 인스턴스를 생성해야 하는 경우 service.beta.kubernetes.io/ncloud-load-balancer-subnet-id
어노테이션을 사용할 수 있습니다.
다음은 NLB 인스턴스가 생성될 전용 서브넷을 선택하는 예제입니다.
kind: Service
apiVersion: v1
metadata:
name: my-nginx
annotations:
service.beta.kubernetes.io/ncloud-load-balancer-layer-type: "nlb"
service.beta.kubernetes.io/ncloud-load-balancer-subnet-id: "452772"
spec:
ports:
- port: 80
targetPort: 80
selector:
run: my-nginx
type: LoadBalancer
로드 밸런서의 공인 아이피 부여 예제
LoadBalancer
타입의 Service 일때, spec.loadBalancerIP
필드에 로드밸런서에 할당할 공인아이피를 정의할 수 있습니다.
해당 필드에는 네이버 클라우드 플랫폼 콘솔 > VPC > Public IP
메뉴에서 확인 할 수 있는 미할당 상태의 공인 아이피만 기술 할 수 있습니다.
기본적으로 로드밸런서를 삭제하면 할당된 공인 아이피도 함께 반납됩니다. 공인 아이피가 함께 반납되지 않도록 하기 위해 service.beta.kubernetes.io/ncloud-load-balancer-retain-public-ip-on-termination: "true"
annotation을 사용할 수 있습니다.
apiVersion: v1
kind: Service
metadata:
name: static-service
annotations:
service.beta.kubernetes.io/ncloud-load-balancer-layer-type: "nlb"
service.beta.kubernetes.io/ncloud-load-balancer-retain-public-ip-on-termination: "true"
spec:
loadBalancerIP: 110.234.194.181
type: LoadBalancer
ports:
- port: 80
targetPort: 8080
protocol: TCP
name: http
selector:
app: nginx
로드 밸런서 생성 시 ACG 규칙의 Inbound Source 설정 예제
Service 타입이 LoadBalancer인 경우, 외부와의 통신을 위해 Inbound Source에 0.0.0.0./0인 ACG 규칙이 기본값으로 설정됩니다. 만약 다른 IP Block을 접근 소스로 설정해야 하는 경우 service.beta.kubernetes.io/ncloud-load-balancer-inbound-source
의 어노테이션을 사용할 수 있습니다. 여러 개의 Inbound Source를 설정하고자 할 경우에는 콤마(,)로 구분하여 입력할 수 있습니다.
다음은 NLB 인스턴스 생성 시 ACG 규칙의 Inbound Source를 설정하는 예제입니다.
kind: Service
apiVersion: v1
metadata:
name: my-nginx
annotations:
service.beta.kubernetes.io/ncloud-load-balancer-layer-type: "nlb"
service.beta.kubernetes.io/ncloud-load-balancer-inbound-source: "10.120.0.0/16,143.248.12.77/32"
spec:
ports:
- port: 80
targetPort: 80
selector:
run: my-nginx
type: LoadBalancer
UDP 로드밸런싱 설정
네트워크 로드밸런서(NLB)는 UDP 로드밸런싱을 지원합니다. protocol 필드에 UDP를 지정하는 예시는 다음과 같습니다.
apiVersion: v1
kind: Service
metadata:
name: sample-udp-app
spec:
type: LoadBalancer
ports:
- port: 9092
targetPort: 9092
protocol: UDP
selector:
app: sample-udp-app