1.1. 컨테이너란?
- node 12버전을 만들고 app.js를 넣은 구조
- 동작시키위해서는 플랫폼이 필요 (docker 등)
**#webserver 컨테이너 생성방법
docker build -t docker images
#push 방법
docker push
#docker pull
docker pull
#80로 들어오면 8080으로 포워딩
docker create --name app -p 80:8080
docker start app**
1.2. 가상머신 vs 컨테이너
가상머신
Hypervisor
가장 적당한 용량을 할당해서 사용
컨테이너
Host Operation
- linux 운영체제
- 각각의 기능들이 컨테이너로 동작
소스코드와 베이스 환경만 있어면 됨
실질적으로 100메가 사이즈
즉 컨테이너가 가상머신이 훨씬 가벼움
빠르게 확장, 배포, 축소 → 배포를 위함
만약 시스템 자체가 다운된다면?
→ 멀티호스트 도커 플랫폼
- 시스템이 다운되어도 다른쪽에서 운영할 수 있도록 지원
수많은 컨테이너를 어찌 관리하지?
→ 컨테이너 오케스트레이션
- 애플리케이션들을 웹서비스에 적합하게 배치하고 운영
- 지휘자 1개 여러개의 node구성 → control plane, worker node1, worker node2
ex) node1 다운시 애플리케이션 node2로 이동해서 실행
컨테이너 계층 구조
- layer 3 os위에 layer4 docker, docker를 관리하는 layer 5의 kubernetes
- 즉 kubernetes는 컨테이너 오케스트레이션
k8s 특징
- 워크로드 분리
- 어디서나 실행 - 온프레미스, 퍼블릭 클라우드(AKS, EKS, GKE 등)
- 선언적 API → devops 가능
선언적 API
- 쿠버야 나 웹서버 3개 실행해줘 → 요청 끝
- 나머지는 쿠버네스트가 알아서 판단해서 배치
- node2 다운시에도 모니터링하면서 정상적으로 실행할 수 있는곳에 개수 증가