Post

[Kubernetes] ๐Ÿšฆ ์ฟ ๋ฒ„๋„คํ‹ฐ์Šค ํŠธ๋ž˜ํ”ฝ ๊ตฌ์กฐ: ๋กœ๋“œ๋ฐธ๋Ÿฐ์„œ๋Š” ์–ด๋””์— ๋“ค์–ด๊ฐˆ๊นŒ

์ฟ ๋ฒ„๋„คํ‹ฐ์Šค์—์„œ ๋กœ๋“œ๋ฐธ๋Ÿฐ์„œ๊ฐ€ ๋“ค์–ด๊ฐ€๋Š” ๋‘ ์ž๋ฆฌ(๋งˆ์Šคํ„ฐ ์•ž, ์•ฑ ์•ž)๋ฅผ ๊ตฌ๋ถ„ํ•˜๊ณ , ์•ฑ ์š”์ฒญ์ด ๋งˆ์Šคํ„ฐ๋ฅผ ๊ฑฐ์น˜์ง€ ์•Š๋Š” ์ปจํŠธ๋กค ํ”Œ๋ ˆ์ธ vs ๋ฐ์ดํ„ฐ ํ”Œ๋ ˆ์ธ ๊ตฌ์กฐ๋ฅผ ์ •๋ฆฌํ•ฉ๋‹ˆ๋‹ค.

[Kubernetes] ๐Ÿšฆ ์ฟ ๋ฒ„๋„คํ‹ฐ์Šค ํŠธ๋ž˜ํ”ฝ ๊ตฌ์กฐ: ๋กœ๋“œ๋ฐธ๋Ÿฐ์„œ๋Š” ์–ด๋””์— ๋“ค์–ด๊ฐˆ๊นŒ

์ฟ ๋ฒ„๋„คํ‹ฐ์Šค์—์„œ ๋กœ๋“œ๋ฐธ๋Ÿฐ์„œ๊ฐ€ ์ •ํ™•ํžˆ ์–ด๋””์— ๋“ค์–ด๊ฐ€๋Š”์ง€ ํ—ท๊ฐˆ๋ฆฌ๋ฉด ํŠธ๋ž˜ํ”ฝ ๊ตฌ์กฐ ์ „์ฒด๊ฐ€ ์•ˆ ๊ทธ๋ ค์ง‘๋‹ˆ๋‹ค. ์ด ๊ธ€์—์„œ๋Š” LB๊ฐ€ ๋“ค์–ด๊ฐˆ ๋‘ ์ž๋ฆฌ(๋งˆ์Šคํ„ฐ API ์„œ๋ฒ„ ์•ž, ์•ฑ ์ธ๊ทธ๋ ˆ์Šค ์•ž)๋ฅผ ๊ตฌ๋ถ„ํ•˜๊ณ , โ€œ๋งˆ์Šคํ„ฐ๊ฐ€ ์—ฌ๋Ÿฌ ๋Œ€๋ฉด LB๊ฐ€ ํ•„์š” ์—†๋‹คโ€๋Š” ํ”ํ•œ ์˜คํ•ด๋ฅผ ์ •์ •ํ•˜๋ฉฐ, ์•ฑ ์š”์ฒญ์€ ๋งˆ์Šคํ„ฐ๋ฅผ ๊ฑฐ์น˜์ง€ ์•Š๋Š”๋‹ค๋Š” ์ปจํŠธ๋กค ํ”Œ๋ ˆ์ธ vs ๋ฐ์ดํ„ฐ ํ”Œ๋ ˆ์ธ์˜ ํ•ต์‹ฌ ๊ตฌ์กฐ๋ฅผ ์ •๋ฆฌํ•ฉ๋‹ˆ๋‹ค.

์ด ์‹œ๋ฆฌ์ฆˆ๋Š” ์ฟ ๋ฒ„๋„คํ‹ฐ์Šค gRPC ์‚ฝ์งˆ์—์„œ ์ถœ๋ฐœํ•ด HTTP/2ยทTLSยท๋กœ๋“œ๋ฐธ๋Ÿฐ์„œยทGateway APIยท์ธ์ฆ์„œ๊นŒ์ง€ ํ’€์–ด๊ฐ€๋Š” ๊ธฐ๋ก์ž…๋‹ˆ๋‹ค. ์ด๋ฒˆ 4ํŽธ์€ ์ฟ ๋ฒ„๋„คํ‹ฐ์Šค ํŠธ๋ž˜ํ”ฝ ๊ตฌ์กฐ ํŽธ์ž…๋‹ˆ๋‹ค. ์•ž์„  1ํŽธ(๋ฌธ์ œ์™€ ํ•ด๊ฒฐ), 2ํŽธ(h2 vs h2c), 3ํŽธ(L4 vs L7)์„ ๋จผ์ € ๋ณด๋ฉด ์ข‹์Šต๋‹ˆ๋‹ค.


