๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
IT

Kubernetes: ํ˜„๋Œ€์ ์ธ ์ปจํ…Œ์ด๋„ˆ ์˜ค์ผ€์ŠคํŠธ๋ ˆ์ด์…˜์˜ ํ•ต์‹ฌ

by ๐Ÿ’ฒ๐ŸŽตโœ–๏ธโœ”๏ธโ˜ผ 2024. 2. 14.
728x90

Kubernetes: ํ˜„๋Œ€์ ์ธ ์ปจํ…Œ์ด๋„ˆ ์˜ค์ผ€์ŠคํŠธ๋ ˆ์ด์…˜์˜ ํ•ต์‹ฌ

1. ๋ฐฐ๊ฒฝ

1.1 ์ปจํ…Œ์ด๋„ˆ ๊ธฐ์ˆ ์˜ ๋ถ€์ƒ

์ปจํ…Œ์ด๋„ˆ ๊ธฐ์ˆ ์˜ ๋“ฑ์žฅ์€ ์†Œํ”„ํŠธ์›จ์–ด ๋ฐฐํฌ์˜ ํŒจ๋Ÿฌ๋‹ค์ž„์„ ๋ฐ”๊พธ์—ˆ์Šต๋‹ˆ๋‹ค. ๊ฐ€์ƒํ™” ๊ธฐ์ˆ ์„ ํ™œ์šฉํ•˜์—ฌ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๊ฒฉ๋ฆฌํ•˜๊ณ  ์ด์‹์„ฑ์„ ํ–ฅ์ƒ์‹œํ‚จ ์ปจํ…Œ์ด๋„ˆ๋Š” ๊ฐœ๋ฐœ๊ณผ ๋ฐฐํฌ๋ฅผ ํšจ์œจ์ ์œผ๋กœ ๋งŒ๋“ค์–ด์ฃผ์—ˆ์Šต๋‹ˆ๋‹ค.

1.2 ์ปจํ…Œ์ด๋„ˆ ์˜ค์ผ€์ŠคํŠธ๋ ˆ์ด์…˜์˜ ํ•„์š”์„ฑ

์ปจํ…Œ์ด๋„ˆ ๊ธฐ์ˆ ์˜ ๋ณด๊ธ‰์œผ๋กœ ์ธํ•ด, ์ˆ˜์‹ญ, ์ˆ˜๋ฐฑ ๊ฐœ์˜ ์ปจํ…Œ์ด๋„ˆ๋กœ ์ด๋ฃจ์–ด์ง„ ๋ณต์žกํ•œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๊ด€๋ฆฌํ•˜๋Š” ์ผ์ด ๋”์šฑ ์–ด๋ ค์›Œ์กŒ์Šต๋‹ˆ๋‹ค. ์ด์— ๋”ฐ๋ผ ์ปจํ…Œ์ด๋„ˆ ์˜ค์ผ€์ŠคํŠธ๋ ˆ์ด์…˜ ์‹œ์Šคํ…œ์ด ํ•„์š”ํ•ด์กŒ๊ณ , Kubernetes๊ฐ€ ๋“ฑ์žฅํ•˜๊ฒŒ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

2. Kubernetes๋ž€?

2.1 Kubernetes์˜ ์ •์˜

Kubernetes๋Š” ์ปจํ…Œ์ด๋„ˆํ™”๋œ ์›Œํฌ๋กœ๋“œ์™€ ์„œ๋น„์Šค๋ฅผ ์ž๋™ํ™”ํ•˜๊ธฐ ์œ„ํ•œ ์˜คํ”ˆ์†Œ์Šค ์ปจํ…Œ์ด๋„ˆ ์˜ค์ผ€์ŠคํŠธ๋ ˆ์ด์…˜ ํ”Œ๋žซํผ์ž…๋‹ˆ๋‹ค. ๋‹ค์ˆ˜์˜ ์ปจํ…Œ์ด๋„ˆ๋ฅผ ํšจ๊ณผ์ ์œผ๋กœ ๊ด€๋ฆฌํ•˜๊ณ  ๋ฐฐํฌํ•˜๋Š” ๋„๊ตฌ๋กœ์„œ, ํ™•์žฅ์„ฑ, ์•ˆ์ •์„ฑ, ๊ทธ๋ฆฌ๊ณ  ์œ ์—ฐ์„ฑ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.

