사용자 수가 늘어나고 컨테이너가 로드를 처리할 수 없을 지경이 되면?
-> docker run 명령어를 여러 번 입력해 애플리케이션의 추가 인스턴스 필요
컨테이너가 실패하면 재실행해야하니까 애플리케이션의 상태 감시 필요
docker 호스트의 상태도 감시 필요
컨테이너를 구성할 수 있는 여러 개의 도커 호스트에 생성
사용자가 늘어남에 따라 자동으로 인스턴스 수를 늘림
수요가 감소하면 인스턴스 줄임
사용자 로드 지원을 위해 자동으로 추가 호스트 생성
클러스터링, 스케일링에 국한되지 않음
컨테이너간의 향상된 네트워킹, 사용자 요청 로드 밸런싱 스토리지 공유 자원, 내부 구성 관리 및 보안
설정과 시작이 쉬움
복잡한 프로덕션 애플리케이션에 필요한 고급 오토 스케일링 기능 부족
가장 많이 쓰임
설정과 시작은 어렵지만 다양한 사용자 정의 배포 옵션 제공
설정과 시작이 어렵지만 여러 가지 고급 기능 지원
여러 도커 머신을 단일 클러스토러 결합 가능
높은 가용성, 로드 밸런싱
도커가 설치된 여러 호스트 필요
하나의 호스트를 manager로 지정하고 나머지는 worker가 됨
도커 호스트를 사용해 도커 컨테이너 형태로 애플리케이션 호스팅
k8s 클러스터는 노드의 집합으로 구성
(노드는 쿠버네티스 소프트웨어 도구가 설치된 물리 혹은 가상 머신)
작업자(worker) 머신인 노드에 k8s가 컨테이너 실행
노드에 문제가 생기면 애플리케이션이 중단되니까 하나 이상의 노드 필요
클러스터는 그룹화된 노드의 집합이므로 한 노드에 문제가 생겨도 다른 노드를 통해 애플리케이션에 접근 가능
k8s 컨트롤 플레인 컴포넌트가 설치된 노드(master)가 클러스터 관리
클러스터 내부의 노드를 감시하고 worker의 오케스트레이션 감시