- 운영 환경은 고가용성을 필요하기 때문에 오케스트레이션 도구를 사용
- 오케스트레이션 도구란
- 기본적으로 클러스터를 구성하는 여러 대의 호스트 컴퓨터를 의미
- 오케스트레이션 도구는
- 컨테이너를 관리
- 서비스를 제공하기 위한 작업을 여러 컴퓨터에 분배
- 네트워크 트래픽 부하를 고르게 분산
- 상태가 불량한 컨테이너를 새 컨테이너로 교체
- 여러 대의 호스트에 도커를 설치해 클러스터를 만들고 나면, 이들 컴퓨터를 오케스트레이션 플랫폼(스웜이나 쿠버네티스)에 등록한다.
- 그다음부터는 명령행 도구나 웹 UI를 통해 원격에서 클러스터를 관리할 수 있다.
오케스트레이션이 적용된 인프라스트럭처
- 오케스트레이션 도구에는 컨테이너의 잠재력을 한층 더 살릴 수 있는 기능이 있다.
- 클러스터의 신뢰성을 확보하는 기본적인 수단
- 클러스터에 배포된 애플리케이션에 대한 모든 정보가 담긴 분산 데이터베이스
- 어떤 컨테이너를 어떤 호스트에서 실행할지 배정하는 스케줄러
- 클러스터를 구성하는 호스트 간에 주기적으로 연락 신호를 주고받는 시스템
- 클러스터에 애플리케이션을 배포하려면 클러스터에 원하는 애플리케이션의 상태를 작성한 YAML 파일을 전달하면 된다.
- 그러면 클러스터가 그에 맞춰 동원 가능한 서버에서 컨테이너를 생성해 애플리케이션을 실행하고 유지되도록 관리한다.
- 게다가 오케스트레이션 도구는 네트워크 관련 기능, 애플리케이션 설정 기능, 데이터 저장 기능도 제공한다.
클러스터 내의 트래픽 라우팅, 비밀값에 저장된 애플리케이션 설정, 공유 스토리지를 나타낸 것
- 그림 12-2를 잘 보면 서버가 나타나 있지 않다.
- 오케스트레이션 도구가 각 서버, 네트워크, 스토리지 장치의 세부 사항을 가려 주기 때문이다.
- 우리는 클러스터가 마치 하나의 대상인 것처럼 명령행 도구와 API를 통해 명령을 보내고 쿼리를 요청해 사용한다.
- 오케스트레이션 계층이 컨테이너까지 이어지는 트래픽 라우팅을 담당한다