2.2 Kubernetes์˜ ํ•ต์‹ฌ ๊ธฐ๋Šฅ

  • ์ž๋™ํ™”๋œ ๋ฐฐํฌ ๋ฐ ์Šค์ผ€์ผ๋ง: ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ์ž๋™์œผ๋กœ ๋ฐฐํฌํ•˜๊ณ , ํ•„์š”์— ๋”ฐ๋ผ ์ˆ˜ํ‰์œผ๋กœ ํ™•์žฅ ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.
  • ์„œ๋น„์Šค ๋””์Šค์ปค๋ฒ„๋ฆฌ ๋ฐ ๋กœ๋“œ ๋ฐธ๋Ÿฐ์‹ฑ: ์„œ๋น„์Šค ๊ฐ„ ํ†ต์‹ ์„ ๊ด€๋ฆฌํ•˜๊ณ , ๋กœ๋“œ ๋ฐธ๋Ÿฐ์‹ฑ์„ ํ†ตํ•ด ํšจ์œจ์ ์ธ ํŠธ๋ž˜ํ”ฝ ๋ถ„๋ฐฐ๊ฐ€ ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.
  • ์ž๋™๋ณต๊ตฌ ๋ฐ ๋กค๋ง ์—…๋ฐ์ดํŠธ: ์˜ค๋ฅ˜ ๋ฐœ์ƒ ์‹œ ์ž๋™์œผ๋กœ ๋ณต๊ตฌํ•˜๋ฉฐ, ๋กค๋ง ์—…๋ฐ์ดํŠธ๋ฅผ ํ†ตํ•ด ์„œ๋น„์Šค ์ค‘๋‹จ ์—†์ด ๋ฒ„์ „ ์—…๋ฐ์ดํŠธ๊ฐ€ ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.

3. Kubernetes์˜ ์žฅ๋‹จ์ 

3.1 ์žฅ์ 

  • ์ด์‹์„ฑ: ์–ด๋””์„œ๋“  ์‹คํ–‰ ๊ฐ€๋Šฅํ•œ ํ‘œ์ค€ํ™”๋œ ํŒจํ‚ค์ง€๋ฅผ ์ œ๊ณตํ•ด ์ด์‹์„ฑ์„ ๋†’์ž…๋‹ˆ๋‹ค.
  • ์ž๋™ํ™”: ๋ฐ˜๋ณต์ ์ด๊ณ  ๋ณต์žกํ•œ ์ž‘์—…์„ ์ž๋™ํ™”ํ•˜์—ฌ ๊ฐœ๋ฐœ์ž์™€ ์šด์˜์ž์˜ ๋ถ€๋‹ด์„ ์ค„์ž…๋‹ˆ๋‹ค.
  • ํ™•์žฅ์„ฑ: ๋Œ€๊ทœ๋ชจ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ํšจ๊ณผ์ ์œผ๋กœ ๊ด€๋ฆฌํ•˜๊ณ  ํ™•์žฅํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

3.2 ๋‹จ์ 

  • ํ•™์Šต ๊ณก์„ : ์ดˆ๊ธฐ์—๋Š” Kubernetes์˜ ๋ณต์žก์„ฑ์œผ๋กœ ์ธํ•œ ํ•™์Šต ๊ณก์„ ์ด ์กด์žฌํ•ฉ๋‹ˆ๋‹ค.
  • ์ž์› ์†Œ๋ชจ: ์ƒ๋Œ€์ ์œผ๋กœ ๊ฐ€๋ณ์ง€ ์•Š์•„, ์ผ๋ถ€ ์ž‘์€ ๊ทœ๋ชจ์˜ ํ”„๋กœ์ ํŠธ์—์„œ๋Š” ์˜ค๋ฒ„ํ—ค๋“œ๊ฐ€ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

