Docker-Swarm, Kubernetes, Mesos 및 Core-OS 함대
저는 이 모든 것에 대해 비교적 생소하지만, 나열된 기술 중에서 명확한 그림을 얻는 데 어려움을 겪고 있습니다.
하지만, 이 모든 것들은 다른 문제들을 해결하려고 노력하지만, 공통점도 있습니다.저는 공통적인 것과 다른 것이 무엇인지 알고 싶습니다.소수의 조합이 적합할 가능성이 높습니다. 그렇다면 어떤 조합입니까?
질문과 함께 몇 가지를 나열하고 있지만, 누군가가 모든 것을 자세히 나열하고 질문에 대답해 주시면 감사하겠습니다.
쿠베르네테스 vs 메소스:
이 링크
차이에 대한 좋은 통찰력을 제공하지만, 왜 쿠버네티스가 메소스 위에서 뛰어야 하는지 이해할 수 없습니다.두 개의 오픈 소스 솔루션을 결합하는 것이 더 중요합니까?
Kubernetes 대 Core-OS Flet:
쿠베르네테스를 사용할 경우, 비행기가 필요합니까?
도커-스웜은 위의 모든 것에 어떻게 적합합니까?
공개:저는 쿠버네티스의 수석 엔지니어입니다.
Mesos와 Kubernetes는 주로 클러스터된 애플리케이션을 실행하는 유사한 문제를 해결하는 것을 목표로 하고 있으며, 서로 다른 역사와 문제 해결 방법을 가지고 있습니다.
Mesos는 매우 일반적인 스케줄링과 여러 다른 스케줄러 연결에 에너지를 집중합니다.즉, Hadoop 및 Marathon과 같은 시스템이 동일한 스케줄링 환경에서 공존할 수 있습니다.Mesos는 컨테이너를 실행하는 데 덜 집중합니다.메조는 컨테이너에 대한 광범위한 관심 이전에 존재했으며 컨테이너를 지원하기 위해 부품에 재가공되었습니다.
이와 대조적으로, Kubernetes는 컨테이너에서 분산 응용프로그램을 구축하기 위한 환경으로 처음부터 설계되었습니다.여기에는 복제 및 서비스 검색을 위한 기본 요소가 핵심 기본 요소로 포함되어 있지만 Mesos의 프레임워크를 통해 이러한 요소가 추가됩니다.Kubernetes의 주요 목표는 분산 시스템을 구축, 실행 및 관리하는 시스템입니다.
플리트는 하위 수준의 작업 배포자입니다.클러스터 시스템의 부트스트래핑에 유용합니다(예: Core).OS는 이를 사용하여 커널 에이전트 및 이진 파일을 클러스터의 시스템으로 배포하여 커널 클러스터를 설정합니다.이는 동일한 분산 애플리케이션 개발 문제를 해결하기 위한 것이 아니라 클러스터의 systemd/init.d/upstart와 유사합니다.kubernetes를 실행하는 경우에는 필요하지 않으며 다른 도구(예: 소금, 인형, Ansible, Chef 등)를 사용하여 동일한 이진 분포를 수행할 수 있습니다.
스웜은 기존의 도커 API를 확장하여 기계 클러스터를 단일 도커 API처럼 보이게 하려는 도커의 노력입니다.근본적으로 Google 등에서 경험한 바에 따르면 노드 API가 클러스터 API에 충분하지 않습니다.https://github.com/docker/docker/pull/8859 및 https://github.com/docker/docker/issues/8781 에서 이에 대한 많은 토론을 볼 수 있습니다.
더 많은 이야기를 나누고 싶다면 IRC @ #google-containers에 참여하십시오.
가장 간단한 답은 간단한 답이 없다는 것이라고 생각합니다.컨테이너, 특히 Docker의 급속한 성능 향상으로 인해 "컨테이너 스케줄링 및 조정"에 대한 전력 공백이 발생했습니다.사실, 이는 경쟁에서 특정한 측면과 어떤 수준에서 조화롭게 작동할 수 있는 많은 기술이 있다는 것을 의미합니다.예를 들어, Kubernetes는 Google이 원래 설계한 대로 컴퓨팅 클러스터에서 컨테이너를 배포하고 관리하기 위한 원스톱 숍으로 사용할 수 있지만, Fleet가 CoreOS에서 제공하는 복원력 계층을 활용하여 Fleet의 맨 위에 배치할 수도 있습니다.
이 Google 비디오에서 언급했듯이, Kubernetes는 완전한 즉시 사용 가능한 컨테이너 확장 솔루션은 아니지만, 시작하기에 좋은 설명입니다.같은 방식으로, 당신은 아파치 메소스가 쿠베르네테스와 함께 일할 수 있을 것이라고 기대할 것이지만, 마라톤이 쿠베르네테스와 동일한 역할을 수행하는 것처럼 보이는 만큼 마라톤은 아닙니다.제가 어디선가 읽은 것처럼 이것들은 같은 노력의 일부가 될 수 있지만, 저는 그것에 대해 틀릴 수 있습니다. 그것은 정말로 중스피어의 전략적 방향과 쿠버네티스 원칙의 그에 상응하는 채택에 관한 것입니다.
도커콘 기조연설에서 Solomon Hykes는 Swarm이 많은 오케스트레이션 및 스케줄링 프레임워크에 대한 공통 인터페이스를 제공할 수 있는 계층이 될 것이라고 제안했습니다.제가 보기에 Swarm은 Deis와 같은 일부 기존 컨테이너 워크플로우 프레임워크와 함께 작업하면서 원활한 Docker 배포 워크플로우를 제공하도록 설계되었지만 Mesos와 같은 "무거운" 배포 및 리소스 관리에 양보할 수 있을 정도로 유연합니다.
이것이 도움이 되기를 바랍니다 - 이것은 거대한 게시물이 될 수 있습니다.제 생각에 핵심은 이러한 서비스들이 통합되어 상호 운용이 가능해질 가능성이 높은 젊고 진화하는 서비스들이라는 것입니다. 하지만 우리는 앞으로 12개월 동안 이 서비스가 어떻게 진행되는지 봐야 합니다.그 문제에 대해 매우 똑똑한 사람들이 있어서, 미래가 매우 밝아 보입니다.
제가 알기로는:
메소스, 쿠베르네테스, 플리트는 모두 매우 유사한 문제를 해결하기 위해 노력하고 있습니다.이 개념은 개발자로부터 모든 하드웨어를 추상화하고 '클러스터 관리 도구'를 사용하여 모든 하드웨어를 정리하는 것입니다.그런 다음 클러스터에 컨테이너를 제공하고 일부 정보를 제공하기만 하면 됩니다(영구적으로 실행 상태를 유지하고 X가 발생하는 경우 확장 등). 그러면 클러스터 관리자가 이를 수행합니다.
Mesos를 사용하면 클러스터 관리는 모두 수행되지만 스케줄러는 포함되지 않습니다.스케줄러는 "좋아요, 이 프로세스에는 2개의 프로세서와 512MB의 RAM이 필요합니다. 그리고 저는 그 무료가 있는 기계를 가지고 있습니다. 그래서 저는 그 기계에서 그것을 실행할 것입니다.메소스에 사용할 수 있는 플러그인 스케줄러는 마라톤과 크로노스이며, 직접 작성할 수 있습니다.이를 통해 리소스 배포 및 클러스터 확장 등의 강력한 성능을 얻을 수 있습니다.
플리트와 쿠버네티스는 그런 종류의 세부사항을 추상화하는 것처럼 보입니다(따라서 기본적으로 독자적인 스케줄러를 작성할 필요가 없습니다)즉, 작업을 정의하고 플리트 또는 쿠버네티스에서 정의한 형식/방식으로 제출해야 합니다. 그러면 작업(컨테이너)을 대신하여 예약합니다.
그래서 제 생각엔:Mesos를 사용하면 자신의 스케줄러를 작성하는 데 약간 더 많은 작업이 필요할 수 있지만 필요한 경우 더 많은 유연성을 제공할 수 있습니다.
저는 메소스 위에서 쿠버네티스를 운영하는 아이디어는 쿠버네티스가 메소스의 스케줄러 역할을 한다는 것이라고 생각합니다.개인적으로 저는 이것이 하나 또는 다른 하나를 스스로 운영하는 것에 비해 어떤 이점을 가져다 줄지 확신할 수 없습니다(누군가가 뛰어들어 설명해주기를 바랍니다!)
Mike B가 말했듯이..아직 초기 단계이며, 모두 손에 넣을 수 있는 상태입니다(아마존의 ECS도 주시하십시오). 그래서 많은 경쟁 표준과 많은 중복이 있습니다!
-편집- 저는 도커 스웜에 대한 경험이 별로 없기 때문에 언급하지 않았습니다.
2017년 이후에 여기에 오는 사람은 누구나 더 이상 사용하지 않습니다.더 이상 사용하지 마십시오.
플릿 문서에 따르면 "플릿은 더 이상 CoreOS에 의해 개발되거나 유지보수되지 않습니다."라고 하며 컨테이너 오케스트레이션에 연결됩니다. 함대에서 쿠베르네테스로 이동 중입니다.플리트는 컨테이너 리눅스(이전의 CoreOS 리눅스)에서 제거되고 쿠버네티스 쿠베렛(에이전트)으로 대체되었습니다.이는 Tectonic(Kubernetes 디스트리뷰터)을 주요 제품으로 제공하기 위한 기업의 피벗과 일치했습니다.
언급URL : https://stackoverflow.com/questions/27640633/docker-swarm-kubernetes-mesos-core-os-fleet
'code' 카테고리의 다른 글
PowerShell의 URL에서 도메인 가져오기 (0) | 2023.08.26 |
---|---|
원격 Git 분기를 삭제할 때 "오류: 정규화되지 않은 대상으로 푸시할 수 없습니다" (0) | 2023.08.26 |
xccconfig 파일에서 전체 URL을 구성하려면 어떻게 합니까? (0) | 2023.08.21 |
Android: 목록에서 강조 표시 사용 안 함클릭 보기 (0) | 2023.08.21 |
JPA로 서버 측과 클라이언트 측 모두에서 데이터베이스 ID-s를 생성할 수 있습니까? (0) | 2023.08.21 |