๐Ÿ“ ๋กœ๋“œ๋ฐธ๋Ÿฐ์„œ๊ฐ€ ๋“ค์–ด๊ฐˆ ๋‘ ์ž๋ฆฌ

์ฟ ๋ฒ„๋„คํ‹ฐ์Šค์—์„œ ๋กœ๋“œ๋ฐธ๋Ÿฐ์„œ๊ฐ€ ๋“ค์–ด๊ฐˆ ์ž๋ฆฌ๋Š” ๋‘ ๊ตฐ๋ฐ์ž…๋‹ˆ๋‹ค. ์ด ๋‘˜์„ ๋ถ„๋ฆฌํ•˜๋Š” ๊ฒŒ ์ด๋ฒˆ ํŽธ์˜ ์ „๋ถ€์ž…๋‹ˆ๋‹ค.

์ž๋ฆฌ์œ„์น˜๋‹ค๋ฃจ๋Š” ํŠธ๋ž˜ํ”ฝ์‚ฌ์šฉ LB
์ž๋ฆฌ โ‘ ๋งˆ์Šคํ„ฐ(API ์„œ๋ฒ„) ์•ž๊ด€๋ฆฌ ํŠธ๋ž˜ํ”ฝ (kubectlยท์›Œ์ปค๋…ธ๋“œ โ†’ ๋งˆ์Šคํ„ฐ)์™ธ๋ถ€ L4 (HAProxy, kube-vip)
์ž๋ฆฌ โ‘ก์•ฑ(์ธ๊ทธ๋ ˆ์Šค) ์•ž์„œ๋น„์Šค ํŠธ๋ž˜ํ”ฝ (์™ธ๋ถ€ ์‚ฌ์šฉ์ž โ†’ Pod)์ธ๊ทธ๋ ˆ์Šค ์ปจํŠธ๋กค๋Ÿฌ L7 (nginx, Contour)

์ด ๋‘˜์€ ๋ชฉ์ ๋„, ์œ„์น˜๋„, ๋‹ค๋ฃจ๋Š” ํŠธ๋ž˜ํ”ฝ๋„ ์™„์ „ํžˆ ๋‹ค๋ฆ…๋‹ˆ๋‹ค.


๐Ÿšช ์ž๋ฆฌ โ‘ก: ์ธ๊ทธ๋ ˆ์Šค โ€” nginxยทContourยทHAProxy๋Š” ์„œ๋กœ ๋Œ€์•ˆ

์•ฑ ํŠธ๋ž˜ํ”ฝ์ด ๋“ค์–ด์˜ค๋Š” ์ž…๊ตฌ์ด๋ฉฐ, 3ํŽธ์—์„œ ๋ณธ L7 ๋กœ๋“œ๋ฐธ๋Ÿฐ์„œ๊ฐ€ ์—ฌ๊ธฐ ๋“ค์–ด๊ฐ‘๋‹ˆ๋‹ค.

nginxยทContourยทHAProxy(์ธ๊ทธ๋ ˆ์Šค ์ปจํŠธ๋กค๋Ÿฌ)ยทEnvoy Gateway ๋“ฑ์€ ๊ฐ™์€ ์ž๋ฆฌ๋ฅผ ๋†“๊ณ  ๊ฒฝ์Ÿํ•˜๋Š” ๋Œ€์•ˆ๋“ค์ž…๋‹ˆ๋‹ค. ์œ„๋กœ ์Œ“๋Š” ๊ฒŒ ์•„๋‹ˆ๋ผ ํ•˜๋‚˜๋งŒ ๊ณ ๋ฅด๋ฉด ๋ฉ๋‹ˆ๋‹ค. nginx๋‚˜ Contour๋ฅผ ์ธ๊ทธ๋ ˆ์Šค ์ปจํŠธ๋กค๋Ÿฌ๋กœ ์“ฐ๋ฉด, ๊ทธ ์—ญํ• ์—์„œ HAProxy๋Š” ๋”ฐ๋กœ ํ•„์š” ์—†์Šต๋‹ˆ๋‹ค.


