Docker 컨테이너가있는 DC / OS의 Marathon 대 Kubernetes 대 Docker Swarm


101

DC / OS에서 Docker 컨테이너를 실행할 때 Marathon 및 Chronos, Docker Swarm 또는 Kubernetes를 사용할지 여부에 대한 장단점을 찾고 있습니다.

예를 들어 Kubernetes보다 Marathon / Chronos를 사용하는 것이 언제 더 좋을까요?

지금은 대부분 실험 중이지만 여름이 지나면 이러한 서비스 중 하나를 프로덕션에 사용하기 시작할 것입니다. 그때까지 프로덕션 준비가 될지 확실하지 않기 때문에 Docker Swarm을 실격시킬 수 있습니다.

Docker Swarm에 대해 제가 좋아하는 점은 기본적으로 "Docker 명령"일 뿐이며 완전히 새로운 것을 배울 필요가 없다는 것입니다. 우리는 이미 사용 docker-compose하고 있으며 Docker Swarm (적어도 이론 상으로는)과 함께 즉시 작동하므로 큰 장점이 될 것입니다. Docker Swarm에 대한 저의 주요 관심사는 프로덕션에서 시스템을 실행하는 데 필요한 모든 사용 사례를 포함하는지 여부입니다.

답변:


167

Mesos에서 각 컨테이너 오케스트레이션 프레임 워크의 고유 한 측면을 분석하려고합니다.

다음과 같은 경우 Docker Swarm을 사용 합니다.

다음 과 같은 경우 Kubernetes-Mesos를 사용하십시오 .

  • 리소스를 공유하면서 함께 예약되고 함께 배치 된 컨테이너 그룹 인 K8s 포드를 시작하려고합니다.
  • 상위 컨테이너 옆에있는 하나 이상의 보조 컨테이너 (예 : 로그 아카이버, 메트릭 모니터)와 함께 서비스를 시작하려고합니다.
  • K8s 레이블 기반 서비스 검색,로드 밸런싱 및 복제 제어를 사용하려고합니다.
  • http://kubernetesio.blogspot.com/2015/04/kubernetes-and-mesosphere-dcos.html 참조

다음과 같은 경우 마라톤을 사용하십시오 .

  • Docker 또는 비 Docker 장기 실행 앱 / 서비스를 시작하려고합니다.
  • 제약 기반 스케줄링에 Mesos 속성을 사용하려고합니다.
  • 애플리케이션 그룹 및 종속성을 사용하여 관련 서비스를 시작, 확장 또는 업그레이드하려고합니다.
  • 상태 확인을 사용하여 비정상 서비스를 자동으로 다시 시작하거나 비정상 배포 / 업그레이드를 롤백하려고합니다.
  • 서비스 검색을 위해 HAProxy 또는 Consul을 통합하려고합니다.
  • 웹 UI 또는 REST API를 통해 앱을 시작하고 모니터링하려고합니다.
  • Mesos를 염두에두고 처음부터 구축 된 프레임 워크를 사용하고 싶습니다.

다음과 같은 경우 Chronos를 사용 합니다.

  • 종료 될 것으로 예상되는 Docker 또는 비 Docker 작업을 시작하려고합니다.
  • 특정 시간 / 스케줄 (a la cron) 에 실행되도록 작업을 예약하려고합니다 .
  • 종속 작업의 DAG 워크 플로를 예약하려고합니다.
  • 웹 UI 또는 REST API를 통해 작업을 시작하고 모니터링하려고합니다.
  • Mesos를 염두에두고 처음부터 구축 된 프레임 워크를 사용하고 싶습니다.

1
나는 K8s 1.6부터 다음을 지원하기 위해 추가하고 싶었습니다 (일부는 오랫동안). * 컨테이너가 시작되었거나 더 이상 응답하지 않는시기를 확인하기위한 상태 확인. * 건강에 해로운 꼬투리의 재생. * 직업과 같은 크론, 반복 및 한 번. * 일괄 작업 (수동으로 시작되고 한 번 완료 될 때까지 실행 됨). Mesosphere 자체 가 K8s가 Mesos의 일류 시민이라고 말하고 있기 때문에 "처음부터 구축"이라는 주장도 약간 혼란 스럽습니다.
Jonas Schubert Erlandsson

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.