From 07f80b54cec79694206d9ba91ce5ad0401bb84d8 Mon Sep 17 00:00:00 2001 From: Yunji Ha Date: Thu, 29 Feb 2024 02:50:58 +0900 Subject: [PATCH 1/5] =?UTF-8?q?[=ED=95=98=EC=9C=A4=EC=A7=80]=207=EC=A3=BC?= =?UTF-8?q?=EC=B0=A8=20=EA=B3=BC=EC=A0=9C=20-=20complete?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...4\354\260\250_\352\263\274\354\240\234.md" | 66 +++++++++++++++++++ 1 file changed, 66 insertions(+) create mode 100644 "7\354\243\274\354\260\250 Server S-Day \352\263\274\354\240\234/\355\225\230\354\234\244\354\247\200_7\354\243\274\354\260\250_\352\263\274\354\240\234.md" diff --git "a/7\354\243\274\354\260\250 Server S-Day \352\263\274\354\240\234/\355\225\230\354\234\244\354\247\200_7\354\243\274\354\260\250_\352\263\274\354\240\234.md" "b/7\354\243\274\354\260\250 Server S-Day \352\263\274\354\240\234/\355\225\230\354\234\244\354\247\200_7\354\243\274\354\260\250_\352\263\274\354\240\234.md" new file mode 100644 index 0000000..4a15882 --- /dev/null +++ "b/7\354\243\274\354\260\250 Server S-Day \352\263\274\354\240\234/\355\225\230\354\234\244\354\247\200_7\354\243\274\354\260\250_\352\263\274\354\240\234.md" @@ -0,0 +1,66 @@ +# 7์ฃผ์ฐจ ๊ณผ์ œ Article + +## ๐Ÿ“๊ฐ•์˜ ์ •๋ฆฌ +### ์ปจํ…Œ์ด๋„ˆ +- ์–ด๋–ค ํ™˜๊ฒฝ์—์„œ ์‹คํ–‰ํ•˜๊ธฐ ์œ„ํ•ด ํ•„์š”ํ•œ ๋ชจ๋“  ์š”์†Œ๋ฅผ ํฌํ•จํ•˜๋Š” ์†Œํ”„ํŠธ์›จ์–ด ํŒจํ‚ค์ง€ +- ์ฝ”๋“œ์™€ ๊ทธ์— ํ•„์š”ํ•œ ๋ชจ๋“  ์ข…์†์„ฑ์„ ํŒจํ‚ค์ง•ํ•˜์—ฌ ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ์ด ํ•œ ์ปดํ“จํŒ… ํ™˜๊ฒฝ์—์„œ ๋น ๋ฅด๊ณ  ์‹ ๋ขฐ์„ฑ ์žˆ๊ฒŒ ๋‹ค๋ฅธ ํ™˜๊ฒฝ์œผ๋กœ ์‹คํ–‰๋  ์ˆ˜ ์žˆ๋„๋ก ํ•จ -> ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ํ™˜๊ฒฝ์— ๊ตฌ์• ๋ฐ›์ง€ ์•Š๊ณ  ์‹คํ–‰ํ•˜๋Š” ๊ธฐ์ˆ ! + + +### ๋„์ปค +- ์ปจํ…Œ์ด๋„ˆ๋ฅผ ๊ด€๋ฆฌํ•˜๊ธฐ ์œ„ํ•œ ๊ธฐ์ˆ  + +### ๋„์ปค vs VM + - VM์€ Host OS์œ„์— ํ•˜์ดํผ๋ฐ”์ด์ €๊ฐ€ ์˜ฌ๋ผ๊ฐ€๊ณ  ๊ทธ ์œ„์— Guest OS๊ฐ€ ์˜ฌ๋ผ๊ฐ€๋Š” ๊ตฌ์กฐ. + - ํ•˜์ง€๋งŒ Docker๋Š” Host OS ์œ„์— ๋ฐ”๋กœ ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ํŒจํ‚ค์ง•ํ•œ ์ปจํ…Œ์ด๋„ˆ๋ฅผ ์˜ฌ๋ฆผ -> VM์— ๋น„ํ•ด ์ข…์†์„ฑ ๊ฒฉ๋ฆฌ๊ฐ€ ๊ฐ„ํŽธํ•˜๊ณ  ์˜ค๋ฒ„ํ—ค๋“œ๊ฐ€ ์ ์Œ + - ๋„์ปค๋Š” ๊ฐ ์ปจํ…Œ์ด๋„ˆ๋Š” ๊ฒฉ๋ฆฌ๋œ ์‹คํ–‰ ํ™˜๊ฒฝ์„ ์ œ๊ณต + - ๋„์ปค๋Š” ํ˜ธ์ŠคํŠธ์˜ ๋ฆฌ๋ˆ…์Šค ์ปค๋„์„ ๊ณต์œ  (๋„์ปค๊ฐ€ ๋ฆฌ๋ˆ…์Šค ๊ธฐ์ˆ  ๊ธฐ๋ฐ˜์ด๊ธฐ ๋•Œ๋ฌธ) + +### ๋„์ปค๋Š” ํ•˜๋‚˜์˜ ํ”„๋กœ์„ธ์Šค๋‹ค + - ๋„์ปค ์ปจํ…Œ์ด๋„ˆ๋Š” ํ”„๋กœ์„ธ์Šค ID๋ฅผ ๊ฒฉ๋ฆฌํ•˜๋Š” PID ๋„ค์ž„์ŠคํŽ˜์ด์Šค์— ์˜ํ•ด ํ˜ธ์ŠคํŠธ ์‹œ์Šคํ…œ(๋ฆฌ๋ˆ…์Šค)๊ฐ€ ๋ณด๊ธฐ์—๋Š” ํ•˜๋‚˜์˜ ํ”„๋กœ์„ธ์Šค์ฒ˜๋Ÿผ ๋ณด์ž„ + - ๋„์ปค ์ปจํ…Œ์ด๋„ˆ๊ฐ€ ๋ณด๊ธฐ์—๋Š” ํ•˜๋‚˜์˜ ๊ฐ€์ƒ๋จธ์‹ ์ฒ˜๋Ÿผ ๊ด€๋ฆฌ๋œ๋‹ค +
+ -> ๋„์ปค๋Š” ๊ฐ€์ƒ๋จธ์‹  ๋ณด๋‹ค๋Š” ํ›จ์”ฌ ๋” ๊ฐ€๋ฒผ์šฐ๋ฉด์„œ๋„ ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ์œ„ํ•œ ๋…๋ฆฝ๋œ ํ™˜๊ฒฝ์„ ์ œ๊ณตํ•ด ์ค„ ์ˆ˜ ์žˆ์Œ + +### Docker image +- ์†Œ์Šค ์ฝ”๋“œ, ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ, ์ข…์†์„ฑ, ๋„๊ตฌ ๋ฐ ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ์„ ์‹คํ–‰ํ•˜๋Š”๋ฐ ํ•„์š”ํ•œ ๊ธฐํƒ€ ํŒŒ์ผ์„ ํฌํ•จํ•˜๋Š” ๋ณ€๊ฒฝ์ด ๋ถˆ๊ฐ€๋Šฅํ•œ ํŒŒ์ผ(ํ…œํ”Œ๋ฆฟ) +- ๋„์ปค ์ปจํ…Œ์ด๋„ˆ๋ฅผ ์ƒ์„ฑํ•˜๊ธฐ ์œ„ํ•œ ๋ชจ๋“  ํŒŒ์ผ๊ณผ ์„ค์ •์„ ๊ฐ€์ง€๊ณ  ์žˆ์Œ -> ๋„์ปค ์ปจํ…Œ์ด๋„ˆ์˜ ์„ค๊ณ„๋„! + + +### Dockerfile +- ๋„์ปค ์ด๋ฏธ์ง€๋ฅผ ์ •์˜ํ•œ ํŒŒ์ผ +- ์ปจํ…Œ์ด๋„ˆ ๋‚ด๋ถ€์— ์„ค์น˜ํ•  ์†Œํ”„ํŠธ์›จ์–ด, ์„ค์ •๊ฐ’, ์‹คํ–‰ ๋ช…๋ น ๋“ฑ์„ ๋ช…์‹œํ•˜๋Š” ์Šคํฌ๋ฆฝํŠธ ํ˜•ํƒœ์˜ ํŒŒ์ผ + +Dockerfile์„ ์ž‘์„ฑ ํ›„ ๋นŒ๋“œ -> ๋„์ปค ์ด๋ฏธ์ง€ ์ƒ์„ฑ -> ์ด๋ฏธ์ง€๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋„์ปค ์ปจํ…Œ์ด๋„ˆ ์‹คํ–‰ + +### ์ฟ ๋ฒ„๋„คํ‹ฐ์Šค(Kubernetes, K8s) +- ์ปจํ…Œ์ด๋„ˆ๋กœ ์ด๋ฃจ์–ด์ง„ ์›Œํฌ๋กœ๋“œ๋ฅผ ์ž๋™ํ™”ํ•˜๊ฑฐ๋‚˜ ๊ด€๋ฆฌํ•˜๊ธฐ ์œ„ํ•œ ๊ธฐ์ˆ  +- ์ฟ ๋ฒ„๋„คํ‹ฐ์Šค๋Š” ์ปจํ…Œ์ด๋„ˆ ๊ทธ ์ž์ฒด๋ฅผ ๋‹ค๋ฃจ์ง„ ์•Š๊ณ  ์„œ๋กœ ๋ฐ€์ ‘ํ•˜๊ฒŒ ์—ฐ๊ด€๋œ ์ปจํ…Œ์ด๋„ˆ๋“ค์˜ ์ง‘ํ•ฉ์ธ Pod๋ฅผ ๊ด€๋ฆฌํ•จ (์ปจํ…Œ์ด๋„ˆ ๊ด€๋ฆฌ ๊ธฐ์ˆ ์€ ๋„์ปค) + +### Pod +- ํ•˜๋‚˜์˜ ํฌ๋“œ ๋‚ด์˜ ๋ชจ๋“  ์ปจํ…Œ์ด๋„ˆ๋Š” ๋„คํŠธ์›Œํ‚น๊ณผ ์Šคํ† ๋ฆฌ์ง€๋ฅผ ๊ณต์œ ํ•จ -> ip์ฃผ์†Œ, ๋„คํฌ์›Œํฌ ํฌํŠธ, ๋„คํŠธ์›Œํฌ ๋„ค์ž„์ŠคํŽ˜์ด์Šค๋„ ๊ณต์œ  + +### ์ฟ ๋ฒ„๋„คํ‹ฐ์Šค์˜ ์•„ํ‚คํ…์ณ +- Master Node(=์ปจํŠธ๋กค ํ”Œ๋ ˆ์ธ): ์–ด๋–ค ์ปจํ…Œ์ด๋„ˆ๋ฅผ ์‹คํ–‰ํ• ์ง€, ์–ผ๋งŒํผ์˜ ์ปจํ…Œ์ด๋„ˆ๋ฅผ ์‹คํ–‰ํ• ์ง€ ๊ฒฐ์ • +- Worker Node: ๊ฐ์ž ์ปจํ…Œ์ด๋„ˆ๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ์Œ + +### GKE ํด๋Ÿฌ์Šคํ„ฐ (Google Kubernetes Engine(GKE)) +- ํด๋Ÿฌ์Šคํ„ฐ๋Š” 1๊ฐœ ์ด์ƒ์˜ ํด๋Ÿฌ์Šคํ„ฐ master ๋จธ์‹ ๊ณผ ์—ฌ๋Ÿฌ worker ๋จธ์‹ ์œผ๋กœ ๊ตฌ์„ฑ๋จ. ๊ทธ๋ฆฌ๊ณ  ๊ฐ ๋จธ์‹ ๋“ค์€ VM ์ธ์Šคํ„ด์Šค๋กœ ๊ตฌํ˜„๋˜์–ด์•ผํ•จ +
+ -> GKE ํด๋Ÿฌ์Šคํ„ฐ๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ์ž๋™์œผ๋กœ ํ•ด๋‹น ์ž‘์—…์ด ์™„๋ฃŒ๋จ. +- ์‚ฌ์šฉ์ž๋Š” kubectl ๋ช…๋ น์–ด๋ฅผ ํ†ตํ•ด ์ปจํŠธ๋กค ํ”Œ๋ ˆ์ธ์— ์ ‘๊ทผ ๊ฐ€๋Šฅํ•จ + +## โœŒ๏ธ๊ณผ์ œ ์ธ์ฆ +1. Dockerfile๋กœ Node ์„œ๋ฒ„ ๋งŒ๋“ค๊ธฐ + ![image](https://github.com/GDSC-Ewha-5th/GDSC-Server-5th/assets/67634926/dad1f423-0c6b-4d6f-aa7f-04139f339ced) + +
+ +2. GKE ํด๋Ÿฌ์Šคํ„ฐ ์ƒ์„ฑ ํ›„ ํด๋Ÿฌ์Šคํ„ฐ์— ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋ฐฐํฌ + ![image](https://github.com/GDSC-Ewha-5th/GDSC-Server-5th/assets/67634926/eb7936be-5d82-4357-b3ca-11b07dfff611) + + +### ๐Ÿšจ๋ฌธ์ œ์ƒํ™ฉ +์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋ฐฐํฌ ์ƒ์„ฑ, ์„œ๋น„์Šค ๋…ธ์ถœ, ์„œ๋น„์Šค ํ™•์ธ ๋ช…๋ น์–ด ์‹คํ–‰ ํ›„ ์‚ฌ์ง„๊ณผ ๊ฐ™์€ ๊ฒฝ๊ณ  ๋ฌธ๊ตฌ ๋ฐœ์ƒ +ํ•˜์ง€๋งŒ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์€ ์ •์ƒ์ ์œผ๋กœ ๋™์ž‘ํ•˜์˜€๋‹ค... +![image](https://github.com/GDSC-Ewha-5th/GDSC-Server-5th/assets/67634926/68639b7f-48be-4e55-9685-341202cb2a04) + From bb67e1d455afa990589d5dd82380c8c89af80fad Mon Sep 17 00:00:00 2001 From: Yunji Ha Date: Thu, 29 Feb 2024 23:21:35 +0900 Subject: [PATCH 2/5] =?UTF-8?q?=20[=ED=95=98=EC=9C=A4=EC=A7=80]=208?= =?UTF-8?q?=EC=A3=BC=EC=B0=A8=20=EA=B3=BC=EC=A0=9C=20-=20ing?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...4\354\260\250_\352\263\274\354\240\234.md" | 31 +++++++++++++++++++ 1 file changed, 31 insertions(+) create mode 100644 "8\354\243\274\354\260\250 Server S-Day \352\263\274\354\240\234/\355\225\230\354\234\244\354\247\200_8\354\243\274\354\260\250_\352\263\274\354\240\234.md" diff --git "a/8\354\243\274\354\260\250 Server S-Day \352\263\274\354\240\234/\355\225\230\354\234\244\354\247\200_8\354\243\274\354\260\250_\352\263\274\354\240\234.md" "b/8\354\243\274\354\260\250 Server S-Day \352\263\274\354\240\234/\355\225\230\354\234\244\354\247\200_8\354\243\274\354\260\250_\352\263\274\354\240\234.md" new file mode 100644 index 0000000..41fa85e --- /dev/null +++ "b/8\354\243\274\354\260\250 Server S-Day \352\263\274\354\240\234/\355\225\230\354\234\244\354\247\200_8\354\243\274\354\260\250_\352\263\274\354\240\234.md" @@ -0,0 +1,31 @@ +# 8์ฃผ์ฐจ ๊ณผ์ œ Article + +## ๐Ÿ“๊ฐ•์˜ ์ •๋ฆฌ +### Service +- Pod๋ฅผ ์œ„ํ•œ ์˜๊ตฌ์ ์ธ ์—”๋“œํฌ์ธํŠธ +- private IP(=cluster IP) ์ œ๊ณต: ํด๋Ÿฌ์Šคํ„ฐ ๋‚ด๋ถ€์—์„œ๋งŒ ์‚ฌ์šฉ๋จ. pod ๋‚ด์—์„œ๋Š” ์ ‘๊ทผ ๊ฐ€๋Šฅ +- external IP ์ œ๊ณต: ์™ธ๋ถ€์—์„œ ์ ‘๊ทผ ๊ฐ€๋Šฅ +- ์—ฌ๋Ÿฌ pod๋กœ ๋ฐฑ์—”๋“œ ์„œ๋ฒ„๋ฅผ ๋„์šฐ๊ณ  ์ด๋ฅผ service๊ฐ€ ์ œ๊ณตํ•˜๋Š” LoadBalancer๋กœ ์—ฐ๊ฒฐํ•œ ๋‹ค์Œ LoadBalancer์˜ IP๋กœ ์ ‘๊ทผํ•˜๋Š” ๊ฒƒ์ด ๊ฐ€๋Šฅํ•จ + +### ์ฟ ๋ฒ„๋„คํ‹ฐ์Šค์˜ ๊ฐ์ฒด +- ์ŠคํŽ™(spec)๊ณผ ์ƒํƒœ(status) +1. Spec: ์›ํ•˜๋Š” ์ƒํƒœ +2. Status: ํ˜„์žฌ ์ƒํƒœ + +์ฟ ๋ฒ„๋„คํ‹ฐ์Šค์˜ control plane์€ spec๊ณผ status๋ฅผ ๊ณ„์† ๋น„๊ตํ•œ๋‹ค. ํ•„์š”ํ•œ ๊ฒฝ์šฐ status๋ฅผ ์ˆ˜์ •ํ•จ์œผ๋กœ์จ spec๊ณผ status๋ฅผ ์ผ์น˜์‹œํ‚ค๋ ค๊ณ  ํ•œ๋‹ค! + +### ๋ฐฐํฌ(Deployment) +- ๋‚ด์šฉ์€ ๊ฐ™๊ณ  ์ด๋ฆ„๋งŒ ๋‹ค๋ฅธ pod ์—ฌ๋Ÿฌ๊ฐœ๋ฅผ ๋งŒ๋“ค๊ณ  ์‹ถ์€ ๊ฒฝ์šฐ, ๋ฐฐํฌ๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ํŒŒ๋“œ ๊ด€๋ฆฌ๊ฐ€ ํŽธํ•ด์ง„๋‹ค! +- ๋ฐฐํฌ ํŒŒ์ผ์— ์‹คํ–‰ํ•˜๊ณ  ์œ ์ง€ํ•  pod์˜ ์ˆ˜์™€ ๊ฐ pod์˜ ์ŠคํŽ™์„ ์ •์˜ํ•œ๋‹ค +- pod๋ฅผ ์‚ญ์ œํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ๋ฐฐํฌ๋ฅผ ์ˆ˜์ •ํ•ด์•ผํ•จ -> ์›ํ•˜๋Š” ์ƒํƒœ ์ž์ฒด๋ฅผ ๋ณ€๊ฒฝํ•ด์•ผํ•œ๋‹ค! + - ๋ฐฐํฌ๋ฅผ ํ†ตํ•ด ๋งŒ๋“  ์„ ์–ธ์  ๋ช…๋ น์„ ๋งŒ์กฑ์‹œํ‚ค๊ธฐ ์œ„ํ•ด ๊ณ„์† ์›์ƒ๋ณต๊ตฌ ์‹œ์ผœ๋‘๊ธฐ ๋•Œ๋ฌธ + +### ๋ฐฐํฌ ์—…๋ฐ์ดํŠธ ๋ฐฉ์‹ +1. ์ˆœ์ฐจ์ (Rolling) ์—…๋ฐ์ดํŠธ +2. + +## โœŒ๏ธ๊ณผ์ œ ์ธ์ฆ +์‹ค์Šต ์ง„ํ–‰ ๊ณผ์ •: yaml ํŒŒ์ผ ์ƒ์„ฑ -> apply ๋ช…๋ น์–ด๋กœ ๊ฐ์ฒด ๋งŒ๋“ค๊ธฐ + +1. service์˜ ์™ธ๋ถ€ IP๋ฅผ ์ด์šฉํ•ด ์ ‘์† + ![image](https://github.com/GDSC-Ewha-5th/GDSC-Server-5th/assets/67634926/501175d7-6641-404f-bc68-4aed1a7c8363) From 0545fb154925291237f7db84df04cbad37fd8e63 Mon Sep 17 00:00:00 2001 From: Yunji Ha Date: Thu, 29 Feb 2024 23:43:15 +0900 Subject: [PATCH 3/5] =?UTF-8?q?[=ED=95=98=EC=9C=A4=EC=A7=80]=208=EC=A3=BC?= =?UTF-8?q?=EC=B0=A8=20=EA=B3=BC=EC=A0=9C=20-=20complete?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...4\354\260\250_\352\263\274\354\240\234.md" | 32 +++++++++++++++---- 1 file changed, 25 insertions(+), 7 deletions(-) diff --git "a/8\354\243\274\354\260\250 Server S-Day \352\263\274\354\240\234/\355\225\230\354\234\244\354\247\200_8\354\243\274\354\260\250_\352\263\274\354\240\234.md" "b/8\354\243\274\354\260\250 Server S-Day \352\263\274\354\240\234/\355\225\230\354\234\244\354\247\200_8\354\243\274\354\260\250_\352\263\274\354\240\234.md" index 41fa85e..b89e118 100644 --- "a/8\354\243\274\354\260\250 Server S-Day \352\263\274\354\240\234/\355\225\230\354\234\244\354\247\200_8\354\243\274\354\260\250_\352\263\274\354\240\234.md" +++ "b/8\354\243\274\354\260\250 Server S-Day \352\263\274\354\240\234/\355\225\230\354\234\244\354\247\200_8\354\243\274\354\260\250_\352\263\274\354\240\234.md" @@ -1,31 +1,49 @@ # 8์ฃผ์ฐจ ๊ณผ์ œ Article ## ๐Ÿ“๊ฐ•์˜ ์ •๋ฆฌ -### Service +### โœจService - Pod๋ฅผ ์œ„ํ•œ ์˜๊ตฌ์ ์ธ ์—”๋“œํฌ์ธํŠธ - private IP(=cluster IP) ์ œ๊ณต: ํด๋Ÿฌ์Šคํ„ฐ ๋‚ด๋ถ€์—์„œ๋งŒ ์‚ฌ์šฉ๋จ. pod ๋‚ด์—์„œ๋Š” ์ ‘๊ทผ ๊ฐ€๋Šฅ - external IP ์ œ๊ณต: ์™ธ๋ถ€์—์„œ ์ ‘๊ทผ ๊ฐ€๋Šฅ - ์—ฌ๋Ÿฌ pod๋กœ ๋ฐฑ์—”๋“œ ์„œ๋ฒ„๋ฅผ ๋„์šฐ๊ณ  ์ด๋ฅผ service๊ฐ€ ์ œ๊ณตํ•˜๋Š” LoadBalancer๋กœ ์—ฐ๊ฒฐํ•œ ๋‹ค์Œ LoadBalancer์˜ IP๋กœ ์ ‘๊ทผํ•˜๋Š” ๊ฒƒ์ด ๊ฐ€๋Šฅํ•จ -### ์ฟ ๋ฒ„๋„คํ‹ฐ์Šค์˜ ๊ฐ์ฒด +### โœจ์ฟ ๋ฒ„๋„คํ‹ฐ์Šค์˜ ๊ฐ์ฒด - ์ŠคํŽ™(spec)๊ณผ ์ƒํƒœ(status) 1. Spec: ์›ํ•˜๋Š” ์ƒํƒœ 2. Status: ํ˜„์žฌ ์ƒํƒœ ์ฟ ๋ฒ„๋„คํ‹ฐ์Šค์˜ control plane์€ spec๊ณผ status๋ฅผ ๊ณ„์† ๋น„๊ตํ•œ๋‹ค. ํ•„์š”ํ•œ ๊ฒฝ์šฐ status๋ฅผ ์ˆ˜์ •ํ•จ์œผ๋กœ์จ spec๊ณผ status๋ฅผ ์ผ์น˜์‹œํ‚ค๋ ค๊ณ  ํ•œ๋‹ค! -### ๋ฐฐํฌ(Deployment) +### โœจ๋ฐฐํฌ(Deployment) - ๋‚ด์šฉ์€ ๊ฐ™๊ณ  ์ด๋ฆ„๋งŒ ๋‹ค๋ฅธ pod ์—ฌ๋Ÿฌ๊ฐœ๋ฅผ ๋งŒ๋“ค๊ณ  ์‹ถ์€ ๊ฒฝ์šฐ, ๋ฐฐํฌ๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ํŒŒ๋“œ ๊ด€๋ฆฌ๊ฐ€ ํŽธํ•ด์ง„๋‹ค! - ๋ฐฐํฌ ํŒŒ์ผ์— ์‹คํ–‰ํ•˜๊ณ  ์œ ์ง€ํ•  pod์˜ ์ˆ˜์™€ ๊ฐ pod์˜ ์ŠคํŽ™์„ ์ •์˜ํ•œ๋‹ค - pod๋ฅผ ์‚ญ์ œํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ๋ฐฐํฌ๋ฅผ ์ˆ˜์ •ํ•ด์•ผํ•จ -> ์›ํ•˜๋Š” ์ƒํƒœ ์ž์ฒด๋ฅผ ๋ณ€๊ฒฝํ•ด์•ผํ•œ๋‹ค! - ๋ฐฐํฌ๋ฅผ ํ†ตํ•ด ๋งŒ๋“  ์„ ์–ธ์  ๋ช…๋ น์„ ๋งŒ์กฑ์‹œํ‚ค๊ธฐ ์œ„ํ•ด ๊ณ„์† ์›์ƒ๋ณต๊ตฌ ์‹œ์ผœ๋‘๊ธฐ ๋•Œ๋ฌธ -### ๋ฐฐํฌ ์—…๋ฐ์ดํŠธ ๋ฐฉ์‹ -1. ์ˆœ์ฐจ์ (Rolling) ์—…๋ฐ์ดํŠธ -2. +### โœจ๋ฐฐํฌ ์—…๋ฐ์ดํŠธ ๋ฐฉ์‹ +1. ์ˆœ์ฐจ์ (Rolling) ์—…๋ฐ์ดํŠธ
+ a. ๋ฐฐํฌ๊ฐ€ ์—…๋ฐ์ดํŠธ ๋˜๋ฉด ์ƒˆ๋กœ์šด ReplicaSet์ด ์ƒ์„ฑ๋จ
+ b. ์ด์ „ ReplicaSet์˜ ๋ณต์ œ๋ณธ์€ ์„œ์„œํžˆ ๊ฐ์†Œ (๊ธฐ์กด pod๋“ค์ด ํ•˜๋‚˜์”ฉ ์‚ญ์ œ๋จ)
+ c. ์ƒˆ ReplicaSet์˜ ๋ณต์ œ๋ณธ์€ ์„œ์„œํžˆ ์ฆ๊ฐ€ (์ƒˆ๋กœ์šด pod๋“ค์ด ํ•˜๋‚˜์”ฉ ๋Š˜์–ด๋‚จ)
+ - ์žฅ์ : ์ตœ์†Œํ•œ์˜ downtime(์ค‘๋‹จ์‹œ๊ฐ„)
+ - ๋‹จ์ : ์—…๋ฐ์ดํŠธ ์‹œ๊ฐ„์ด ์งง์ง„ ์•Š์Œ
+ - ์ฟ ๋ฒ„๋„คํ‹ฐ์Šค๋Š” ๋กค๋ฐฑ์„ ์ƒˆ๋กœ์šด ๋ฆฌ๋น„์ „์œผ๋กœ ์ฒ˜๋ฆฌํ•จ. ๋กค๋ฐฑ๋œ ๋ฐฐํฌ์˜ ์ด์ „ ๋ฆฌ๋น„์ „์€ ํ‘œ์‹œํ•˜์ง€ ์•Š์Œ + +2. ์นด๋‚˜๋ฆฌ์•„ ์—…๋ฐ์ดํŠธ
+ a. ์นด๋‚˜๋ฆฌ์•„ ๋ฐฐํฌ์šฉ yamlํŒŒ์ผ ์ž‘์„ฑ ํ›„ applyํ•˜์—ฌ ํŒŒ๋“œ ์ƒ์„ฑ
+ b. ๊ธฐ์กด ํŒŒ๋“œ์™€ ์นด๋‚˜๋ฆฌ์•„ ํŒŒ๋“œ ๋ชจ๋‘๋ฅผ ๋‹ค๋ฃจ๋„๋ก service ๋ณ€๊ฒฝ
+ - ์ผ๋ถ€ ์‚ฌ์šฉ์ž์—๊ฒŒ๋งŒ ์‹ ๋ฒ„์ „์„ ์—…๋ฐ์ดํŠธํ•˜๋Š” ๋ฐฉ์‹
+ - ์นด๋‚˜๋ฆฌ์•„ ๋ฐฐํฌ๋ฅผ ํ†ตํ•ด ์‹ ๋ฒ„์ „์ด ์ •์ƒ์ ์œผ๋กœ ๋™์ž‘ํ•˜๋Š” ๊ฒƒ์„ ํ™•์ธํ•˜๋ฉด ๊ธฐ์กด ์นด๋‚˜๋ฆฌ์•„ ๋ฐฐํฌ๋ฅผ ์‚ญ์ œํ•˜๊ณ  rolling update ํ•จ + +3. ๋ธ”๋ฃจ/๊ทธ๋ฆฐ ์—…๋ฐ์ดํŠธ
+ a. ๊ตฌ๋ฒ„์ „(blue)์™€ ๋™์ผํ•œ ์‹ ๋ฒ„์ „(green)์„ ๊ตฌ์ถ•
+ b. ๊ตฌ ๋ฒ„์ „์„ ๊ฐ€๋ฆฌ์ผฐ๋˜ ์„œ๋น„์Šค๊ฐ€ ํ•œ๋ฒˆ์— ์‹ ๋ฒ„์ „์„ ๊ฐ€๋ฆฌํ‚ค๋„๋ก ์—…๋ฐ์ดํŠธ
+ - ์žฅ์ : ์‹ ๋ฒ„์ „์„ ๋ฐฐํฌํ•˜๊ธฐ ์ „ ๋™์ผํ•œ ๋ฆฌ์†Œ์Šค๋ฅผ ์‚ฌ์šฉํ•ด์„œ ํ”„๋กœ๋•์…˜ ํ™˜๊ฒฝ์„ ๊ตฌ์ถ•ํ•œ ๋‹ค์Œ ํ…Œ์ŠคํŠธ๋ฅผ ์ง„ํ–‰ํ•  ์ˆ˜ ์žˆ๋‹ค + - ๋‹จ์ : ์ผ์‹œ์ ์œผ๋กœ ์‹œ์Šคํ…œ ์ž์›์ด 2๋ฐฐ๋กœ ํ•„์š”ํ•จ + ## โœŒ๏ธ๊ณผ์ œ ์ธ์ฆ -์‹ค์Šต ์ง„ํ–‰ ๊ณผ์ •: yaml ํŒŒ์ผ ์ƒ์„ฑ -> apply ๋ช…๋ น์–ด๋กœ ๊ฐ์ฒด ๋งŒ๋“ค๊ธฐ +์‹ค์Šต ์ง„ํ–‰ ๊ณผ์ •: yaml ํŒŒ์ผ ์ƒ์„ฑ -> apply ๋ช…๋ น์–ด๋กœ ํŒŒ๋“œ/์„œ๋น„์Šค ๋งŒ๋“ค๊ธฐ 1. service์˜ ์™ธ๋ถ€ IP๋ฅผ ์ด์šฉํ•ด ์ ‘์† ![image](https://github.com/GDSC-Ewha-5th/GDSC-Server-5th/assets/67634926/501175d7-6641-404f-bc68-4aed1a7c8363) From 1d6e0d212160d854747139301c0dbabbe12af902 Mon Sep 17 00:00:00 2001 From: Yunji Ha Date: Thu, 29 Feb 2024 23:44:04 +0900 Subject: [PATCH 4/5] =?UTF-8?q?[=ED=95=98=EC=9C=A4=EC=A7=80]=208=EC=A3=BC?= =?UTF-8?q?=EC=B0=A8=20=EA=B3=BC=EC=A0=9C=20-=20complete?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...200_8\354\243\274\354\260\250_\352\263\274\354\240\234.md" | 4 ++++ 1 file changed, 4 insertions(+) diff --git "a/8\354\243\274\354\260\250 Server S-Day \352\263\274\354\240\234/\355\225\230\354\234\244\354\247\200_8\354\243\274\354\260\250_\352\263\274\354\240\234.md" "b/8\354\243\274\354\260\250 Server S-Day \352\263\274\354\240\234/\355\225\230\354\234\244\354\247\200_8\354\243\274\354\260\250_\352\263\274\354\240\234.md" index b89e118..3ee8212 100644 --- "a/8\354\243\274\354\260\250 Server S-Day \352\263\274\354\240\234/\355\225\230\354\234\244\354\247\200_8\354\243\274\354\260\250_\352\263\274\354\240\234.md" +++ "b/8\354\243\274\354\260\250 Server S-Day \352\263\274\354\240\234/\355\225\230\354\234\244\354\247\200_8\354\243\274\354\260\250_\352\263\274\354\240\234.md" @@ -47,3 +47,7 @@ 1. service์˜ ์™ธ๋ถ€ IP๋ฅผ ์ด์šฉํ•ด ์ ‘์† ![image](https://github.com/GDSC-Ewha-5th/GDSC-Server-5th/assets/67634926/501175d7-6641-404f-bc68-4aed1a7c8363) + +2. ์นด๋‚˜๋ฆฌ์•„ ๋ฐฐํฌ ์‹ค์Šต + ![image](https://github.com/GDSC-Ewha-5th/GDSC-Server-5th/assets/67634926/c97b8b6e-1ee7-473d-9ca9-ac0f1207445f) + From 83643dcb5008494f2a45e4f586e03136ac8e354a Mon Sep 17 00:00:00 2001 From: Yunji Ha Date: Thu, 29 Feb 2024 23:45:14 +0900 Subject: [PATCH 5/5] =?UTF-8?q?[=ED=95=98=EC=9C=A4=EC=A7=80]=207=EC=A3=BC?= =?UTF-8?q?=EC=B0=A8=20=EA=B3=BC=EC=A0=9C=20-=20complete?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...4\354\260\250_\352\263\274\354\240\234.md" | 20 +++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git "a/7\354\243\274\354\260\250 Server S-Day \352\263\274\354\240\234/\355\225\230\354\234\244\354\247\200_7\354\243\274\354\260\250_\352\263\274\354\240\234.md" "b/7\354\243\274\354\260\250 Server S-Day \352\263\274\354\240\234/\355\225\230\354\234\244\354\247\200_7\354\243\274\354\260\250_\352\263\274\354\240\234.md" index 4a15882..6e316b4 100644 --- "a/7\354\243\274\354\260\250 Server S-Day \352\263\274\354\240\234/\355\225\230\354\234\244\354\247\200_7\354\243\274\354\260\250_\352\263\274\354\240\234.md" +++ "b/7\354\243\274\354\260\250 Server S-Day \352\263\274\354\240\234/\355\225\230\354\234\244\354\247\200_7\354\243\274\354\260\250_\352\263\274\354\240\234.md" @@ -1,49 +1,49 @@ # 7์ฃผ์ฐจ ๊ณผ์ œ Article ## ๐Ÿ“๊ฐ•์˜ ์ •๋ฆฌ -### ์ปจํ…Œ์ด๋„ˆ +### โœจ์ปจํ…Œ์ด๋„ˆ - ์–ด๋–ค ํ™˜๊ฒฝ์—์„œ ์‹คํ–‰ํ•˜๊ธฐ ์œ„ํ•ด ํ•„์š”ํ•œ ๋ชจ๋“  ์š”์†Œ๋ฅผ ํฌํ•จํ•˜๋Š” ์†Œํ”„ํŠธ์›จ์–ด ํŒจํ‚ค์ง€ - ์ฝ”๋“œ์™€ ๊ทธ์— ํ•„์š”ํ•œ ๋ชจ๋“  ์ข…์†์„ฑ์„ ํŒจํ‚ค์ง•ํ•˜์—ฌ ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ์ด ํ•œ ์ปดํ“จํŒ… ํ™˜๊ฒฝ์—์„œ ๋น ๋ฅด๊ณ  ์‹ ๋ขฐ์„ฑ ์žˆ๊ฒŒ ๋‹ค๋ฅธ ํ™˜๊ฒฝ์œผ๋กœ ์‹คํ–‰๋  ์ˆ˜ ์žˆ๋„๋ก ํ•จ -> ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ํ™˜๊ฒฝ์— ๊ตฌ์• ๋ฐ›์ง€ ์•Š๊ณ  ์‹คํ–‰ํ•˜๋Š” ๊ธฐ์ˆ ! -### ๋„์ปค +### โœจ๋„์ปค - ์ปจํ…Œ์ด๋„ˆ๋ฅผ ๊ด€๋ฆฌํ•˜๊ธฐ ์œ„ํ•œ ๊ธฐ์ˆ  -### ๋„์ปค vs VM +### โœจ๋„์ปค vs VM - VM์€ Host OS์œ„์— ํ•˜์ดํผ๋ฐ”์ด์ €๊ฐ€ ์˜ฌ๋ผ๊ฐ€๊ณ  ๊ทธ ์œ„์— Guest OS๊ฐ€ ์˜ฌ๋ผ๊ฐ€๋Š” ๊ตฌ์กฐ. - ํ•˜์ง€๋งŒ Docker๋Š” Host OS ์œ„์— ๋ฐ”๋กœ ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ํŒจํ‚ค์ง•ํ•œ ์ปจํ…Œ์ด๋„ˆ๋ฅผ ์˜ฌ๋ฆผ -> VM์— ๋น„ํ•ด ์ข…์†์„ฑ ๊ฒฉ๋ฆฌ๊ฐ€ ๊ฐ„ํŽธํ•˜๊ณ  ์˜ค๋ฒ„ํ—ค๋“œ๊ฐ€ ์ ์Œ - ๋„์ปค๋Š” ๊ฐ ์ปจํ…Œ์ด๋„ˆ๋Š” ๊ฒฉ๋ฆฌ๋œ ์‹คํ–‰ ํ™˜๊ฒฝ์„ ์ œ๊ณต - ๋„์ปค๋Š” ํ˜ธ์ŠคํŠธ์˜ ๋ฆฌ๋ˆ…์Šค ์ปค๋„์„ ๊ณต์œ  (๋„์ปค๊ฐ€ ๋ฆฌ๋ˆ…์Šค ๊ธฐ์ˆ  ๊ธฐ๋ฐ˜์ด๊ธฐ ๋•Œ๋ฌธ) -### ๋„์ปค๋Š” ํ•˜๋‚˜์˜ ํ”„๋กœ์„ธ์Šค๋‹ค +### โœจ๋„์ปค๋Š” ํ•˜๋‚˜์˜ ํ”„๋กœ์„ธ์Šค๋‹ค - ๋„์ปค ์ปจํ…Œ์ด๋„ˆ๋Š” ํ”„๋กœ์„ธ์Šค ID๋ฅผ ๊ฒฉ๋ฆฌํ•˜๋Š” PID ๋„ค์ž„์ŠคํŽ˜์ด์Šค์— ์˜ํ•ด ํ˜ธ์ŠคํŠธ ์‹œ์Šคํ…œ(๋ฆฌ๋ˆ…์Šค)๊ฐ€ ๋ณด๊ธฐ์—๋Š” ํ•˜๋‚˜์˜ ํ”„๋กœ์„ธ์Šค์ฒ˜๋Ÿผ ๋ณด์ž„ - ๋„์ปค ์ปจํ…Œ์ด๋„ˆ๊ฐ€ ๋ณด๊ธฐ์—๋Š” ํ•˜๋‚˜์˜ ๊ฐ€์ƒ๋จธ์‹ ์ฒ˜๋Ÿผ ๊ด€๋ฆฌ๋œ๋‹ค
-> ๋„์ปค๋Š” ๊ฐ€์ƒ๋จธ์‹  ๋ณด๋‹ค๋Š” ํ›จ์”ฌ ๋” ๊ฐ€๋ฒผ์šฐ๋ฉด์„œ๋„ ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ์œ„ํ•œ ๋…๋ฆฝ๋œ ํ™˜๊ฒฝ์„ ์ œ๊ณตํ•ด ์ค„ ์ˆ˜ ์žˆ์Œ -### Docker image +### โœจDocker image - ์†Œ์Šค ์ฝ”๋“œ, ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ, ์ข…์†์„ฑ, ๋„๊ตฌ ๋ฐ ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ์„ ์‹คํ–‰ํ•˜๋Š”๋ฐ ํ•„์š”ํ•œ ๊ธฐํƒ€ ํŒŒ์ผ์„ ํฌํ•จํ•˜๋Š” ๋ณ€๊ฒฝ์ด ๋ถˆ๊ฐ€๋Šฅํ•œ ํŒŒ์ผ(ํ…œํ”Œ๋ฆฟ) - ๋„์ปค ์ปจํ…Œ์ด๋„ˆ๋ฅผ ์ƒ์„ฑํ•˜๊ธฐ ์œ„ํ•œ ๋ชจ๋“  ํŒŒ์ผ๊ณผ ์„ค์ •์„ ๊ฐ€์ง€๊ณ  ์žˆ์Œ -> ๋„์ปค ์ปจํ…Œ์ด๋„ˆ์˜ ์„ค๊ณ„๋„! -### Dockerfile +### โœจDockerfile - ๋„์ปค ์ด๋ฏธ์ง€๋ฅผ ์ •์˜ํ•œ ํŒŒ์ผ - ์ปจํ…Œ์ด๋„ˆ ๋‚ด๋ถ€์— ์„ค์น˜ํ•  ์†Œํ”„ํŠธ์›จ์–ด, ์„ค์ •๊ฐ’, ์‹คํ–‰ ๋ช…๋ น ๋“ฑ์„ ๋ช…์‹œํ•˜๋Š” ์Šคํฌ๋ฆฝํŠธ ํ˜•ํƒœ์˜ ํŒŒ์ผ Dockerfile์„ ์ž‘์„ฑ ํ›„ ๋นŒ๋“œ -> ๋„์ปค ์ด๋ฏธ์ง€ ์ƒ์„ฑ -> ์ด๋ฏธ์ง€๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋„์ปค ์ปจํ…Œ์ด๋„ˆ ์‹คํ–‰ -### ์ฟ ๋ฒ„๋„คํ‹ฐ์Šค(Kubernetes, K8s) +### โœจ์ฟ ๋ฒ„๋„คํ‹ฐ์Šค(Kubernetes, K8s) - ์ปจํ…Œ์ด๋„ˆ๋กœ ์ด๋ฃจ์–ด์ง„ ์›Œํฌ๋กœ๋“œ๋ฅผ ์ž๋™ํ™”ํ•˜๊ฑฐ๋‚˜ ๊ด€๋ฆฌํ•˜๊ธฐ ์œ„ํ•œ ๊ธฐ์ˆ  - ์ฟ ๋ฒ„๋„คํ‹ฐ์Šค๋Š” ์ปจํ…Œ์ด๋„ˆ ๊ทธ ์ž์ฒด๋ฅผ ๋‹ค๋ฃจ์ง„ ์•Š๊ณ  ์„œ๋กœ ๋ฐ€์ ‘ํ•˜๊ฒŒ ์—ฐ๊ด€๋œ ์ปจํ…Œ์ด๋„ˆ๋“ค์˜ ์ง‘ํ•ฉ์ธ Pod๋ฅผ ๊ด€๋ฆฌํ•จ (์ปจํ…Œ์ด๋„ˆ ๊ด€๋ฆฌ ๊ธฐ์ˆ ์€ ๋„์ปค) -### Pod +### โœจPod - ํ•˜๋‚˜์˜ ํฌ๋“œ ๋‚ด์˜ ๋ชจ๋“  ์ปจํ…Œ์ด๋„ˆ๋Š” ๋„คํŠธ์›Œํ‚น๊ณผ ์Šคํ† ๋ฆฌ์ง€๋ฅผ ๊ณต์œ ํ•จ -> ip์ฃผ์†Œ, ๋„คํฌ์›Œํฌ ํฌํŠธ, ๋„คํŠธ์›Œํฌ ๋„ค์ž„์ŠคํŽ˜์ด์Šค๋„ ๊ณต์œ  -### ์ฟ ๋ฒ„๋„คํ‹ฐ์Šค์˜ ์•„ํ‚คํ…์ณ +### โœจ์ฟ ๋ฒ„๋„คํ‹ฐ์Šค์˜ ์•„ํ‚คํ…์ณ - Master Node(=์ปจํŠธ๋กค ํ”Œ๋ ˆ์ธ): ์–ด๋–ค ์ปจํ…Œ์ด๋„ˆ๋ฅผ ์‹คํ–‰ํ• ์ง€, ์–ผ๋งŒํผ์˜ ์ปจํ…Œ์ด๋„ˆ๋ฅผ ์‹คํ–‰ํ• ์ง€ ๊ฒฐ์ • - Worker Node: ๊ฐ์ž ์ปจํ…Œ์ด๋„ˆ๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ์Œ -### GKE ํด๋Ÿฌ์Šคํ„ฐ (Google Kubernetes Engine(GKE)) +### โœจGKE ํด๋Ÿฌ์Šคํ„ฐ (Google Kubernetes Engine(GKE)) - ํด๋Ÿฌ์Šคํ„ฐ๋Š” 1๊ฐœ ์ด์ƒ์˜ ํด๋Ÿฌ์Šคํ„ฐ master ๋จธ์‹ ๊ณผ ์—ฌ๋Ÿฌ worker ๋จธ์‹ ์œผ๋กœ ๊ตฌ์„ฑ๋จ. ๊ทธ๋ฆฌ๊ณ  ๊ฐ ๋จธ์‹ ๋“ค์€ VM ์ธ์Šคํ„ด์Šค๋กœ ๊ตฌํ˜„๋˜์–ด์•ผํ•จ
-> GKE ํด๋Ÿฌ์Šคํ„ฐ๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ์ž๋™์œผ๋กœ ํ•ด๋‹น ์ž‘์—…์ด ์™„๋ฃŒ๋จ.