๐Ÿงญ ์ž๋ฆฌ โ‘ : ๋งˆ์Šคํ„ฐ ์•ž LB โ€” ํ”ํ•œ ์˜คํ•ด

โ“ ํ”ํ•œ ์˜คํ•ด: โ€œ๋งˆ์Šคํ„ฐ๊ฐ€ ์—ฌ๋Ÿฌ ๋Œ€๋ฉด ์•Œ์•„์„œ ๋ถ„์‚ฐํ•˜๋‹ˆ๊นŒ, LB๋Š” ํ•„์š” ์—†๋Š” ๊ฑฐ ์•„๋ƒ?โ€

์‚ฌ์‹ค์€ ์ •๋ฐ˜๋Œ€์ž…๋‹ˆ๋‹ค. ๋งˆ์Šคํ„ฐ๊ฐ€ ์—ฌ๋Ÿฌ ๋Œ€์ธ ๊ฒƒ์ด ๊ณง LB๊ฐ€ ํ•„์š”ํ•œ ์ด์œ ์ž…๋‹ˆ๋‹ค.

API ์„œ๋ฒ„๋“ค์€ ์„œ๋กœ ํด๋ผ์ด์–ธํŠธ ์š”์ฒญ์„ ๋‚˜๋ˆ ์ฃผ์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๋งˆ์Šคํ„ฐ 3๋Œ€ = ๋…๋ฆฝ์ ์œผ๋กœ ๋„๋Š” API ์„œ๋ฒ„ 3๊ฐœ์ด๊ณ , โ€œ๋Œ€ํ‘œ ์ฐฝ๊ตฌโ€๊ฐ€ ๋‚ด์žฅ๋ผ ์žˆ์ง€ ์•Š์Šต๋‹ˆ๋‹ค. LB๊ฐ€ ์—†์œผ๋ฉด kubectl์ด ๋งˆ์Šคํ„ฐ ํ•œ ๋Œ€์˜ IP๋ฅผ ์ฝ• ์ฐ์–ด์•ผ ํ•˜๊ณ , ๊ทธ ๋งˆ์Šคํ„ฐ๊ฐ€ ์ฃฝ์œผ๋ฉด ๋‚˜๋จธ์ง€๊ฐ€ ๋ฉ€์ฉกํ•ด๋„ ์ ‘์†์ด ๋Š๊น๋‹ˆ๋‹ค. HA(๊ณ ๊ฐ€์šฉ์„ฑ)์˜ ์˜๋ฏธ๊ฐ€ ์‚ฌ๋ผ์ง‘๋‹ˆ๋‹ค.

1
2
3
kubectl โ”€โ”€โ–ถ LB โ”€โ”€โ”ฌโ”€ master1 (API์„œ๋ฒ„)
                  โ”œโ”€ master2 (API์„œ๋ฒ„)   โ† ํ•œ ๋Œ€ ์ฃฝ์–ด๋„ LB๊ฐ€ ๋‹ค๋ฅธ ๋ฐ๋กœ
                  โ””โ”€ master3 (API์„œ๋ฒ„)

์ด ์ž๋ฆฌ์—” ์ธ๊ทธ๋ ˆ์Šค ์ปจํŠธ๋กค๋Ÿฌ(nginx/Contour)๋ฅผ ๋ชป ์”๋‹ˆ๋‹ค. ๊ทธ๋“ค์€ ํด๋Ÿฌ์Šคํ„ฐ ์•ˆ์—์„œ Pod๋กœ ๋„๋Š”๋ฐ, ๋งˆ์Šคํ„ฐ ์•ž LB๋Š” ํด๋Ÿฌ์Šคํ„ฐ๊ฐ€ ๋–  ์žˆ๊ธฐ ์ „์— ๋ฐ”๊นฅ์— ์žˆ์–ด์•ผ ํ•˜๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค(๋‹ญ-๋‹ฌ๊ฑ€ ๋ฌธ์ œ). ๊ทธ๋ž˜์„œ ์ž๋ฆฌ โ‘ ์€ HAProxyยทkube-vip ๊ฐ™์€ ์™ธ๋ถ€ L4 LB๊ฐ€ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.

