공개 : 저는 Kubernetes의 수석 엔지니어입니다.
Mesos와 Kubernetes는 주로 클러스터 된 애플리케이션을 실행하는 유사한 문제를 해결하는 것을 목표로하고 있으며 문제 해결에 대한 다른 기록과 접근 방식을 가지고 있다고 생각합니다.
Mesos는 매우 일반적인 스케줄링에 에너지를 집중하고 여러 다른 스케줄러를 연결합니다. 즉, Hadoop 및 Marathon과 같은 시스템이 동일한 스케줄링 환경에서 공존 할 수 있습니다. Mesos는 컨테이너 실행에 덜 집중합니다. Mesos는 컨테이너에 대한 광범위한 관심 이전에 존재했으며 컨테이너를 지원하기 위해 부분적으로 리팩토링되었습니다.
대조적으로 Kubernetes는 처음부터 컨테이너에서 분산 애플리케이션을 빌드하기위한 환경으로 설계되었습니다. 여기에는 복제 및 서비스 검색을위한 기본 요소가 핵심 기본 요소로 포함되며, 이러한 요소는 Mesos의 프레임 워크를 통해 추가됩니다. Kubernetes의 기본 목표는 분산 시스템을 구축, 실행 및 관리하기위한 시스템입니다.
Fleet은 하위 수준의 작업 배포자입니다. 예를 들어 CoreOS는 클러스터 시스템을 부트 스트랩하는 데 유용합니다. 동일한 분산 응용 프로그램 개발 문제를 해결하기위한 것이 아니라 클러스터의 systemd / init.d / upstart와 비슷하다고 생각하면됩니다. kubernetes를 실행하는 경우에는 필요하지 않으며 다른 도구 (예 : Salt, Puppet, Ansible, Chef, ...)를 사용하여 동일한 바이너리 배포를 수행 할 수 있습니다.
Swarm은 Docker가 기존 Docker API를 확장하여 머신 클러스터를 단일 Docker API처럼 보이게 만들기위한 노력입니다. 근본적으로 Google 및 다른 곳에서의 경험은 노드 API가 클러스터 API에 충분하지 않음을 나타냅니다. 여기에서 많은 토론을 볼 수 있습니다 : https://github.com/docker/docker/pull/8859 및 여기 : https://github.com/docker/docker/issues/8781
도움이 되었기를 바랍니다. 더 이야기하고 싶다면 IRC @ # google-containers에 가입하세요.