-
Notifications
You must be signed in to change notification settings - Fork 4
๐ฌDocker, Container, k8s ์์๋ณด๊ธฐ
Changhyun-Hong edited this page Dec 5, 2024
·
2 revisions
๋์ปค๋ "app์ packaging ํ ์ ์๋ ํด" ์ด๋ค.
-
์ด๋ฏธ์ง: ์ ํ๋ฆฌ์ผ์ด์
๊ณผ ๋ชจ๋ ์์กด์ฑ์ ํฌํจํ ์ฝ๊ธฐ ์ ์ฉ ํ
ํ๋ฆฟ์
๋๋ค.
Dockerfile์ ํตํด ์ด๋ฏธ์ง๋ฅผ ์ ์ํ๊ณ , ์ด๋ฅผ ๋ฐํ์ผ๋ก ์ปจํ ์ด๋๋ฅผ ์์ฑํฉ๋๋ค. - ์ปจํ ์ด๋: ์ด๋ฏธ์ง๋ฅผ ์คํํ ์ธ์คํด์ค์ ๋๋ค. ๊ฐ ์ปจํ ์ด๋๋ ๋ ๋ฆฝ๋ ํ๊ฒฝ์์ ์๋ํ๋ฉฐ, ์๋ก ๊ฒฉ๋ฆฌ๋ ์ํ๋ก ์คํ๋ฉ๋๋ค.
- Dockerfile: ์ด๋ฏธ์ง ์์ฑ์ ์ํ ์ค์ ํ์ผ๋ก, ์ค์นํ ํจํค์ง๋ ์ ํ๋ฆฌ์ผ์ด์ ์ค์ ๋ฑ์ ์ ์ํฉ๋๋ค.
[Docker] 2. ๋์ปค์ ๋์ ์๋ฆฌ & ๋์ปค์ ํ๋ธ, ์ด๋ฏธ์ง
[์๋ฆฌ ๊ณต๋ถ] Docker๋? ๋์ปค ๋์ ์๋ฆฌ, ๋์ปค ๊ฐ๋
๋์ปค ํ๋ธ๋ ๊ณต์์ ์ผ๋ก ์ด์๋๋ ๋์ปค ๋ ์ง์คํ ๋ฆฌ(๋์ปค ์ด๋ฏธ์ง๋ฅผ ๋ฐฐํฌํ๋ ์๋น์ค)์ ์ด๋ฆ์ผ๋ก,ย ๊ณต๊ฐ๋ ์ปจํ ์ด๋์ ์ด๋ฏธ์ง๊ฐ ๋ชจ์ฌ์๋ ๊ณณ์ด๋ค.
๋์ปค ํ๋ธ๋ ์ค๋งํธํฐ์ ์ฑ์คํ ์ด์ ๊ฐ์ ์กด์ฌ๋กย ๋ค์ํ ๊ณต๊ฐ ์ปจํ ์ด๋ ์ด๋ฏธ์ง๊ฐ ์ ๊ณต๋๋ค.
๋๊ตฌ๋ ์ง ์ด๋ฏธ์ง๋ฅผ ๋ฑ๋กํ๊ณ ๊ณต๊ฐํ๋ ๋ฑ ํธ๋ฆฌํ๊ฒ ์ด์ฉํ ์ ์๊ณ , ์ด๋ฏธ์ง์ ์ข ๋ฅ๋ ๋ค์ํ๋ค.

์ปค๋์์ ์ ๊ณตํ๋ ๊ธฐ๋ฅ์ธ Cgroup๊ณผ Namespace๋ฅผ ์ ํ์ฉํ์ฌ ๋ง๋ ๊ธฐ์