Tip: ๋งˆ์Šคํ„ฐ๊ฐ€ 1๋Œ€์ธ ๋ณดํ†ต์˜ ํ…Œ์ŠคํŠธ/ํ™ˆ๋žฉ ๊ตฌ์„ฑ์ด๋ฉด ์ด ์ž๋ฆฌ๋Š” ์•„์˜ˆ ํ•„์š” ์—†์Šต๋‹ˆ๋‹ค.


๐Ÿ”„ ๊ทธ๋Ÿผ ๋งˆ์Šคํ„ฐ๋“ค๋ผ๋ฆฌ โ€œ์•Œ์•„์„œโ€ ํ•˜๋Š” ๊ฑด ๋ญ˜๊นŒ

๋งˆ์Šคํ„ฐ๋“ค์ด ํ˜‘์กฐํ•˜๊ธด ํ•˜์ง€๋งŒ, ๊ทธ ํ˜‘์กฐ๋Š” ์ƒํƒœ ๊ณต์œ ์ด์ง€ ์š”์ฒญ ๋ถ„๋ฐฐ๊ฐ€ ์•„๋‹™๋‹ˆ๋‹ค. ์˜คํ•ด์˜ ๋ฟŒ๋ฆฌ๊ฐ€ ์—ฌ๊ธฐ ์žˆ์Šต๋‹ˆ๋‹ค.

  • etcd๋ผ๋Š” ๊ณต๋™ ์ €์žฅ์†Œ์— ํด๋Ÿฌ์Šคํ„ฐ ์ƒํƒœ๋ฅผ ํ•จ๊ป˜ ๋ณด๊ด€ํ•˜๊ณ , ๋‚ด๋ถ€์ ์œผ๋กœ ๋ฆฌ๋”๋ฅผ ๋ฝ‘์•„ ๋™๊ธฐํ™”ํ•ฉ๋‹ˆ๋‹ค.
  • ์ผ๋ถ€ ์ปดํฌ๋„ŒํŠธ(์Šค์ผ€์ค„๋Ÿฌ, ์ปจํŠธ๋กค๋Ÿฌ ๋งค๋‹ˆ์ € ๋“ฑ)๋„ ๋ฆฌ๋”๋ฅผ ์„ ์ถœํ•ด ํ•˜๋‚˜๋งŒ ๋™์ž‘ํ•ฉ๋‹ˆ๋‹ค(leader election).

ํ•˜์ง€๋งŒ ์ด๊ฑด ์ „๋ถ€ โ€œ๋ฐ์ดํ„ฐ๋ฅผ ๋งž์ถ”๋Š”โ€ ์–˜๊ธฐ์ž…๋‹ˆ๋‹ค. โ€œ๋“ค์–ด์˜จ ํด๋ผ์ด์–ธํŠธ ์š”์ฒญ์„ ์ฐฝ๊ตฌ์—์„œ ๋‚˜๋ˆ ์ฃผ๋Š”โ€ ์ผ์€ ์•„๋‹™๋‹ˆ๋‹ค. ๊ทธ ์ฐฝ๊ตฌ ๋ถ„๋ฐฐ๊ฐ€ ๋ฐ”๋กœ LB์˜ ๋ชซ์ž…๋‹ˆ๋‹ค.


๐Ÿง  ์ปจํŠธ๋กค ํ”Œ๋ ˆ์ธ vs ๋ฐ์ดํ„ฐ ํ”Œ๋ ˆ์ธ โ€” ์•ฑ ์š”์ฒญ์€ ๋งˆ์Šคํ„ฐ๋ฅผ ์•ˆ ๊ฑฐ์นœ๋‹ค

๊ฐ€์žฅ ์ค‘์š”ํ•œ ๊ตฌ์กฐ์  ์‚ฌ์‹ค์€ ์•ฑ ์š”์ฒญ์ด ๋งˆ์Šคํ„ฐ ์„œ๋ฒ„๋ฅผ ํ†ต๊ณผํ•˜์ง€ ์•Š๋Š”๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์ฟ ๋ฒ„๋„คํ‹ฐ์Šค์—” ๋ถ„๋ฆฌ๋œ ๋‘ ๊ฒฝ๋กœ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.

