컨테이너를 쉽고 빠르게 배포/확장하고 관리를 자동화해주는 오픈소스 플랫폼
Kubernetes = 컨테이너 오케스트레이션
컨테이너 오케스트레션이란❓
컨테이너를 도커 플랫폼에 올려서 관리, 운영, 클러스터 서비스 지원
여러 대의 컨테이너들을 지휘(관리)
컨테이너의 배포, 관리, 확장, 네트워킹을 자동화하는 것
준비 환경 : OS(ex. 리눅스), 컨테이너 플랫폼(ex. 도커)
1️⃣ 컨테이너 생성
2️⃣ 컨테이너 저장소에 저장
3️⃣ 컨테이너 다운로드
4️⃣ 컨테이너 실행
1. 컨테이너 생성
node.js 위에서 app.js 를 돌릴 수 있음
Dockerfile
FROM node:12
COPY app.js /app.js
ENTRYPOINT ["node", "app.js"]
=> 미리 노드 12 환경 생성 -> app.js 를 올린 것
2. 그렇다면 이 컨테이너를 어떻게 동작하지?
컨테이너 플랫폼을 구성하면 됨컨테이너 빌드/실행
1. 컨테이너build-> 하드디스크에 생성
2. docker hubpush도커 레포지토리로 푸쉬
3. dockerpull-> 하드디스크에 다운로드
4.docker create --name app -p 80:8080 smlinux/nodeinfo:v1-> 80 포트로 들어오면 8080으로 forwarding
5.docker start-> 컨테이너 동작
가상머신

컨테이너
1️⃣ nginx 웹 서버 100mb 어플리케이션이 돌아가고 있으면, os 1~3gb 필요
가상머신을 복제해야함
👉🏻 컨테이너는 웹서버 + 웹 콘텐츠만 있어서 100mb 만 복제하면 되기때문에
컨테이너가 훨씬 가볍고, 빠르게 축소 확장 가능
주목적 : 배포(deploy)
2️⃣ 도커 플랫폼이 다운되어버리면?
docker를 여러대 실행 필요 => but, 여러대의 컨테이너를 많이 어려움!
=> 멀티호스트 도커 플랫폼
오케스트레이션


kubernetes.io
CNCF(Clout Native Computing Foundation)
msa라면 서비스 별로 컨테이너를 구분함
서비스 별로 동시 배포가 되어야 함
핵심 컨테이너가 죽으면 빠르게 재시작 필요 -> k8s가 알아서 살려냄!