์•ˆ๋…•ํ•˜์„ธ์š”, IBM ์–‘ํ˜„์ฃผ์ž…๋‹ˆ๋‹ค.

์ง€๋‚œ๋ฒˆ ํฌ์ŠคํŒ…
Kubernetes ๊ธฐ๋ฐ˜ IBM Cloud Private์—์„œ ์Šคํ† ๋ฆฌ์ง€ ์‚ฌ์šฉํ•˜๊ธฐ – 1 ์— ์ด์–ด,

์ด๋ฒˆ ํฌ์ŠคํŒ…์—์„œ๋Š” ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๋ฐฐํฌ ํ›„, ์Šคํ† ๋ฆฌ์ง€์™€ ์—ฐ๊ณ„ํ•˜๋Š” ์ž‘์—…์„ ํ•ด๋ณด๋„๋ก ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.

[3๋‹จ๊ณ„] nginx ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ volume๊ณผ ํ•จ๊ป˜ ๋ฐฐํฌํ•˜๊ธฐ

์ด๋ฒˆ ์˜ˆ์ œ์—์„œ ์‚ฌ์šฉํ•  ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์ธ nginx๋Š” ๋ฌด๋ฃŒ ์˜คํ”ˆ์†Œ์Šค HTTP ์„œ๋ฒ„์ž…๋‹ˆ๋‹ค.
nginx ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ volume (์Šคํ† ๋ฆฌ์ง€) ์—†์ด ๋‹จ์ˆœํ•˜๊ฒŒ ๋ฐฐํฌํ•  ์ˆ˜๋„ ์žˆ๊ฒ ์ง€๋งŒ,
html ๋””๋ ‰ํ† ๋ฆฌ ๋“ฑ์˜ ๋ฐ์ดํ„ฐ๋ฅผ ๋ณด์กดํ•˜๋ ค๋ฉด ์Šคํ† ๋ฆฌ์ง€๊ฐ€ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.

์Šคํ† ๋ฆฌ์ง€๋ฅผ ํ†ตํ•ด ์ปจํ…Œ์ด๋„ˆ์˜ ์‹คํ–‰ ์—ฌ๋ถ€์™€ ์ƒ๊ด€ ์—†์ด
์ปจํ…Œ์ด๋„ˆ๊ฐ€ ์ค‘์ง€/์‚ญ์ œ ๋˜๊ฑฐ๋‚˜ ์Šค์ผ€์ผ๋ง ๋˜๋”๋ผ๋„ ์Šคํ† ๋ฆฌ์ง€์— ์ €์žฅ๋œ ๋ฐ์ดํ„ฐ๋ฅผ ๋ณด์กดํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.

์ด๋ฒˆ ์˜ˆ์ œ์—์„œ๋Š” newvolume์ด๋ผ๋Š” volume(์Šคํ† ๋ฆฌ์ง€)๋ฅผ nginx ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์— ์—ฐ๊ณ„(attach) ํ•ด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.
์ด ๋ณผ๋ฅจ์„ ํ†ตํ•ด ์ปจํ…Œ์ด๋„ˆ ๋‚ด๋ถ€์—์„œ /data/local/share ์— ์ €์žฅ๋œ ๋ฐ์ดํ„ฐ๊ฐ€ ํ˜ธ์ŠคํŠธ (ํ˜น์€ ์Šคํ† ๋ฆฌ์ง€ ์„œ๋ฒ„)์— ์žˆ๋Š” /storage/nginx ๋””๋ ‰ํ† ๋ฆฌ ๋งˆ์šดํŠธ ๋ฉ๋‹ˆ๋‹ค.
์ด ๊ณผ์ •์„ ํ†ตํ•ด ์ปจํ…Œ์ด๋„ˆ์˜ ๋ผ์ดํ”„ํƒ€์ž„์— ๊ด€๊ณ„ ์—†์ด ๋ฐ์ดํ„ฐ๋ฅผ ๋ณด์กดํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋˜๋ฉฐ,
์ปจํ…Œ์ด๋„ˆ๊ฐ€ ์‚ญ์ œ๋˜๋”๋ผ๋„ ์—ฌ์ „ํžˆ ํ•ด๋‹น ๋””๋ ‰ํ† ๋ฆฌ ๋‚ด์— ์žˆ๋Š” ์ปจํ…์ธ ์— ์ ‘์†ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

