Docker Container ๊ด๋ฆฌ์ ์ค์ํ K8s ์์๋ณด๊ธฐ - TIL230616
๐ KDT WEEK 11 DAY 5 TIL
- Docker๋ฅผ ์ฌ์ฉํ๋ ์ด์ - ์๋ฒ ๊ด๋ฆฌ์ ์ด๋ ค์
- Docker Container๋ฅผ ๊ด๋ฆฌํ๋ ๋ฐฉ๋ฒ - Container Orchestration
- K8s
๐ฅ ์๋ฒ ๊ด๋ฆฌ์ ์ด๋ ค์
์๋ฒ์ ์๊ฐ ๋ง์์ง๊ณ ๋ค์ํ ๋ฌธ์ ๊ฐ ๋ฐ์ํ์ ๋ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๋ ๋ฐฉ๋ฒ
1. Infrastructure As Code
๋ํํ ๋ช ๋ น์ด ์๋ ์๋ํ๋ ์คํฌ๋ฆฝํธ๋ก ํด๊ฒฐํ๊ณ ๋ค์์ ์๋ฒ์ ๋ช ๋ น์ ๋์ ์คํ
- DevOps ์์ง๋์ด๊ฐ ๊ผญ ์์์ผํ๋ ๊ธฐ์ ์ค ํ๋
- ํ์ง๋ง ๋ฐฐ์ฐ๊ธฐ ์ด๋ ต๊ณ , ์ํํธ์จ์ด ์ถฉ๋ ๋ฌธ์ ์๋ ํฌ๊ฒ ๋์์ด ๋์ง ์๋๋ค.
ex. Chef, Puppet, Ansible, Terraform...
2. Virtual Machine
- ์ํํธ์จ์ด ์ถฉ๋ ํด๊ฒฐ์ ์ํด ํ ์๋ฒ์ ๋ค์์ VM์ ์ฌ๋ ค ์๋น์ค๋ณ๋ก ํ ๋นํ๋ค.
- ๋ฆฌ์์ค ์๋น๊ฐ ํฌ๊ณ ๋๋ฆฌ๋ฉฐ, ํน์ VM ๋ฒค๋ ํน์ ํด๋ผ์ฐ๋์๊ฒ ์ข ์๋์ด ๋ฒ๋ฆฐ๋ค. (Lock-in)
3. Docker
- ๋ชจ๋ ์ํํธ์จ์ด๋ฅผ Docker Image๋ก ๋ง๋ค๋ฉด ์ด๋์๊ฐ ๋์ํ๋ค.
- VM์ ๋นํด ๋ฆฌ์์ค ๋ญ๋น๋ ์ ๊ณ ์คํ์๊ฐ๋ ๋น ๋ฅด๋ค.
- ์คํ์์ค์ด๊ธฐ ๋๋ฌธ์ ํด๋ผ์ฐ๋๋ ํน์ ์ ์ฒด Lock-in ์ด์๊ฐ ์๋ค.
Docker๋ ์๋น์ค ๋ฐฐํฌ์ ๊ธฐ๋ณธ์ด ๋์ด Github์ ๋๋ถ๋ถ ๋น๋ ํ๋ก์ธ์ค๋ Docker image๋ฅผ ๋ง๋ค์ด Registry์ ๋ฑ๋กํ๋ค.
ํ์ง๋ง Docker Container์ ์๊ฐ ๋์ด๋๋ฉด ๊ด๋ฆฌ๊ฐ ์ด๋ ค์ด๊ฒ ๋จ์ ์ด๋ค.
> ์๋ฒ์ ์ ๋นํ ๋ถ๋ฐฐ, ๋ชจ๋ํฐ๋ง, ํน์ ์๋น์ค์ ์ปจํ ์ด๋ ์ ํ๋ ฅ์ ์ด์ ๋ฑ..
๐ฆ Container Orchestration
๋์ปค ์ด๋ฏธ์ง์ ๋ฐฐํฌ, ์ค์ผ์ผ๋ง, ๋คํธ์ํฌ ์์ฑ, ์ธ์ฌ์ดํธ ๋ฝ๊ธฐ ๋ฑ Container์ ๊ด๋ฆฌํ๊ธฐ ์ํ ์๋น์ค
1. ์ํํธ์จ์ด ๋ฐฐํฌ
- ์๋น์ค ์ด๋ฏธ์ง๋ฅผ Container๋ก ๋ฐฐํฌ
- ์ด์์ด ๊ฐ์ง๋๋ฉด ์ด์ ์์ ๋ฒ์ ์ผ๋ก ๋กค๋ฐฑํ๋ค.
- Container์ ์๊ฐ ๋ง์์๋ก ํฐ ์ด์๊ฐ ๋จ
2. ์ค์ผ์ผ๋ง
- ํน์ ์๋น์ค์ Container ์๋ฅผ ์ฝ๊ฒ ๋๋ฆฌ๊ณ ์ค์ธ๋ค.
- ์๋ฒ์ utilization์ ๊ณ ๋ คํ๋ค. (๊ฐ ์๋ฒ์ ๊ฐ๋๋ฅ ์ด ๋น์ทํ๋๋ก ์ปจํ ์ด๋ ๋ถ๋ฐฐ)
3. ๋คํธ์ํฌ
- ์๋น์ค๊ฐ ๋ค์์ ์ปจํ ์ด๋๋ก ๋๋ ์ง๋ฉด์ ์ด๋ค์ ๋ํํ๋ Load Balancer๋ฅผ ๋ง๋ค์ด์ฃผ์ด์ผํจ
- ์๋น์ค๋ค๊ฐ์ ์๋ก๋ฅผ ์ฝ๊ฒ ์ฐพ์ ์ ์์ด์ผํจ > ์๋น์ค ๋์ค์ปค๋ฒ๋ฆฌ
4. ์ธ์ฌ์ดํธ
- ์ปจํ ์ด๋ ๋ฌธ์ ์ ํด๊ฒฐ > ์ด๋ค ์๋ฒ์ ์ปจํ ์ด๋๊ฐ ๋ค์ด๋๋ฉด ๋ค๋ฅธ ์๋ฒ์ ์ฌ๊ฐ๋
- ์ ์ฒด ์๋น์ค์ ๋ถ์ > ์๊ฐํ ๋ฐ ๋ฌธ์ ๋ถ์, Logging ๋ฑ
ex) K8s, Mesos, Matathon, DEIS, Rancher...
๐ฉ K8s (Kubernetes)
์ปจํ ์ด๋ ๊ธฐ๋ฐ ์๋น์ค ๋ฐฐํฌ/์ค์ผ์ผ/๊ด๋ฆฌ ์๋ํ๋ฅผ ํด์ฃผ๋ ์คํ์์ค ํ๋ ์์
๊ฐ์ฅ ๋ง์ด ์ฌ์ฉ๋๋ ์ปจํ ์ด๋ ๊ด๋ฆฌ(Orchestration) ์์คํ
K8s ์ํคํ ์ฒ

