01. Pod_์ฟ ๋ฒ„๋„คํ‹ฐ์Šค์—์„œ ์ปจํ…Œ์ด๋„ˆ ์‹คํ–‰ํ•˜๊ธฐ

2021. 3. 27. 20:03ใ†๐ŸŽฏ OpenSource/K8S

โ€ป ๋ณธ ๊ฒŒ์‹œ๊ธ€์€ ๋„์„œ <์ฟ ๋ฒ„๋„คํ‹ฐ์Šค ์ธ ์•ก์…˜>์„ ํ† ๋Œ€๋กœ ์ •๋ฆฌ/ํ•™์Šตํ•œ ๋‚ด์šฉ์ž…๋‹ˆ๋‹ค.

 

About : pod ์‚ฌ์šฉ ๋ฐ ๊ด€๋ฆฌ ๋ฐฉ๋ฒ•

  • pod์˜ ์ƒ์„ฑ, ์‹คํ–‰, ์ •์ง€
  • pod์™€ ๋‹ค๋ฅธ ๋ฆฌ์†Œ์Šค๋ฅผ ๋ ˆ์ด๋ธ”๋กœ ์กฐ์งํ™”
  • ํŠน์ • ๋ ˆ์ด๋ธ”์„ ๊ฐ€์ง„ ๋ชจ๋“  pod์—์„œ ์ž‘์—… ์ˆ˜ํ–‰
  • namespace๋ฅผ ์ด์šฉํ•ด pod๋ฅผ ๊ฒน์น˜์ง€ ์•Š๋Š” ๊ทธ๋ฃน์œผ๋กœ ๋‚˜๋ˆ„๊ธฐ
  • ํŠน์ • worker node์— pod ๋ฐฐ์น˜ํ•˜๊ธฐ

3. Pod ์†Œ๊ฐœ

3.1.1 Pod๊ฐ€ ํ•„์š”ํ•œ ์ด์œ 

์™œ Container ๋‹จ์œ„๋กœ ๋ฐฐํฌํ•˜์ง€ ์•Š๊ณ  Pod๋ž€ object๋ฅผ ์“ฐ๋Š” ์ด์œ ๋Š” ๋ฌด์—‡์ผ๊นŒ?

 

  ๐Ÿ”น ์™œ ํ”„๋กœ์„ธ์Šค๋ณ„๋กœ ๋ถ„๋ฆฌ๋œ ๋‹ค์ค‘ ์ปจํ…Œ์ด๋„ˆ๋ฅผ ์‚ฌ์šฉํ•ด์•ผ ํ•˜๋Š”๊ฐ€?

      - Container๋Š” ๋‹จ์ผ ํ”„๋กœ์„ธ์Šค ์‹คํ–‰์„ ์œ„ํ•ด ์„ค๊ณ„ ๋˜์—ˆ์œผ๋ฉฐ, ํ•˜๋‚˜์˜ ์ปจํ…Œ์ด๋„ˆ์—์„œ ๋ชจ๋“  ํ”„๋กœ์„ธ์Šค๋Š” ๋™์ผํ•œ ํ‘œ์ค€ ์ถœ๋ ฅ์œผ๋กœ log๋ฅผ ๋‚จ๊ธด๋‹ค. ๋”ฐ๋ผ์„œ ํšจ์œจ์ ์ธ log ํŒŒ์•… ๋ฐ ํ”„๋กœ์„ธ์Šค ๊ด€๋ฆฌ๋ฅผ ์œ„ํ•ด ๊ฐ ํ”„๋กœ์„ธ์Šค๋ฅผ ๊ฐœ๋ณ„ ์ปจํ…Œ์ด๋„ˆ๋กœ ๋ถ„๋ฆฌํ•ด์•ผ ํ•œ๋‹ค.

root@master001:~# kubectl get pods podtest -o wide
NAME      READY   STATUS    RESTARTS   AGE   IP             NODE        NOMINATED NODE   READINESS GATES
podtest   2/2     Running   24         18h   172.30.65.91   worker001   <none>           <none>

@ ํ•ด๋‹น pod์— ์†ํ•œ container ์ด๋ฆ„ ์กฐํšŒ
root@master001:~/k8s_in_action/03_pod# kubectl get pods podtest -o jsonpath='{.spec.containers[*].name}' && echo
container1 container2

@ container1 ์ง€์ •ํ•˜์—ฌ ๋“ค์–ด๊ฐ€๊ธฐ
root@master001:~# kubectl exec podtest -c container1 -i -t -- bash
root@podtest:/# ls
bin   dev                  docker-entrypoint.sh  home  lib64  mnt  proc  run   shared  sys  usr
boot  docker-entrypoint.d  etc                   lib   media  opt  root  sbin  srv     tmp  var

 