STEPS – nginx ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋ฐฐํฌํ•˜๊ธฐ

  1. IBM Cloud Private ๊ด€๋ฆฌ ์ฝ˜์†”์— ๋กœ๊ทธ์ธํ•ฉ๋‹ˆ๋‹ค.
  2. ์™ผ์ชฝ ๋„ค๋น„๊ฒŒ์ด์…˜ ๋ฉ”๋‰ด์—์„œ Workloads > Deployment๋ฅผ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค.
  3. Create Deployment ํด๋ฆญ
  4. Deployment ์ƒ์„ฑ์‹œ ์ƒ์„ธ ๋‚ด์šฉ์„ ์ž…๋ ฅํ•ฉ๋‹ˆ๋‹ค. Deployment ์ƒ์„ฑ์‹œ ์•„๋ž˜์˜ ๊ฐ’์€ ํ•„์ˆ˜์ ์œผ๋กœ ์ž…๋ ฅํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
  5. * General
    – ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์ด๋ฆ„
    – ๋ณต์ œ๋ณธ ๊ฐœ์ˆ˜ (pod ๊ฐœ์ˆ˜)

    * Container settings
    – ์ปจํ…Œ์ด๋„ˆ ์ด๋ฆ„
    – ์ด๋ฏธ์ง€ ์ด๋ฆ„
    – ์ปจํ…Œ์ด๋„ˆ port

    * Volumes
    – ์ด๋ฆ„ – ์ปจํ…Œ์ด๋„ˆ ๋‚ด๋ถ€์—์„œ ์‚ฌ์šฉ๋  volume์˜ ์ด๋ฆ„
    – Volume – Kubernetes ์—์„œ available ํ•˜๊ณ  bound ์ƒํƒœ์ธ volume์˜ ์ด๋ฆ„ ๋ช…์‹œ
    – Path – ์Šคํ† ๋ฆฌ์ง€๋กœ ์—ฐ๊ณ„ ๋  ์ปจํ…Œ์ด๋„ˆ ๋‚ด๋ถ€์˜ ๋งˆ์šดํŠธ ๊ฒฝ๋กœ

    Volume์€ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋ฐฐํฌ์— ์žˆ์–ด ์„ ํƒ์ ์ธ ํ•ญ๋ชฉ์ž…๋‹ˆ๋‹ค.
    ๋ชจ๋“  ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์ด ๋ฐ˜๋“œ์‹œ ์Šคํ† ๋ฆฌ์ง€(Volume) ์ด ํ•„์š”ํ•œ ๊ฒƒ์€ ์•„๋‹ˆ์ง€์š”.

    ํ•˜์ง€๋งŒ ์•ž์„œ ์–ธ๊ธ‰ ๋“œ๋ฆฐ ๊ฒƒ ์ฒ˜๋Ÿผ, ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ํŠน์„ฑ์— ๋”ฐ๋ผ Volume์ด ํ•„์ˆ˜์ ์ธ ๊ฒฝ์šฐ๋„ ์žˆ์Šต๋‹ˆ๋‹ค.
    ์ €ํฌ๋Š” ์ด๋ฒˆ ์˜ˆ์ œ์—์„œ Volume์„ ์‚ฌ์šฉํ•˜๋ฏ€๋กœ, Volume ํ•ญ๋ชฉ์„ ์ž…๋ ฅ ํ•ด์•ผํ•ฉ๋‹ˆ๋‹ค.

  6. ๋ณธ๊ฒฉ์ ์œผ๋กœ Deployment๋ฅผ ๋งŒ๋“ค์–ด ๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. ๋จผ์ €, ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์ƒ์„ธ ๋‚ด์šฉ์„ ์ž…๋ ฅํ•ฉ๋‹ˆ๋‹ค.
  7. Deployment์— ๋“ค์–ด๊ฐˆ Container ์ •๋ณด๋ฅผ ์ž…๋ ฅํ•ฉ๋‹ˆ๋‹ค.
    [1] ์ปจํ…Œ์ด๋„ˆ ์ด๋ฆ„๊ณผ [2] ๋ฐฐํฌํ•  ์ปจํ…Œ์ด๋„ˆ ์ด๋ฏธ์ง€๋ฅผ ์ž…๋ ฅํ•ฉ๋‹ˆ๋‹ค.
    ์ด ๋•Œ, ์ปจํ…Œ์ด๋„ˆ ์ด๋ฏธ์ง€ ์ด๋ฆ„๊ณผ ์ด๋ฏธ์ง€์˜ tag๋ฅผ ํ•จ๊ป˜ ์ž…๋ ฅํ•ฉ๋‹ˆ๋‹ค.
    ์ €๋Š” DockerHub์—์„œ ๊ฐ€์ ธ์˜ค๋Š” ์˜ˆ๋กœ nginx:latest๋งŒ ์ž…๋ ฅํ–ˆ์ง€๋งŒ,
    ๋งŒ์•ฝ IBM Cloud Private์˜ ํ”„๋ผ์ด๋น— ์ด๋ฏธ์ง€ ๋ ˆ์ง€์ŠคํŠธ๋ฆฌ๋‚˜ ๋‹ค๋ฅธ ๋ ˆ์ง€์ŠคํŠธ๋ฆฌ์—์„œ ์ด๋ฏธ์ง€๋ฅผ ๊ฐ€์ ธ์˜ค๋ ค๋ฉด ๋ ˆ์ง€์ŠคํŠธ๋ฆฌ ํƒ€๊ฒŸ ์ฃผ์†Œ๋„ ํ•จ๊ป˜ ์ž‘์„ฑํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
    (์˜ˆ. ICP ๋ ˆ์ง€์ŠคํŠธ๋ฆฌ์˜ ๊ฒฝ์šฐ mycluster.icp:8500/default/nginx:latest)

    ๊ทธ ์™ธ์—๋„ ํ•„์š”ํ•œ ๊ฒฝ์šฐ ์ปจํ…Œ์ด๋„ˆ Image Pull policy, ์ปจํ…Œ์ด๋„ˆ ์‹œ์ž‘์‹œ ์‹คํ–‰ํ•  ๋ช…๋ น์–ด, ์ปจํ…Œ์ด๋„ˆ ๋‚ด๋ถ€๋กœ ์ „๋‹ฌํ•  argument ๋“ฑ์„ ์ž…๋ ฅํ•ฉ๋‹ˆ๋‹ค.

    ์ถ”๊ฐ€๋กœ ์ปจํ…Œ์ด๋„ˆ๊ฐ€ ์‚ฌ์šฉํ•  CPU, Memory, GPU ์‚ฌ์šฉ๋Ÿ‰์„ ์ง€์ •ํ•ด์ค„ ์ˆ˜ ์žˆ์œผ๋ฉฐ,

    ์ปจํ…Œ์ด๋„ˆ Port๋ฅผ ์ง€์ •ํ•  ์ˆ˜ ์žˆ๋Š”๋ฐ, ์ €๋Š” nginx ๋ฐฐํฌ๋ฅผ ์œ„ํ•ด 80์„ ์ปจํ…Œ์ด๋„ˆ ํฌํŠธ๋กœ ์ง€์ •ํ•˜์˜€์Šต๋‹ˆ๋‹ค.

  8. ์ปจํ…Œ์ด๋„ˆ์™€ ์—ฐ๊ฒฐ๋  (attach) Volume ์ •๋ณด๋ฅผ ์ž…๋ ฅํ•ฉ๋‹ˆ๋‹ค.
    Volume์œผ๋กœ๋Š” ์ด์ „ ํฌ์ŠคํŒ…์—์„œ ์ƒ์„ฑํ–ˆ๋˜ PVC ์ด๋ฆ„์„ ๋ช…์‹œํ•ฉ๋‹ˆ๋‹ค.
    path๋Š” ์Šคํ† ๋ฆฌ์ง€์™€ ์—ฐ๊ณ„๋  ์ปจํ…Œ์ด๋„ˆ ๋‚ด๋ถ€์˜ ๋งˆ์šดํŠธ ๊ฒฝ๋กœ๋ฅผ ์ž…๋ ฅํ•ฉ๋‹ˆ๋‹ค.
  9. Create ๋ฒ„ํŠผ์„ ํด๋ฆญํ•˜๋ฉด ์ƒ์„ฑ๋œ Deployment๋ฅผ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

  10. Deployment๋ฅผ ํด๋ฆญํ•ด ์ƒ์„ธ ๋‚ด์šฉ์„ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค. Deployment ๋‚ด์˜ Pod ์ •๋ณด๋„ ํ™•์ธ ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.