4. ํ™œ์šฉ ์‚ฌ๋ก€์™€ ์—ฐ๊ด€๋œ ๊ธฐ์ˆ  ๋‚ด์šฉ๋“ค

4.1 ํ™œ์šฉ ์‚ฌ๋ก€: ๋ฉ€ํ‹ฐ ํด๋ผ์šฐ๋“œ ๋ฐฐํฌ

Kubernetes๋Š” ๋ฉ€ํ‹ฐ ํด๋ผ์šฐ๋“œ ํ™˜๊ฒฝ์—์„œ๋„ ํšจ๊ณผ์ ์œผ๋กœ ๋™์ž‘ํ•ฉ๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, AWS, Azure, GCP ๋“ฑ ์—ฌ๋Ÿฌ ํด๋ผ์šฐ๋“œ ์„œ๋น„์Šค๋ฅผ ๋™์‹œ์— ์‚ฌ์šฉํ•˜์—ฌ ๋ฆฌ์†Œ์Šค๋ฅผ ํšจ์œจ์ ์œผ๋กœ ํ™œ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

4.2 ์—ฐ๊ด€๋œ ๊ธฐ์ˆ : Istio ์„œ๋น„์Šค ๋งค์‰ฌ

Istio๋Š” Kubernetes์—์„œ ์„œ๋น„์Šค ๊ฐ„ ํ†ต์‹ ์„ ๊ด€๋ฆฌํ•˜๊ธฐ ์œ„ํ•œ ์˜คํ”ˆ์†Œ์Šค ์„œ๋น„์Šค ๋งค์‰ฌ ํ”Œ๋žซํผ์ž…๋‹ˆ๋‹ค. ์ด๋ฅผ ํ†ตํ•ด ์„œ๋น„์Šค ๋””์Šค์ปค๋ฒ„๋ฆฌ, ๋กœ๋“œ ๋ฐธ๋Ÿฐ์‹ฑ, ํŠธ๋ž˜ํ”ฝ ๊ด€๋ฆฌ ๋“ฑ์„ ์†์‰ฝ๊ฒŒ ๊ตฌํ˜„ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

apiVersion: networking.istio.io/v1alpha3
kind: Gateway
metadata:
  name: my-gateway
spec:
  selector:
    istio: ingressgateway
  servers:
  - port:
      number: 80
      name: http
      protocol: HTTP
    hosts:
    - "example.com"

5. ๋งˆ๋ฌด๋ฆฌ

Kubernetes๋Š” ํ˜„๋Œ€์ ์ธ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋ฐฐํฌ ๋ฐ ๊ด€๋ฆฌ์˜ ํ•ต์‹ฌ ๋„๊ตฌ๋กœ ์ž๋ฆฌ๋งค๊น€ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋ฅผ ํ†ตํ•ด ๊ฐœ๋ฐœ์ž์™€ ์šด์˜ํŒ€์€ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ์œ ์—ฐ์„ฑ๊ณผ ์•ˆ์ •์„ฑ์„ ๋†’์ผ ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ, ๋‹ค์–‘ํ•œ ํ™˜๊ฒฝ์—์„œ๋„ ํšจ๊ณผ์ ์œผ๋กœ ์šด์˜ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. Kubernetes๋ฅผ ํ†ตํ•œ ์ปจํ…Œ์ด๋„ˆ ์˜ค์ผ€์ŠคํŠธ๋ ˆ์ด์…˜์˜ ๊ธฐ์ดˆ๋ฅผ ์ดํ•ดํ•˜๊ณ  ํ™œ์šฉํ•จ์œผ๋กœ์จ, ๋” ๋†’์€ ์ˆ˜์ค€์˜ ํด๋ผ์šฐ๋“œ ๋„ค์ดํ‹ฐ๋ธŒ ํ™˜๊ฒฝ์„ ๊ตฌ์ถ•ํ•  ์ˆ˜ ์žˆ์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

๋Œ“๊ธ€