3.3.2 pod ์ดํ•ดํ•˜๊ธฐ

pod๋Š” ์—ฌ๋Ÿฌ container๋ฅผ ๋ฌถ์–ด ํ•˜๋‚˜๋กœ ๊ด€๋ฆฌํ•˜๋Š” ์ƒ์œ„ ๊ตฌ์กฐ์ด๋‹ค.

pod๋ฅผ ์ด์šฉํ•˜์—ฌ ์ปจํ…Œ์ด๋„ˆ์˜ ์ด์ ์„ ์ง€ํ‚ค๋ฉด์„œ ์—ฐ๊ด€์„ฑ ์žˆ๋Š” ํ”„๋กœ์„ธ์Šค๋“ค์„ ํ•จ๊ป˜ ์‹คํ–‰์‹œํ‚ฌ ์ˆ˜ ์žˆ๋‹ค.

- ์—ฐ๊ด€์„ฑ์ด ์žˆ๋Š” container๋“ค์„ ํ•˜๋‚˜์˜ pod๋กœ ๊ด€๋ฆฌ

- ์‹ค์ œ๋กœ๋Š” ๊ฒฉ๋ฆฌ๋œ ์ƒํƒœ์ธ ํ”„๋กœ์„ธ์Šค๋“ค์„ ๋™์ผํ•œ ํ™˜๊ฒฝ์—์„œ ๋™์ž‘์‹œํ‚ค๋Š” ๊ฒƒ๊ณผ ๊ฐ™์€ ํšจ๊ณผ

 

  ๐Ÿ”น ๊ฐ™์€ ํŒŒ๋“œ์—์„œ์˜ ์ปจํ…Œ์ด๋„ˆ ๊ฐ„ ๋ถ€๋ถ„ ๊ฒฉ๋ฆฌ

   ํ•˜๋‚˜์˜ pod ์•ˆ์—์„œ๋„ ํŠน์ •ํ•œ ๋ฆฌ์†Œ์Šค๋ฅผ ๊ณต์œ ํ•˜๊ธฐ ์œ„ํ•ด ๊ฐ ์ปจํ…Œ์ด๋„ˆ๊ฐ€ ์™„๋ฒฝํ•˜๊ฒŒ ๊ฒฉ๋ฆฌ๋˜์ง€ ์•Š๋„๋ก ํ•  ์ˆ˜ ์žˆ๋‹ค.

    - ํ•˜๋‚˜์˜ pod์— ์žˆ๋Š” ๋ชจ๋“  container๊ฐ€ ๋™์ผํ•œ namespace๋ฅผ ๊ณต์œ ํ•˜๋„๋ก ๋„์ปค ์„ค์ •

 

  ๐Ÿ”น ์ปจํ…Œ์ด๋„ˆ ๊ฐ„ ๋™์ผํ•œ ip์™€ port ๊ณต์œ 

    ํ•˜๋‚˜์˜ pod ์•ˆ์—์„œ ๋™์ž‘ํ•˜๋Š” container๋“ค์€ ๊ฐ™์€ namespace์—์„œ ๋™์ž‘ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๋™์ผํ•œ pod ip์™€ ํฌํŠธ ์ •๋ณด๋ฅผ ๊ณต์œ ํ•œ๋‹ค. 

    - ๋•Œ๋ฌธ์— ํ•˜๋‚˜์˜ pod์—์„œ ๋™์ž‘ํ•˜๋Š” container ๋ผ๋ฆฌ๋Š” port ์ถฉ๋Œ์ด ๋‚˜์ง€ ์•Š์•„์•ผ ํ•จ.

 

  ๐Ÿ”น pod ๊ฐ„ flat network

     ์ฟ ๋ฒ„๋„คํ‹ฐ์Šค์˜ pod๋“ค์€ flat network ๋ฐฉ์‹์œผ๋กœ ํ†ต์‹ ํ•œ๋‹ค.

   

      flat network?
      - Pod ๋ผ๋ฆฌ ํ†ต์‹ ํ•  ๋•Œ NAT ์—†์ด ๋ณธ์ธ์˜ ip๋ฅผ ๊ฐ€์ง€๊ณ  ํ†ต์‹  ํ•  ์ˆ˜ ์žˆ๋Š” ๋„คํŠธ์›Œํฌ ํƒ€์ž….
      - ๊ฐ Pod๋Š” ๋‹ค๋ฅธ pod๋“ค์— ๋Œ€ํ•œ routing table์„ ๊ฐ€์ง„๋‹ค.

 

 

3.3.3 Pod์—์„œ ์ปจํ…Œ์ด๋„ˆ ์ ์ ˆํ•˜๊ฒŒ ๊ตฌ์„ฑํ•˜๊ธฐ