[4๋‹จ๊ณ„] ์ƒ์„ฑ๋œ Container์™€ ์Šคํ† ๋ฆฌ์ง€ ์—ฐ๊ณ„ ํ™•์ธํ•˜๊ธฐ

์ž, ์ด์ œ volume๊ณผ ๋ฐฐํฌํ•œ Deployment ๋‚ด ์ปจํ…Œ์ด๋„ˆ์™€ ์—ฐ๊ณ„๊ฐ€ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ํ™•์ธ ํ•ด๋ณผ๊นŒ์š”?

ํ™•์ธ ๋ฐฉ๋ฒ•์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.
– ์ปจํ…Œ์ด๋„ˆ ๋‚ด๋ถ€์— bash ๋กœ ์ ‘์†
– NFS ์Šคํ† ๋ฆฌ์ง€์˜ ๋ณผ๋ฅจ ์ง€์ • ๊ฒฝ๋กœ์—์„œ ํŒŒ์ผ ์ž‘์„ฑ (๊ฒฝ๋กœ : /storage/nginxdata)
– ์ž‘์„ฑ๋œ ํŒŒ์ผ์ด ์ปจํ…Œ์ด๋„ˆ ๋‚ด๋ถ€ ์ง€์ •๋œ ๋ณผ๋ฅจ์—๋„ ๋™์ผํ•˜๊ฒŒ ์ƒ์„ฑ๋˜์–ด ๋ฐ˜์˜๋จ์„ ํ™•์ธ (๊ฒฝ๋กœ : data/local/share)

  1. ๋จผ์ €, kubectl๋กœ pod ์ •๋ณด๋ฅผ ์กฐํšŒํ•˜๊ธฐ ์œ„ํ•ด CLI ์„ค์ •์„ ๋จผ์ € ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.
    IBM Cloud Private ๋Œ€์‹œ๋ณด๋“œ ์šฐ์ธก ์ƒ๋‹จ์—์„œ ์‚ฌ๋žŒ ๋ชจ์–‘ ์•„์ด์ฝ˜์„ ํด๋ฆญํ•ด configure client ๋ฅผ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค.

  2. ICP ํด๋Ÿฌ์Šคํ„ฐ์™€ ์—ฐ๊ฒฐํ•  ์ˆ˜ ์žˆ๋Š” ์„ค์ • ์ •๋ณด์ž…๋‹ˆ๋‹ค. ์•„์ด์ฝ˜์„ ํด๋ฆญํ•ด ๋ช…๋ น์–ด ๋ณต์‚ฌ ํ›„ CLI ์—์„œ ๋ถ™์—ฌ๋„ฃ๊ธฐ๋ฅผ ํ•ฉ๋‹ˆ๋‹ค.
  3. ์ด์ œ CLI์—์„œ๋„ pod ์ •๋ณด ๋“ฑ์˜ Kubernetes ์ž์› ์ •๋ณด๋ฅผ ์กฐํšŒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, kubectl get pods ๋ฅผ ์ž…๋ ฅํ•ด ์‹คํ–‰ ์ค‘์ธ pod ์ •๋ณด๋ฅผ ์กฐํšŒํ•ฉ๋‹ˆ๋‹ค. ์กฐ๊ธˆ ์ „ ๋ฐฐํฌํ•œ nginx ๊ฐ€ ์‹คํ–‰ ์ค‘์ธ ๊ฒƒ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  4. kubectl exec ๋ช…๋ น์–ด๋กœ ์ปจํ…Œ์ด๋„ˆ ๋‚ด๋ถ€์— ์ ‘์†ํ•ด ๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. /data/local/share๊ฒฝ๋กœ๋กœ ๋“ค์–ด๊ฐ€๋ฉด ์•„๋ฌด๊ฒƒ๋„ ์—†์Œ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  5. ๊ทธ๋Ÿผ ์ด์ œ, ์•ž์„œ ์ปจํ…Œ์ด๋„ˆ ๋‚ด๋ถ€ ๋ณผ๋ฅจ์œผ๋กœ ์ง€์ •ํ–ˆ๋˜ /storage/nginx์—์„œ ์ƒˆ ํŒŒ์ผ์„ ์ž‘์„ฑํ•ฉ๋‹ˆ๋‹ค. test.txtํŒŒ์ผ์„ ์ž‘์„ฑํ–ˆ์Šต๋‹ˆ๋‹ค.
  6. ๊ทธ๋Ÿผ ์ด์ œ ์ปจํ…Œ์ด๋„ˆ ๋‚ด๋ถ€์—๋„ ์ด ๋ฐ์ดํ„ฐ๊ฐ€ ๊ทธ๋Œ€๋กœ ๋ฐ˜์˜ ๋˜์–ด์•ผ๊ฒ ์ง€์š”? ์ปจํ…Œ์ด๋„ˆ ๋‚ด๋ถ€๋ฅผ ๋‹ค์‹œ ํ™•์ธ ํ•ด๋ด…๋‹ˆ๋‹ค.
  7. ๋™์ผํ•œ ํŒŒ์ผ์ด ์ƒ์„ฑ ๋˜์—ˆ๋„ค์š”! ๋‚ด์šฉ๋„ ๋™์ผํ•ฉ๋‹ˆ๋‹ค. ๋ฐฐํฌ๋œ Deployment ๋‚ด ์ปจํ…Œ์ด๋„ˆ์™€ ๋ณผ๋ฅจ์ด ์ž˜ ์—ฐ๊ฒฐ ๋˜์—ˆ์Œ์„ ํ™•์ธํ•˜์˜€์Šต๋‹ˆ๋‹ค.

