Ssoon

[2주차] CHAPTER-08 MetalLB 로드밸랜서 구축 본문

Production Kubernetes Online Study

[2주차] CHAPTER-08 MetalLB 로드밸랜서 구축

구구달스 2023. 3. 14. 20:18
이정훈님이 집필하신 "24단계 실습으로 정복하는 쿠버네티스" 로 진행하는 CloudNet@ 팀의 PKOS 2주차 정리입니다.

✅ 헬름을 이용한 MetalLB 설치

💠 Heml을 이용해 설치합니다.

💠 로드 밸런서 서비스에 할당할 IP 정의합니다.

💠  L2 CONFIGURATION 설정합니다.

로컬 네트워크의 ARP 요청에 직접 응답하여 시스템의 MAC 주소를 클라이언트에 제공하는 방식으로 작동합니다.

💠 데모 용도의 애플리케이션 voting-app 을 설치합니다.

💠 voting-app 의 서비스 타입을 LoadBalancer 되어 있는지 확인합니다.

💠 LoadBalancer 정보를 확인하고 EXTERNAL-IP 로 접속하여 확인합니다.

💠 vote 파드를 3개로 변경합니다.

💠  for 반복문을 이용해 부하분산을 확인합니다.

MetalLB 파드 아키텍처

kubetail  설치

  kubetail : 복수의 Pod 로그를 동시에 확인

💠 kubetail 을 설치합니다.

💠 metallb-system  네임스페이스에서  speaker 를 인자로 사용해서 동시에 3개의 Pod 의 로그를 확인 할 수 있습니다.

⛔ MetalLB 파드 로그 확인

💠 실행 중이던 서비스를 삭제하고 다시 생성합니다.

💠 서비스를 시작하면 controller pod (metallb-controller-777d84cdd5-55x5r) 가 external ip (192.168.219.70) 를 특정 speaker pod (metallb-speaker-72dmx) 에 할당하고 처리합니다. 

💠 speaker pod가 생성된 node에 접속하여 라우팅 정보르 확인합니다.
✔ external ip 를  요청하면 각 Pod 의 IP 가 응답합니다.

MetalLB 부하 테스트 및 고가용성

⛔ K6를 이용한 부하 테스트

https://k6.io/docs/get-started/installation/

 

Installation

k6 has packages for Linux, Mac, and Windows. As alternatives, you can also using a Docker container or a standalone binary.

k6.io

💠 k6 를 설치합니다.

💠 스크립트를 준비합니다.

💠  부하 테스트를 실행합니다.

⛔ 노드 장애 시 서비스 다운시간 

💠 서비스 단절 시간을 측정하기 위한 스크립트를 실행하고 EXTERNAL IP 를 처리하는 POD가 실행 중인 노드를 재부팅합니다.

💠 재부팅 후 curl 로그를 확인합니다.

  13:52 ~ 15:54 의 서비스 단절이 발생했습니다.

📌 MetalLB 레이어 2모드의 단점으로  BGP 모드를 사용하면 서비스 단절 시간을 줄일 수 있습니다.

Comments