ํ”„๋กœ์„ธ์Šค๋ณ„๋กœ container๋ฅผ ๋ถ„๋ฆฌํ•ด์„œ ์ƒ์„ฑํ•˜๋“ฏ์ด, ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜๋„ ์ ์ ˆํ•˜๊ฒŒ ์—ฌ๋Ÿฌ pod๋กœ ๋ถ„๋ฆฌํ•˜์—ฌ ์šด์˜ํ•ด์•ผ ํ•œ๋‹ค.

ํ•˜๋‚˜์˜ pod์—๋Š” ๋ฐ€์ ‘ํ•˜๊ฒŒ ๊ด€๋ จ์ด ์žˆ๋Š” ๊ตฌ์„ฑ ์š”์†Œ, ํ”„๋กœ์„ธ์Šค๋“ค์„ ํฌํ•จํ•˜๋„๋ก ํ•œ๋‹ค.

๋‹จ์ผ pod / ๋‹ค์ค‘ pod ๋“ฑ์˜ ์•„ํ‚คํ…์ฒ˜๋ฅผ ์งœ๊ธฐ ์œ„ํ•ด์„œ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์‚ฌํ•ญ์„ ํ™•์ธํ•œ๋‹ค

- ์ปจํ…Œ์ด๋„ˆ๋ฅผ ํ•จ๊ป˜ ์‹คํ–‰ํ•ด์•ผ ํ•˜๋Š”๊ฐ€, ํ˜น์€ ์„œ๋กœ ๋‹ค๋ฅธ ํ˜ธ์ŠคํŠธ์—์„œ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ๋Š”๊ฐ€?

- ์—ฌ๋Ÿฌ ์ปจํ…Œ์ด๋„ˆ๊ฐ€ ๋ชจ์—ฌ ํ•˜๋‚˜์˜ ๊ตฌ์„ฑ ์š”์†Œ๋ฅผ ๋‚˜ํƒ€๋‚ด๋Š”๊ฐ€, ํ˜น์€ ๊ฐœ๋ณ„์ ์ธ ๊ตฌ์„ฑ ์š”์†Œ์ธ๊ฐ€?

- ์ปจํ…Œ์ด๋„ˆ๊ฐ€ ํ•จ๊ป˜, ํ˜น์€ ๊ฐœ๋ณ„์ ์œผ๋กœ ์Šค์ผ€์ผ๋ง ๋˜์–ด์•ผ ํ•˜๋Š”๊ฐ€?

 

 

  ๐Ÿ”น cluster์˜ ์ธํ”„๋ผ ๋ฆฌ์†Œ์Šค ํ™œ์šฉ๋„ ๋†’์ด๊ธฐ

      pod๋ฅผ ๋ถ„๋ฆฌํ•จ์œผ๋กœ์จ ์—ฌ๋Ÿฌ node์— ์Šค์ผ€์ฅด๋ง์ด ๊ฐ€๋Šฅํ•ด์ง„๋‹ค. ๋”ฐ๋ผ์„œ ๋ฆฌ์†Œ์Šค์˜ ํ™œ์šฉ๋„๋ฅผ ๋†’์ผ ์ˆ˜ ์žˆ๋‹ค.

 

  ๐Ÿ”น ๊ฐœ๋ณ„ ํ™•์žฅ ๊ฐ€๋Šฅ

     pod๋Š” ์Šค์ผ€์ผ๋ง์˜ ๊ธฐ๋ณธ ๋‹จ์œ„๋กœ, k8s์—์„œ ๊ฐœ๋ณ„ container๋ฅผ ์Šค์ผ€์ผ๋ง ํ•  ์ˆ˜๋Š” ์—†๋‹ค.

     ํ”„๋ก ํŠธ์—”๋“œ์™€ ๋ฐฑ์—”๋“œ ์ปจํ…Œ์ด๋„ˆ๋ฅผ ํ•˜๋‚˜์˜ pod์— ์ƒ์„ฑํ•˜๋ฉด ์Šค์ผ€์ผ๋ง์„ ํ•  ๋•Œ๋งˆ๋‹ค pod ์ฑ„๋กœ ์ˆ˜ํ‰ ํ™•์žฅ๋œ๋‹ค.

     (๋ณดํ†ต ํ”„๋ก ํŠธ์—”๋“œ์™€ ๋ฐฑ์—”๋“œ๋Š” ์Šค์ผ€์ผ๋ง ์š”๊ตฌ์‚ฌํ•ญ์ด ๋‹ฌ๋ผ ๊ฐœ๋ณ„์ ์ธ ํ™•์žฅ์ด ํ•„์š”ํ•˜๋‹ค. -> pod ๋ถ„๋ฆฌ ํ•„์š”)