CloudFoundry (과거) 및 Kubernetes (현재) 커미터로서 저는이 질문에 답할 수있는 고유 한 자격을 갖추고있을 것입니다.
PaaS 유사
저는 CloudFoundry를 "애플리케이션 PaaS"라고 부르고 Kubernetes를 "컨테이너 PaaS"라고 부르는 것을 좋아합니다. 그러나 두 프로젝트가 같은 시장에서 경쟁하기 위해 시간이 지남에 따라 변화한다는 점을 감안할 때 차이는 상당히 미묘하고 유동적입니다.
둘 사이의 차이점은 CF에는 (12- 팩터) 사용자 앱 (예 : jar 또는 gem)과 Heroku 스타일 빌드 팩 (예 : Java + Tomcat 또는 Ruby)을 가져 와서 드롭 릿을 생성하는 스테이징 레이어가 있다는 것입니다. Docker 이미지). CF는 컨테이너화 인터페이스를 사용자에게 노출하지 않지만 Kubernetes는 노출합니다.
청중
CloudFoundry의 주요 대상은 Heroku 스타일 빌드 팩을 사용하여 12 단계 상태 비 저장 앱을 배포하려는 엔터프라이즈 애플리케이션 개발자입니다.
Kubernetes의 대상은 상태 비 저장 애플리케이션과 자체 컨테이너를 제공하는 상태 저장 서비스 개발자를 포함하여 조금 더 광범위합니다.
이 구분은 향후 변경 될 수 있습니다.
기능 비교
두 프로젝트가 성숙하고 경쟁함에 따라 유사점과 차이점이 바뀝니다. 따라서 다음과 같은 기능을 소금과 비교하십시오.
CF와 K8은 모두 컨테이너화, 네임 스페이스, 인증,
Kubernetes 경쟁 이점 :
- 독립적으로 확장하는 대신 네트워킹 스택을 공유하는 컨테이너 포드 그룹화 및 확장
- 나만의 용기 가져 오기
- 상태 저장 지속성 계층
- 더 크고 활동적인 OSS 커뮤니티
- 교체 가능한 구성 요소 및 타사 플러그인으로 확장 가능한 아키텍처
- 무료 웹 GUI
CloudFoundry 경쟁 우위 :
- 성숙한 인증, 사용자 그룹화 및 다중 테넌시 지원 [x]
- 나만의 앱 가져 오기
- 포함 된로드 밸런서
- BOSH [x]에 의해 배포, 확장 및 유지됨
- 강력한 로깅 및 메트릭 집계 [x]
- 엔터프라이즈 웹 GUI [x]
[x] 이러한 기능은 Diego의 일부가 아니며 Lattice에 포함되어 있습니다.
전개
CloudFoundry의 경쟁 이점 중 하나는 핵심 CF 구성 요소의 확장, 부활 및 모니터링과 같은 기능을 지원하는 성숙한 배포 엔진 인 BOSH가 있다는 것입니다. BOSH는 또한 플러그 형 클라우드 공급자 추상화를 통해 많은 IaaS 계층을 지원합니다. 불행히도 BOSH의 학습 곡선 및 배포 구성 관리는 악몽입니다. (BOSH 커미터로서 정확하게 말할 수 있다고 생각합니다.)
Kubernetes의 배포 추상화는 아직 초기 단계입니다. 코어 리포지토리에서 여러 대상 환경을 사용할 수 있지만 모두 작동하지 않거나 잘 테스트되거나 기본 개발자가 지원하지 않습니다. 이것은 대부분 성숙한 것입니다. 이것은 시간이 지남에 따라 개선되고 추상화가 증가 할 것으로 예상 할 수 있습니다. 예를 들어 DCOS의 Kubernetes를 사용하면 단일 명령으로 Kubernetes를 기존 DCOS 클러스터에 배포 할 수 있습니다 .
역사적 맥락
Diego는 CF의 Droplet Execution Agent를 재 작성했습니다. 원래 Kubernetes가 발표되기 전에 개발되었으며 경쟁 환경이 발전함에 따라 더 많은 기능 범위를 차지했습니다. 원래 목표는 물방울 (사용자 애플리케이션 + CF 빌드 팩)을 생성하고이를 Warden (Go에서 다시 작성하면 Garden으로 이름이 바뀜) 컨테이너에서 실행하는 것이 었습니다. 그것의 처음부터 그것은 또한으로 재 포장되어있어 격자 그 이름을가 촬영되었지만 (다소 CloudFoundry 라이트이며, 기존 프로젝트). 이러한 이유로 Lattice는 의도적으로 사용자 청중과 범위를 줄였고 "기업용"으로 만드는 기능을 명시 적으로 누락했다는 점에서 다소 장난감과 같습니다. CF가 이미 제공하는 기능. 이는 부분적으로 Lattice가 더 복잡한 CF의 오버 헤드없이 핵심 구성 요소를 테스트하는 데 사용되기 때문이지만 보안 및 다중 테넌시가 그다지 문제가되지 않는 내부 고신뢰 환경에서도 Lattice를 사용할 수 있습니다. .
CloudFoundry와 Warden (컨테이너 엔진)도 Docker보다 2 년 앞선다는 점도 언급 할 가치가 있습니다.
반면에 Kubernetes는 BORG 및 Omega에서 수년간의 컨테이너 사용을 기반으로 Google에서 개발 한 비교적 새로운 프로젝트입니다. Kubernetes는 Google에서 3 세대 컨테이너 오케스트레이션으로 생각할 수 있습니다. Diego가 Pivotal / VMware에서 3 세대 컨테이너 오케스트레이션 (v1은 VMware에, v2는 VMware에서 Pivotal Labs 지원, v3는 프로젝트를 인수 한 후)으로 생각할 수 있습니다. .