Pod
K8s์ฌ์ฉ์๊ฐ ์ฌ์ฉํ๋ ๊ฐ์ฅ ์์ ๋น๋ฉ ๋ธ๋ก
K8s ์ฌ์ฉ์ ์ปจํ ์ด๋๋ฅผ ๋ฐ๋ก ๋ค๋ฃจ๋๊ฒ ์๋๋ผ Pod๋ฅผ ์ฌ์ฉํจ
- 1 Pod = ๋ณดํต์ ํ๋์ container๋ก ๊ตฌ์ฑ
- ํ๋๋ณด๋ค ๋ง์ ๊ฒฝ์ฐ์๋ helper container๊ฐ ๋ณดํต ๊ฐ์ด ์ฌ์ฉ๋จ
- ๊ฐ์ Pod ์์์๋ ๋์คํฌ์ ๋คํธ์ํฌ๊ฐ ๊ณต์
- Fail-over๋ฅผ ์ํด ๋ณต์ ๋ณธ์ ์ง์ ํ๋ ๊ฒ์ด ์ผ๋ฐ์ ์ด๋ค.
- Pod๋ ๋คํธ์ํฌ ์ฃผ์๋ฅผ ๊ฐ๋ self-container server์ด๋ค.
ex) kubectl run nginx --image nginx
nginx ์ด๋ฏธ์ง ๊ธฐ๋ฐ์ผ๋ก ์ปจํ ์ด๋๋ฅผ ์์ฑํ๊ณ , nginx ์ด๋ฆ์ Pod๋ก ๋๋ฌ์ธ๋ ๋ช ๋ น์ด.
์์ง ์์ฑ์ค..!
์ฝ์ด๋ณด๋ฉด ์ข์ Docker์ Airflow์ ๋ํ ์ฌ๋ก
์์นด Airflow https://tech.socarcorp.kr/data/2021/06/01/data-engineering-with-airflow.html
์์นด ๋ฐ์ดํฐ ๊ทธ๋ฃน - Airflow์ ํจ๊ปํ ๋ฐ์ดํฐ ํ๊ฒฝ ๊ตฌ์ถ๊ธฐ(feat. Airflow on Kubernetes)
์ง๋ 3๋ ๊ฐ Airflow ๊ตฌ์ถ ๋ฐ ์ด์๊ธฐ๋ก
tech.socarcorp.kr
๋ฒํทํ๋ ์ด์ค Airflow https://www.bucketplace.com/post/2021-04-13-%EB%B2%84%ED%82%B7%ED%94%8C%EB%A0%88%EC%9D%B4%EC%8A%A4-airflow-%EB%8F%84%EC%9E%85%EA%B8%B0/
๋ฒํทํ๋ ์ด์ค Airflow ๋์ ๊ธฐ - ์ค๋์์ง ๋ธ๋ก๊ทธ
ํ์ํ ๋ฐ์ดํฐํ๋ซํผ์ ์ํ Airflow ๋์ ๊ธฐ
www.bucketplace.com