- ์ด๋ฏธ ์๋ ๊ธฐ์
- ์ปจํ ์ด๋ ๊ธฐ์ ์ ์์ ํ ์๋ก์ด ๊ฐ๋ ์ด ์๋๋ผ, ์ค๋ ๊ธฐ๊ฐ ์กด์ฌํด์๋ ์์คํ ๊ฒฉ๋ฆฌ ๊ธฐ์ ์์ ๋ฐ์ ํ ๊ฒ
- ๋ํ์ ์ธ ๊ฒฉ๋ฆฌ ๊ธฐ์ ์ธ
Cgroups๊ณผNamespaces๊ฐ ๋ฆฌ๋ ์ค ์ปค๋์์ ์ค๋์ ๋ถํฐ ์ง์๋์๊ณ , Docker ๊ฐ์ ๋๊ตฌ๋ค์ด ์ด๋ฅผ ํ๋์ ์ธ ์ ํ๋ฆฌ์ผ์ด์ ๊ฐ๋ฐ๊ณผ ๋ฐฐํฌ์ ์ฝ๊ฒ ์ ์ฉํ ์ ์๊ฒ ํจ
- ํ๋์ ์๋ฒ์ ํ๋์ ์ํํธ์จ์ด๊ฐ ์คํ๋๋ ๊ฒ์ด ์์ ํ๊ณ ์ผ๋ฐ์
- ์๋ฒ(32๊ธฐ๊ฐ ~ 256๊ธฐ๊ฐ)์ ํ๋์ ์๋น์ค(2๊ธฐ๊ฐ ~ 4๊ธฐ๊ฐ)๊ฐ ์ฌ์ฉ๋๋ ๊ฒ์ ๋งค์ฐ ๋นํจ์จ์
- ๋นํจ์จ์ ์ธ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด ๊ฐ์ํ๊ธฐ์ ๋์
- ์ด๊ธฐ์๋ ํ์ดํผ๋ฐ์ด์ ๊ธฐ๋ฐ์ ๊ฐ์ ๋จธ์ (VM) ๊ธฐ์ ์ด ๋์ ๋จ
- ์ดํ ์ปจํ ์ด๋ํ ๊ธฐ์ ์ ๊ฐ์ ๋จธ์ ๋ณด๋ค ๋ ๊ฐ๋ฒผ์ด ๊ฒฉ๋ฆฌ ๋ฐ ๊ฐ์ํ๋ฅผ ๊ฐ๋ฅํ๊ฒ ํ์ฌ ๋น ๋ฅด๊ฒ ์๋ฆฌ๋ฅผ ์ก์ (= ์ปจํ ์ด๋)

- ์ปจํ ์ด๋๋ ๊ฐ์ ์ด์์ฒด์ ์ปค๋์ ๊ณต์ ํ๋ฉด์ ๋ ๋ฆฝ์ ์ธ ํ๊ฒฝ์ ์ ๊ณตํฉ๋๋ค. ๊ฐ ์ปจํ ์ด๋๋ ์ ํ๋ฆฌ์ผ์ด์ ๊ณผ ํ์ํ ์์กด์ฑ์ ํฌํจํ์ฌ ํธ์คํธ OS์ ์ปค๋ ์์์ ์คํ๋ฉ๋๋ค.
- ๊ฐ์ ๋จธ์ ์ ํ์ดํผ๋ฐ์ด์ ๋ฅผ ํตํด ํธ์คํธ ์์คํ ์์ ์ฌ๋ฌ ๊ฐ์ ๊ฒ์คํธ OS๋ฅผ ๊ฐ๊ฐ ์คํํฉ๋๋ค. ์ด๋ก ์ธํด ๋ ๋ง์ ๋ฆฌ์์ค๋ฅผ ์ฌ์ฉํ๋ฉฐ, ๋ถํ ์๊ฐ๋ ์ปจํ ์ด๋๋ณด๋ค ๋๋ฆฝ๋๋ค.
- Docker๋ ๊ฐ์ฅ ๋๋ฆฌ ์ฌ์ฉ๋๋ ์ปจํ ์ด๋ํ ๋๊ตฌ๋ก, ์ ํ๋ฆฌ์ผ์ด์ ์ ํจํค์งํ๊ณ ๋ฐฐํฌํ ์ ์๋๋ก ํด ์ค
- Docker๋ ์ปจํ ์ด๋ ์ด๋ฏธ์ง๋ฅผ ๋ง๋ค๊ณ , ํด๋น ์ด๋ฏธ์ง๋ฅผ ์ปจํ ์ด๋๋ก ์คํํ ์ ์๊ฒ ํด์ฃผ๋ฉฐ, ์ด ๊ณผ์ ์ ๊ฐ๋จํ๊ฒ ์๋ํํ ์ ์๋ ๋ค์ํ ๋๊ตฌ์ ๋ช ๋ น์ด๋ฅผ ์ ๊ณต


