4GPU Server
8GPU Server
10GPU Server
나라장터 등록제품
2GPU Workstation
4GPU Workstation
WEB Server
WAS Server
고성능 DB
타워형서버
나라장터 등록제품
1CPU Workstation
2CPU Workstation
나라장터 등록제품
Cloud
Open Source
NVIDIA
HCI
Backup
MLOps
k8s는 대다수의 서비스를 함께 배포하지만, 일부 서비스는 외부 서비스를 사용해야 합니다. 그중 대표적인게 네트워크 서비스 중 하나인 LoadBalancer입니다. k8s에서 제공하는 네트워크 모드는 clusterIP, NodePort, LoadBalancer 3가지입니다. 이 포스팅에서는 LoadBalancer 사용을 위해 MetalLB를 구성합니다.
Metal LB 사용을 위해 ARP 모드를 활성화합니다.
Metal LB는 설치용 yaml 파일을 제공합니다. 매우 간단하게 설치할 수 있습니다.
여기서는 IPAddressPool 을 2개 생성하고, L2 네트워크에 IPAddressPool을 등록하여 구성합니다. L2 네트워크에 직접 IP Pool을 구성하여 사용할 수도 있습니다.
Metal LB가 구성되었으니 테스트해 보겠습니다. nginx deployment를 생성하고 replicas를 3개로 구성합니다.
생성한 deploy의 서비스를 생성합니다. 서비스 타입을 LoadBalancer로 구성합니다.
서비스가 생성되면 서비스 목록에서 [CLUSTER-IP]와 [EXTERNAL-IP]가 둘 다 생성되는 것을 확인할 수 있습니다. [EXTERNAL-IP]는 위에서 생성한 IP 풀 내에서 할당되고, 외부에서 접속이 가능합니다.
기존 서비스의 경우 kubectl edit를 이용하여 [type: ClusterIP]를 [type: LoadBalancer]로 수정하면 적용됩니다.