1
2
3
4
5
[๊ด€๋ฆฌ ๊ฒฝ๋กœ โ€” ๋งˆ์Šคํ„ฐ ์‚ฌ์šฉ (์ปจํŠธ๋กค ํ”Œ๋ ˆ์ธ)]
kubectl / kubelet โ”€โ”€โ–ถ ๋งˆ์Šคํ„ฐ(API์„œ๋ฒ„)

[์•ฑ ์š”์ฒญ ๊ฒฝ๋กœ โ€” ๋งˆ์Šคํ„ฐ ์•ˆ ๊ฑฐ์นจ (๋ฐ์ดํ„ฐ ํ”Œ๋ ˆ์ธ)]
ํด๋ผ์ด์–ธํŠธ โ”€โ”€โ–ถ ์ธ๊ทธ๋ ˆ์Šค(nginx/Contour) โ”€โ”€โ–ถ Service โ”€โ”€โ–ถ Pod

๋งˆ์Šคํ„ฐ๋Š” โ€œ์–ด๋–ค Pod๊ฐ€ ์žˆ๋Š”์ง€โ€ ์ •๋ณด๋ฅผ ๊ด€๋ฆฌํ•˜๊ณ  ์ธ๊ทธ๋ ˆ์Šคยท๋…ธ๋“œ์— ๋ฏธ๋ฆฌ ๋ฟŒ๋ ค๋‘˜ ๋ฟ, ์š”์ฒญ์„ ์ง์ ‘ ๋ฐ›์•„ ์ „๋‹ฌํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

๊ฑด๋ฌผ ๊ด€๋ฆฌ์‹ค ๋น„์œ 

  • ๋งˆ์Šคํ„ฐ = ๊ฑด๋ฌผ ๊ด€๋ฆฌ์‹ค. ๋ˆ„๊ฐ€ ๋ช‡ ํ˜ธ์— ์‚ฌ๋Š”์ง€ ๋ช…๋ถ€๋ฅผ ๊ด€๋ฆฌํ•˜๊ณ , ์ž…์ฃผ์ž๊ฐ€ ์˜ค๊ณ  ๊ฐ€๋ฉด(Pod ์ƒ์„ฑยท์‚ญ์ œ) ๋ช…๋ถ€๋ฅผ ๊ฐฑ์‹ ํ•ฉ๋‹ˆ๋‹ค.
  • ์ธ๊ทธ๋ ˆ์Šค = ๋กœ๋น„์˜ ์•ˆ๋‚ด ํ‘œ์ง€ํŒ. ๊ด€๋ฆฌ์‹ค์ด ๊ฐฑ์‹ ํ•ด๋‘” ์ •๋ณด๋กœ ์ฑ„์›Œ์ ธ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ๋ฐฉ๋ฌธ์ž(์š”์ฒญ) ๋Š” ๊ด€๋ฆฌ์‹ค์— ๋“ค๋ฅด์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ํ‘œ์ง€ํŒ๋งŒ ๋ณด๊ณ  ๊ณง์žฅ ํ•ด๋‹น ํ˜ธ์‹ค(Pod)๋กœ ๊ฐ‘๋‹ˆ๋‹ค.

๊ทธ๋ž˜์„œ ๋งˆ์Šคํ„ฐ๊ฐ€ ์ž ๊น ๋ฐ”๋น ๋„, ์ด๋ฏธ ๋–  ์žˆ๋Š” ์•ฑ๋“ค์€ ๋ฉ€์ฉกํžˆ ์š”์ฒญ์„ ์ฒ˜๋ฆฌํ•ฉ๋‹ˆ๋‹ค. ๋งˆ์Šคํ„ฐ๋Š” โ€œ์ •๋ณด๋ฅผ ๋‚˜๋ˆ ์ฃผ๋Š” ๋‘๋‡Œโ€์ด์ง€ โ€œ์š”์ฒญ์„ ๋‚˜๋ˆ ์ฃผ๋Š” ์ฐฝ๊ตฌโ€๊ฐ€ ์•„๋‹™๋‹ˆ๋‹ค.

