[따배쿠] 1. Kubernetes 소개
( 참고 : 따배쿠 https://www.youtube.com/watch?v=6n5obRKsCRQ&list=PLApuRlvrZKohaBHvXAOhUD-RxD0uQ3z0c )
Contents
- Container & Docker
- VM & Container
- Container 동작 구조
- Orchestration (오케스트레이션)
- kubernetes.io
1. Container & Docker
도커 파일 복습
FROM node:12
COPY app.js /app.js
ENTRYPOINT ["node","app.js"]
위와같이, 도커 파일로 도커 이미지를 만든 뒤 컨테이너를 실행할 수 있다
Docker container 실행 과정 간단 요약
-
(추천 : Linux 운영체제 위에) docker 설치
-
(docker hub 혹은 private registry에서/로부터) docker image push & pull
docker pull smlinux/nodeinfo:v1 docker create --name app -p 80:8080 smlinux/nodeinfo:v1 docker start app
2. VM & Container
Container의 주 목적 : DEPLOY(배포)
( https://seunghan96.github.io/docker/%EC%95%8C%EB%8F%84%EC%BB%A41/ 참고하기 )
3. Container 동작 구조
docker 플랫폼 위에..
- web 서버
- python 기반 서비스
- node js 기반 서비스
등등을 올려놓았다. 그런데 만약 시스템이 다운된다면…
멀티 호스트 도커 플랫폼을 만들어주자!
- 분산되게 운영해주자! ( 어느 하나 고장날 수도 있으니 )
그런데, 어떠한 컨테이너를 어떠한 호스트에..?
일일히 관리해야하나?ㅠㅠㅠ
$\rightarrow$ NO! use Orchestration
4. Orchestration (오케스트레이션)
컨테이너 오케스트레이션
= 애플리케이션들을 가장 적합하게 호스트에 잘 배치시켜주기!
지휘자(=control plane)가 어떻게하면 애플리케이션을 잘 배치하는지 컨트롤한다!
- 특정 worker node 다운 시, 다른 쪽으로 옮겨주고 등등…
- 워커노드 총괄관리!
이에 가장 대표적인 것이 바로 KUBERNETES 이다
5. Kubernetes.io
Kubernetes ( 그리스어 : 조타수 )
- 컨테이너화된 애플리케이션을 자동으로 배포하고, 스케일링하고, 관리해줌
- 특징
- 워크로드를 분리시켜준다
- 어디서나 실행 가능하다 ( On-premise, Public Cloud 등 )
- 선언적 API :
- control plane에게 “나 웹서버 3개 실행해줘”로 요청(선언)
- 이거만으로 끝! 나머지는 kubernetes가 알아서 판단해서 worker node들에 적절히 배치한다 ( + 오류난 것 / 재배치 등 모두 알아서 해줌 )
Kubernetes.io
-
쿠버네티스의 공식 webpage
-
Kubernetes = K8s
( K와 s 사이에 8개의 글자)