์ž, ์—ฌ๊ธฐ๊นŒ์ง€ ICP์—์„œ NFS ๋ณผ๋ฅจ์„ ์—ฐ๊ฒฐํ•ด๋ณด์•˜์Šต๋‹ˆ๋‹ค.
Persistent ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•ด์•ผ ํ•˜๋Š” ๊ฒฝ์šฐ, Volume์€ ์œ ์šฉํ•˜๊ฒŒ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.

ICP์—์„œ ์ง€์›ํ•˜๋Š” ์Šคํ† ๋ฆฌ์ง€๋Š” NFS, GlusterFS, vSphere Virtual Volume, hostPath ์ž…๋‹ˆ๋‹ค. (2.1.0.3 ๋ฒ„์ „ ๊ธฐ์ค€์ด๋ฉฐ, ์ž์„ธํ•œ ๋‚ด์šฉ์€ IBM Cloud Private ์˜จ๋ผ์ธ ๋ฌธ์„œ – ์ง€์› ์Šคํ† ๋ฆฌ์ง€ ์ฐธ๊ณ 

๊ทธ ์™ธ์—๋„ Kubernetes์˜ ๋ชจ๋“  ์Šคํ† ๋ฆฌ์ง€ ์ข…๋ฅ˜๋ฅผ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค. ์ž์„ธํ•œ ๋‚ด์šฉ์€ Kubernetes ์ง€์› storage ๋‚ด์šฉ์„ ์ฐธ๊ณ ํ•˜์„ธ์š”.

ํ† ๋ก  ์ฐธ๊ฐ€

์ด๋ฉ”์ผ์€ ๊ณต๊ฐœ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ํ•„์ˆ˜ ์ž…๋ ฅ์ฐฝ์€ * ๋กœ ํ‘œ์‹œ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.