๐Ÿ“Œ 1ํŽธ์—์„œ port-forward๋กœ ์•ฑ์„ ๊ฒฉ๋ฆฌ ํ…Œ์ŠคํŠธํ–ˆ๋Š”๋ฐ, ์ด๊ฑด ์˜ˆ์™ธ์ž…๋‹ˆ๋‹ค. port-forward ๊ฐ™์€ ๋””๋ฒ„๊ทธ ํ†ต๋กœ๋Š” ๊ด€๋ฆฌ ๊ฒฝ๋กœ(API ์„œ๋ฒ„)๋ฅผ ๊ฑฐ์น˜๋Š” ํŠน์ˆ˜ ์ผ€์ด์Šค์ž…๋‹ˆ๋‹ค. ์ผ๋ฐ˜ ์„œ๋น„์Šค ํŠธ๋ž˜ํ”ฝ์ด ๋งˆ์Šคํ„ฐ๋ฅผ ์•ˆ ๊ฑฐ์นœ๋‹ค๋Š” ๋œป์ž…๋‹ˆ๋‹ค.


โ†”๏ธ ๋ค: Ingress์™€ Egress

๊ฐ™์€ ๋งฅ๋ฝ์—์„œ ์ž์ฃผ ๋‚˜์˜ค๋Š” ์ง์ด Ingress / Egress์ด๋ฉฐ, ํŠธ๋ž˜ํ”ฝ์˜ ๋ฐฉํ–ฅ์„ ๊ฐ€๋ฆฌํ‚ต๋‹ˆ๋‹ค.

๊ตฌ๋ถ„๋ฐฉํ–ฅ์˜ˆ์‹œ๋‹ค๋ฃจ๋Š” ๋ฐฉ๋ฒ•
Ingress์™ธ๋ถ€ โ†’ ํด๋Ÿฌ์Šคํ„ฐ ์•ˆ์‚ฌ์šฉ์ž๊ฐ€ ์•ฑ์— ์ ‘์†Ingress ๊ฐ์ฒด, Gateway API
Egressํด๋Ÿฌ์Šคํ„ฐ ์•ˆ โ†’ ์™ธ๋ถ€Pod๊ฐ€ ์™ธ๋ถ€ APIยทDB ํ˜ธ์ถœNetworkPolicy egress, Egress Gateway

Ingress๋Š” ์ •์‹ ๊ฐ์ฒด๊ฐ€ ์žˆ์ง€๋งŒ Egress๋ผ๋Š” ๋‹จ์ผ ๊ฐ์ฒด๋Š” ์—†๊ณ , NetworkPolicy์˜ egress ๊ทœ์น™์ด๋‚˜ Egress Gateway๋กœ ๋‹ค๋ฃน๋‹ˆ๋‹ค. ํ™ˆ๋žฉ ํ…Œ์ŠคํŠธ ์ˆ˜์ค€์—์„  ๋ณดํ†ต egress๋ฅผ ๋”ฐ๋กœ ์‹ ๊ฒฝ ์“ฐ์ง€ ์•Š์•„๋„ ๋ฉ๋‹ˆ๋‹ค(Pod๋Š” ๊ธฐ๋ณธ์ ์œผ๋กœ ์™ธ๋ถ€๋กœ ์ž์œ ๋กญ๊ฒŒ ๋‚˜๊ฐ‘๋‹ˆ๋‹ค).


๐Ÿ“ ํ•œ ์ค„ ์š”์•ฝ

  • LB๊ฐ€ ๋“ค์–ด๊ฐˆ ์ž๋ฆฌ๋Š” ๋‘˜ โ€” ๋งˆ์Šคํ„ฐ ์•ž(๊ด€๋ฆฌ์šฉ, ์™ธ๋ถ€ L4) ๊ณผ ์•ฑ ์•ž(์„œ๋น„์Šค์šฉ, ์ธ๊ทธ๋ ˆ์Šค L7)์ž…๋‹ˆ๋‹ค.
  • ๋งˆ์Šคํ„ฐ๊ฐ€ ์—ฌ๋Ÿฌ ๋Œ€๋ฉด LB๊ฐ€ ๋” ํ•„์š”ํ•˜๊ณ (์˜คํ•ด ์ •์ •), ์•ฑ ์š”์ฒญ์€ ๋งˆ์Šคํ„ฐ๋ฅผ ๊ฑฐ์น˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค(์ปจํŠธ๋กค ํ”Œ๋ ˆ์ธ โ‰  ๋ฐ์ดํ„ฐ ํ”Œ๋ ˆ์ธ).

โ“ ์ž์ฃผ ๋ฌป๋Š” ์งˆ๋ฌธ