- ๋ก์ปฌ์์ ์ฝ๋๋ฅผ ์์ ํ ํ GitHub ์ ์ฅ์์ ํน์ ๋ธ๋์น(์:
main)๋ก ํธ์ - ํธ์๊ฐ ์๋ฃ๋๋ฉด GitHub Actions๊ฐ ์๋์ผ๋ก ํด๋น ํธ์ ์ด๋ฒคํธ๋ฅผ ํธ๋ฆฌ๊ฑฐํ๊ณ ,
.github/workflows/deploy.ymlํ์ผ์์ ์ ์ํ ์ํฌํ๋ก์ฐ๊ฐ ์คํ
-
deploy.yml์ ์ ์๋ ์ํฌํ๋ก์ฐ๋ ํธ์ ์ด๋ฒคํธ๋ฅผ ๊ฐ์งํ๊ณ , ์ ์ฒด ๋ฐฐํฌ ํ์ดํ๋ผ์ธ์ ์คํ
-
actions/checkout@v3์ก์ ์ ์ฌ์ฉํด ์ต์ ์ปค๋ฐ ์ํ์ ์ฝ๋๋ฅผ ๊ฐ์ ธ์ด - ์ด ๋จ๊ณ์์ ํ์ฌ GitHub ๋ฆฌํฌ์งํ ๋ฆฌ์ ์ฝ๋๊ฐ GitHub Actions ์ํฌํ๋ก์ฐ ๋ด์ ๋ก๋๋จ
-
Dockerfile์ ์ ์๋ ์ค์ ์ ๋ฐ๋ผ ์ ํ๋ฆฌ์ผ์ด์ ์ Docker ์ด๋ฏธ์ง๋ฅผ ๋น๋ - ์ด ๋จ๊ณ์์๋ ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ชจ๋ ์์กด์ฑ๊ณผ ํ๊ฒฝ ์ค์ ์ด Docker ์ด๋ฏธ์ง์ ํฌํจ๋จ
-
docker-compose.yml์ด ์๋๋ผ๋ CI/CD์์๋ ๋ณดํต ์๋น์ค๋ณ๋ก ์ด๋ฏธ์ง๋ฅผ ๊ฐ๋ณ์ ์ผ๋ก ๋น๋ํจ
- Docker ์ด๋ฏธ์ง๋ฅผ ๋น๋ํ ํ, ํด๋น ์ด๋ฏธ์ง๋ฅผ Docker Hub ๋๋ AWS ECR, GCP GCR๊ณผ ๊ฐ์ ์ปจํ ์ด๋ ๋ ์ง์คํธ๋ฆฌ๋ก ํธ์
- Kubernetes ํด๋ฌ์คํฐ์ ์ ์ด๋ฏธ์ง๋ฅผ ์ฌ์ฉํ์ฌ ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ฐฐํฌ
- Kubernetes์
kubectl๋ช ๋ น์ด ๋๋ GitHub Actions์ Kubernetes ๊ด๋ จ ํ๋ฌ๊ทธ์ธ์ ์ฌ์ฉํด ๋ฐฐํฌ๊ฐ ๊ฐ๋ฅ - ์ด ๋จ๊ณ์์๋ ๋ฐฐํฌ๋ฅผ ์ํด
kubectl apply๋ช ๋ น์ด๋ฅผ ์ฌ์ฉํ์ฌDeployment๋ฆฌ์์ค๊ฐ ์ ์ด๋ฏธ์ง๋ฅผ ์ฐธ์กฐํ๋๋ก ์ ๋ฐ์ดํธ
- Kubernetes์ ๋กค๋ง ์ ๋ฐ์ดํธ ๋ฐฉ์์ ํตํด Pod๋ฅผ ํ๋์ฉ ๊ต์ฒดํ๋ฉด์ ์ ๋ฒ์ ์ผ๋ก ์ ํ
- Kubernetes๋ ์ ์ด๋ฏธ์ง๋ก ๊ต์ฒด๋ Pod์ ์ํ๋ฅผ ๋ชจ๋ํฐ๋งํ๋ฉฐ, ๋ฌธ์ ๊ฐ ๋ฐ์ํ ๊ฒฝ์ฐ ๋กค๋ฐฑ
- ์ด ๊ณผ์ ์ ํตํด ๋ฌด์ค๋จ ๋ฐฐํฌ๊ฐ ๊ฐ๋ฅํ๋ฉฐ, ์ฌ์ดํธ๋ ์ต์ ๋ฒ์ ์ ์ ํ๋ฆฌ์ผ์ด์ ์ผ๋ก ์์ ํ๊ฒ ์ ๋ฐ์ดํธ
- ๐ ์น ์์ผ์ ์ค์๊ฐ ์๋ฐฉํฅ ํต์ (feat. WS vs Socket.io)
- ๐คธโโ๏ธ ๋น์ ์ด ์ปดํฌ๋ํธ๋ก ๋ ๋๋ง ์ต์ ํ ํ๊ธฐ
- ๐ทโโ๏ธ Shared Worker๋ก ํด๋ผ์ด์ธํธ์ ์์ผ ํต์ ๊ฐ์ ํ๊ธฐ
- ๐จโ๐ฉโ๐งโ๐ฆ ๋ค์ค ํญ์์ ํ๋์ ์์ผ์ ๊ณต์ ํ ์ ์์๊น?
- ๐ [Socket.io] ํด๋ผ์ด์ธํธ์ ์ค์๊ฐ ์ฑํ ๊ตฌํ๊ธฐ
- ๐ฌ ์๋ฒ๋ฅผ docker swarm ์ผ๋ก ๊ด๋ฆฌํด๋ณด์
- ๐ฌ ์ปจํ ์ด๋๋ผ๋ฆฌ env ๊ณต์ ํ๊ธฐ
- ํ์ฅ์ฑ์ ๊ณ ๋ คํ ์๋ฒ ์ค๊ณ
- ncp ์๋ฒ ์ ํ
- ์ฑํ ์๋ฒ์ Redis ๋ฅผ ์ด ์ด์
- โ NestJS๋ฅผ ํตํ ์ผ๊ด์ ์ธ ์์คํ ์ค๊ณ
โ๏ธ ์ธ๋ถ์ ์ฌ์ฉ์๊ฐ Object Storage์ ์ ๊ทผํ์ง ๋ชปํ๋ ๊ถํ ์ ์ด- ๐ฆข nestjs์์ swagger ์ฌ์ฉํด๋ณด๊ธฐ
- ๐ NestJS Nginx Request Data Size ๋ฌธ์
- ๐ ๋ค์๋ณด๊ธฐ๋ฅผ ์ํ NodeโMediaโServer, FFMpeg ๋ถ์
- ๐ฆ ํจํค์ง ๋งค๋์ ๋ฐ ๋ชจ๋ ธ๋ ํฌ ์ ํ๊ธฐ
- ๐ฐ ์ปค์คํ ESLint ๋ง๋ค๊ธฐ
- ๐คบ ์ปค์คํ react ์ค๋ํซ ๋ง๋ค๊ธฐ
- ๐ธ ๋ฐ์ํ ๋น๋์ค ํ๋ ์ด์ด ๊ตฌํ: ํจ๋ฉ ํ ๊ธฐ๋ฒ
- ๋ฆฌ์กํธ ํ ํผ ๋ฅ๋ค์ด๋ธ