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.