Як і CloudFoundry (минулий), і Kubernetes (теперішній) комітет, я, мабуть, однозначно кваліфікований, щоб відповісти на це.
PaaS-подібний
Мені подобається називати CloudFoundry "Application PaaS", а Kubernetes - "Container PaaS", але відмінність є досить тонким і текучим, враховуючи, що обидва проекти змінюються з часом, щоб конкурувати на одних і тих же ринках.
Відмінність між ними полягає в тому, що CF має інсценізаційний шар, який займає (12-факторний) користувальницький додаток (наприклад, jar або gem) та збірний пакет у стилі Heroku (наприклад, Java + Tomcat або Ruby) і видає крапельку (аналогічну до Зображення Докера). CF не піддає користувачу інтерфейс для контейнерізації, але Kubernetes це робить.
Аудиторія
Основна аудиторія CloudFoundry - це розробники корпоративних програм, які хочуть розгорнути 12-факторні програми без стану, використовуючи збірки в стилі Heroku.
Аудиторія Kubernetes трохи ширша, включаючи як програми без громадянства, так і державні розробники сервісів, які надають власні контейнери.
Ця різниця може змінитися в майбутньому:
Порівняння функцій
По мірі дозрівання та конкуренції обох проектів їх схожість та відмінності будуть змінюватися. Тому візьміть наступне порівняльне означення із зерном солі.
І CF, і K8 мають багато подібних функцій, таких як контейнери, простір імен, автентифікація,
Конкурентні переваги Kubernetes:
- Групуйте та масштабуйте стручки контейнерів, які мають спільний мережевий стек, а не просто масштабування незалежно
- Принесіть власний контейнер
- Державний шар стійкості
- Більша, більш активна спільнота OSS
- Більш розширювана архітектура із змінними компонентами та сторонніми плагінами
- Безкоштовний веб-інтерфейс
Конкурентні переваги CloudFoundry:
- Дозріла автентифікація, групування користувачів та підтримка багатьох орендарів [x]
- Візьміть власний додаток
- Включений балансир навантаження
- Розгорнутий, розширений і підтримуваний живим BOSH [x]
- Надійний журнал та агрегація показників [x]
- Інтерфейс інтерфейсу підприємства [x]
[x] Ці функції не входять до складу Дієго та не входять до решітки.
Розгортання
Однією з конкурентних переваг CloudFoundry є те, що він має зрілий двигун розгортання, BOSH, який забезпечує такі функції, як масштабування, відновлення та моніторинг основних компонентів CF. BOSH також підтримує багато шарів IaaS з абстрагуванням постачальника хмарних постачальників. На жаль, крива навчання та управління конфігурацією розгортання BOSH - кошмар. (Як підкоряючий BOSH, я думаю, що можу це сказати з точністю.)
Абстракція розгортання Kubernetes все ще знаходиться в зародковому стані. У основному репо доступні кілька цільових середовищ, але вони не всі працюють, добре перевірені або підтримуються первинними розробниками. Це здебільшого зріла річ. Можна очікувати, що з часом воно покращиться та зросте абстракція. Наприклад, Kubernetes в DCOS дозволяє розгортати Kubernetes в існуючий кластер DCOS за допомогою однієї команди.
Історичний контекст
Дієго - переписуючий агент із виконання крапель CF. Спочатку вона була розроблена ще до того, як було оголошено Kubernetes, і вона набула більшого масштабу, оскільки розвивався конкурентний ландшафт. Початкова його мета полягала у створенні крапель (користувацьке додаток + CF buildpack) та запусканні їх у Warden (перейменований Garden при переписуванні в Go) контейнери. З моменту свого створення він також був перекомплектований як Решітка , яка є дещо обласною програмою CloudFoundry (хоча таку назву взяв уже існуючий проект). З цієї причини решітка дещо схожа на іграшки, оскільки свідомо скорочує аудиторію та сферу використання, явно не вистачаючи функцій, які б зробили це "готовим до підприємств". Особливості, які CF вже надає. Почасти це тому, що решітка використовується для тестування основних компонентів, не маючи накладних витрат на складніші CF, але ви також можете використовувати решітки у внутрішніх середовищах з високим рівнем довіри, де безпека та багатожитловість не викликають особливих проблем. .
Варто також згадати, що CloudFoundry та Warden (його двигун з контейнерами) передували Докері також пару років.
Kubernetes, з іншого боку, є відносно новим проектом, розробленим Google на основі багаторічного використання контейнерів з BORG та Omega. Kubernetes можна розглядати як контейнерне оркестрування 3-го покоління в Google, так само, як Дієго - це контейнерне оркестрування 3-го покоління в Pivotal / VMware (v1 написано на VMware; v2 в VMware з Pivotal Labs help; v3 в Pivotal після того, як він взяв на себе проект) .