SuSu DaDDy

[k8s] load balancer for bare-metal

by SuSu Daddy
반응형

□ 개념 정리

Kubernetes는 bare-metal 클러스터에서는 LoadBalancer 서비스 구현을 제공하지 않는다.

이를 해결하기 위해서는 bare-metal 환경에서 운영되는 시스템은 MetalLB설치를 통해 해결 가능하다.

 ※ MetalLB:  온프레미스/베어메탈로 구성된 쿠버네티스에서도 로드밸런서를 사용할 수 있게 고안된 프로젝트. 기존의 L2

네트워크(ARP/NDP)와 L3(BGP)로 로드밸런서를 구현.

 

□ MetalLB 설치

MetalLB 설치를 위해 namespace를 만들고 MetalLB 컴포넌트를 생성

# 네임스페이스 생성
kubectl apply -f https://raw.githubusercontent.com/metallb/metallb/v0.10.2/manifests/namespace.yaml

# MetalLB components 생성
kubectl apply -f https://raw.githubusercontent.com/metallb/metallb/v0.10.2/manifests/metallb.yaml

configmap으로 등록된 address-pools 대역으로 LoadBalancer 포트가 지정된다

#config.yaml
apiVersion: v1
kind: ConfigMap
metadata:
  namespace: metallb-system
  name: config
data:
  config: |
    address-pools:
    - name: default
      protocol: layer2
      addresses:
      - 10.100.0.110-10.100.0.120 #Control-planel 및 worker 노드와 동일한 네트워크 대역 설정
      
# yaml파일 적용
# kubectl apply -f config.yaml

 

반응형

블로그의 정보

SuSu Daddy

SuSu Daddy

활동하기