2021.07. ์ด์žฅ์žฌ ๐Ÿ“ง [email protected] ๐Ÿ“‚ https://github.com/jangjaelee ๐Ÿ“’ http://www.awx.kr



MetalLB ๋ž€?

MetalLB๋Š” Load Balancer๊ฐ€ ์—†๋Š” Bare-metal K8S cluster๋ฅผ ์œ„ํ•ด ํ‘œ์ค€ ๋ผ์šฐํŒ… ํ”„๋กœํ† ์ฝœ์„ ์‚ฌ์šฉํ•˜์—ฌ ์†Œํ”„ํŠธ์›จ์–ด์ ์œผ๋กœ Network Load Balancer๋ฅผ ๊ธฐ๋Šฅ์„ ๊ตฌํ˜„ ํ•ด์ฃผ๋Š” ์†”๋ฃจ์…˜ ์ž…๋‹ˆ๋‹ค.

Why MetalLB?

๊ทธ๋ ‡๋‹ค๋ฉด ์™œ MetalLB๋ฅผ ์‚ฌ์šฉ ํ•  ๊นŒ์š”?

Kubernetes์˜ Pod๋Š” ์ƒํ™ฉ์— ๋”ฐ๋ผ ์†Œ๋ฉธ๊ณผ ์žฌ์ƒ์„ฑ์„ ๋ฐ˜์กฑํ•˜๊ฒŒ ๋˜๋Š”๋ฐ ์ด ๋•Œ๋งˆ๋‹ค Pod์— ํ• ๋‹น๋˜๋Š” IP์ฃผ์†Œ๊ฐ€ ๋ณ€๊ฒฝ๋˜์–ด Endpoint๋กœ ์–ด๋ ต๊ฒŒ ๋ฉ๋‹ˆ๋‹ค. ๋˜ํ•œ ๋‹ค์ˆ˜์˜ Pod์—์„œ ๊ฐ™์€ ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•˜๋Š” ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ์šด์šฉํ•  ๊ฒฝ์šฐ ํŠธ๋ž˜ํ”ฝ์„ Pod์— ํ˜๋ ค ๋ณด๋‚ผ LoadBalancer๊ฐ€ ํ•„์š”ํ•˜๊ฒŒ ๋˜๋ฉฐ ๋‹จ์ผ Endpoint๋ฅผ ์™ธ๋ถ€๋กœ ๋…ธ์ถœ ์‹œํ‚ค๊ธฐ ์œ„ํ•ด Kubernetes์˜ Service ์˜ค๋ธŒ์ ํŠธ์—์„œ LoadBalancer Type์„ ํ†ตํ•ด ํ—ˆ์šฉ ํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.

LoadBalancer Type์„ ์‚ฌ์šฉํ•˜๋ฉด ์™ธ๋ถ€์—์„œ ์ ‘๊ทผ ๊ฐ€๋Šฅํ•œ External-IP๋ฅผ ํ• ๋‹น ๋ฐ›์•„์•ผ ํ•˜๋Š”๋ฐ LoadBalancer๋ฅผ ํ†ตํ•ด External-IP๋ฅผ ํ• ๋‹น ๋ฐ›๊ธฐ ์œ„ํ•ด์„œ๋Š” Managed Kubernets Service๋ฅผ ์ œ๊ณตํ•˜๋Š” Cloud Service Provier(CSP - AWS, GCP, Azure ๋“ฑ)์˜ Load Balancer(AWS - Elastic Load Balancer, Azure - Azure Load Balancer, GCP - Cloud Load Balancing)์—์„œ ์ œ๊ณต ๋ฐ›์„ ์ˆ˜ ์žˆ์ง€๋งŒ, Bare-metal ํ™˜๊ฒฝ์˜ Kubernetes๋Š” LoadBalancer๋ฅผ ์ œ๊ณต ํ•˜์ง€ ์•Š์•„ External-IP์— pending ์œผ๋กœ ์ฐํžˆ๋ฉฐ IP๋ฅผ ํ• ๋‹น ๋ฐ›์ง€ ๋ชป ํ•˜๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.

cluster ์•ˆ์œผ๋กœ client traffic์„ ๊ฐ€์ ธ์˜ค๊ธฐ ์œ„ํ•ด Service type์„ "NodePort"์™€ "externalIPs"์œผ๋กœ ์‚ฌ์šฉ ํ•  ์ˆ˜ ์žˆ์ง€๋งŒ ์ด ๋‘ ์˜ต์…˜์€ ๋ชจ๋‘ Production ํ™˜๊ฒฝ์—์„œ๋Š” ๋‹จ์ ๋“ค์ด ๋งŽ์Šต๋‹ˆ๋‹ค.

client traffic์„ Bare-metal Kubernetes cluster ๋‚ด๋กœ ๊ฐ€์ ธ์˜ค๊ธฐ ์œ„ํ•ด์„œ๋Š” Load Balancer ๊ตฌํ˜„ ํ•ด์ค„ ์ˆ˜ ์žˆ๋Š” Hardware Appliance Ingress Controller๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๋˜์ง€๋งŒ ์ƒ๋‹นํžˆ ๊ณ ๊ฐ€์˜ ์žฅ๋น„ ์ž…๋‹ˆ๋‹ค.

MetalLB๋Š” Software๋กœ Load Balancer ๊ธฐ๋Šฅ์„ ๊ตฌํ˜„ํ•˜์—ฌ Bare-metal Kubernetes cluster์—์„œ Network Load Balancer ์—†์ด Load Balancing ๊ธฐ๋Šฅ์„ ์ œ๊ณต ํ•˜๋Š” ์˜คํ”ˆ์†Œ์Šค ์†”๋ฃจ์…˜ ์ž…๋‹ˆ๋‹ค.

Hardware Appliance Ingress Controller

์ €๋„ ์‚ฌ์šฉ ๊ฒฝํ—˜์€ ์—†์ง€๋งŒ On-Premise ํ™˜๊ฒฝ์˜ Kubernetes์—์„œ Load Balancer๋ฅผ Hardware๋กœ ์‚ฌ์šฉ ํ•  ์ˆ˜ ์žˆ๋„๋ก Ingress Controller๋ฅผ ์ œ๊ณตํ•˜๋Š” Hardware Appliance๊ฐ€ ์žˆ์–ด ์•„๋ž˜ ๋งํฌ๋ฅผ ๋‚จ๊ธฐ๋‹ˆ ์ฐธ๊ณ  ํ•ด๋ณด์‹œ๊ธฐ ๋ฐ”๋ž๋‹ˆ๋‹ค.

  1. Ctirix ADC : https://docs.citrix.com/en-us/citrix-adc/current-release/cloud-native-solution/ingress-solution.html

    Untitled

  2. F5 BIG-IP : https://clouddocs.f5.com/containers/latest/userguide/loadbalancer/

    Untitled