Q. ๋งˆ์Šคํ„ฐ๊ฐ€ 3๋Œ€๋ฉด ๋กœ๋“œ๋ฐธ๋Ÿฐ์„œ ์—†์ด๋„ HA๊ฐ€ ๋˜๋‚˜์š”?

์•ˆ ๋ฉ๋‹ˆ๋‹ค. API ์„œ๋ฒ„๋Š” ์„œ๋กœ ์š”์ฒญ์„ ๋ถ„๋ฐฐํ•˜์ง€ ์•Š์œผ๋ฏ€๋กœ kubectlยท์›Œ์ปค๋…ธ๋“œ๊ฐ€ ์ ‘์†ํ•  โ€œ๋Œ€ํ‘œ ์ฐฝ๊ตฌโ€์ธ LB๊ฐ€ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค. LB๊ฐ€ ์—†์œผ๋ฉด ํŠน์ • ๋งˆ์Šคํ„ฐ IP์— ๋ฌถ์—ฌ ๊ทธ ๋งˆ์Šคํ„ฐ๊ฐ€ ์ฃฝ์„ ๋•Œ ์ ‘์†์ด ๋Š๊น๋‹ˆ๋‹ค.

Q. ์ธ๊ทธ๋ ˆ์Šค ์ปจํŠธ๋กค๋Ÿฌ๋ฅผ ๋งˆ์Šคํ„ฐ ์•ž LB๋กœ ์“ธ ์ˆ˜ ์žˆ๋‚˜์š”?

์—†์Šต๋‹ˆ๋‹ค. ์ธ๊ทธ๋ ˆ์Šค ์ปจํŠธ๋กค๋Ÿฌ๋Š” ํด๋Ÿฌ์Šคํ„ฐ ์•ˆ์—์„œ Pod๋กœ ๋™์ž‘ํ•˜๋ฏ€๋กœ, ํด๋Ÿฌ์Šคํ„ฐ๊ฐ€ ๋œจ๊ธฐ ์ „ยท๋ฐ”๊นฅ์— ์žˆ์–ด์•ผ ํ•˜๋Š” ๋งˆ์Šคํ„ฐ ์•ž LB ์—ญํ• ์€ ๋ชป ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ ์ž๋ฆฌ์—” HAProxyยทkube-vip ๊ฐ™์€ ์™ธ๋ถ€ L4 LB๊ฐ€ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.

Q. ์•ฑ ์š”์ฒญ์ด ๋А๋ ค์ง€๋ฉด ๋งˆ์Šคํ„ฐ(API ์„œ๋ฒ„) ๋ถ€ํ•˜๊ฐ€ ์›์ธ์ธ๊ฐ€์š”?

๋Œ€๋ถ€๋ถ„ ์•„๋‹™๋‹ˆ๋‹ค. ์ผ๋ฐ˜ ์„œ๋น„์Šค ํŠธ๋ž˜ํ”ฝ์€ ์ธ๊ทธ๋ ˆ์Šค โ†’ Service โ†’ Pod ๊ฒฝ๋กœ๋กœ ํ๋ฅด๋ฉฐ ๋งˆ์Šคํ„ฐ๋ฅผ ๊ฑฐ์น˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๋งˆ์Šคํ„ฐ๋Š” ๊ด€๋ฆฌ(์ปจํŠธ๋กค ํ”Œ๋ ˆ์ธ) ํŠธ๋ž˜ํ”ฝ๋งŒ ์ฒ˜๋ฆฌํ•ฉ๋‹ˆ๋‹ค.

Q. nginx, Contour, HAProxy ์ธ๊ทธ๋ ˆ์Šค ์ปจํŠธ๋กค๋Ÿฌ๋ฅผ ๋™์‹œ์— ์จ์•ผ ํ•˜๋‚˜์š”?

์•„๋‹™๋‹ˆ๋‹ค. ๊ฐ™์€ ์ž๋ฆฌ(์•ฑ ์•ž)๋ฅผ ๋†“๊ณ  ๊ฒฝ์Ÿํ•˜๋Š” ๋Œ€์•ˆ์ด๋ผ ํ•˜๋‚˜๋งŒ ๊ณ ๋ฅด๋ฉด ๋ฉ๋‹ˆ๋‹ค.


๐Ÿ“š ์ฐธ๊ณ 

</content>

This post is licensed under CC BY 4.0 by the author.