Apache'nin Mesos'u ve Google'ın Kubernetes'i arasındaki fark nedir?


Yanıtlar:


516

Kubernetes, sanal makineler dünyasına veya 'metal' senaryolarına 'Google tarzı' küme yönetimi yeteneklerini getiren açık kaynaklı bir projedir. Sizin için yönetilen hafif bilgi işlem 'düğümleri' sunan modern işletim sistemi ortamlarında (CoreOS veya Red Hat Atomic gibi) çok iyi çalışır. Golang'da yazılmıştır ve hafif, modüler, taşınabilir ve genişletilebilir. Biz (Kubernetes ekibi), Kubernetes'i bilgisayar kümeleriyle etkileşime girmenin standart yolu olarak kurmak için bir dizi farklı teknoloji şirketi (Mesos açık kaynak projesini küratörleştiren Mesosphere dahil) ile birlikte çalışıyoruz. Fikir, Google'daki deneyimlerimize dayanarak küme uygulamaları geliştirmesi gereken insanların gördüğümüz kalıpları yeniden üretmektir. Bu kavramlardan bazıları şunlardır:

  • kapsüller - kapları birlikte gruplamanın bir yolu
  • çoğaltma denetleyicileri - kapların yaşam döngüsünü işlemenin bir yolu
  • etiketler - kapsayıcıları bulmanın ve sorgulamanın bir yolu ve
  • hizmetleri - ortak bir işlevi yerine getiren bir dizi konteyner.

Yani sadece Kubernetes ile, yönetebileceğiniz şeylere en hafif ağırlıkta bir isim olarak 'küme' ekleyen basit, çalıştırılması kolay, taşınabilir ve genişletilebilir bir şeye sahip olacaksınız. Kümede bir uygulama çalıştırın ve tek bir makine hakkında endişelenmeyi bırakın. Bu durumda, küme tıpkı bir VM gibi esnek bir kaynaktır. Mantıksal bir bilgi işlem birimidir. Açın, kullanın, yeniden boyutlandırın, hızlı ve kolay bir şekilde kapatın.

Mesos ile temel vizyon açısından oldukça fazla örtüşme var, ancak ürünler yaşam döngülerinde oldukça farklı noktalarda ve farklı tatlı noktalara sahipler. Mesos, birçok farklı makineyi mantıksal bir bilgisayara birleştiren dağıtılmış bir sistem çekirdeğidir. Büyük bir statik bilgi işlem kümesi oluşturmak için çok fazla fiziksel kaynağa sahip olduğunuz bir dünya için doğdu. Bununla ilgili en güzel şey, birçok modern ölçeklenebilir veri işleme uygulamasının Mesos (Hadoop, Kafka, Spark) üzerinde iyi çalışması ve güzel olması, çünkü hepsini aynı temel kaynak havuzunda çalıştırabilirsiniz. . Kubernetes projesinden biraz daha ağırdır, ancak Mesosphere gibi insanların çalışması sayesinde yönetilmesi daha kolay ve daha kolay hale gelmektedir.

Şimdi gerçekten ilginç olan şey Mesos'un şu anda Kubernetes kavramlarının çoğunu eklemek ve Kubernetes API'sini desteklemek için uyarlanmış olmasıdır. Bu nedenle, gerekirse Kubernetes uygulamanız için daha fazla özellik (yüksek kullanılabilirlik yöneticisi, daha gelişmiş zamanlama semantiği, çok sayıda düğüme ölçeklendirme yeteneği) elde etmek için bir geçit olacaktır ve üretim iş yüklerini (Kubernetes) çalıştırmak için çok uygundur hala alfa durumunda).

Sorulduğunda, söyleme eğilimindeyim:

  1. Kümelenme dünyasında yeniyseniz Kubernetes başlamak için harika bir yerdir; lastikleri tekmelemenin ve küme odaklı geliştirmeyi denemeye başlamanın en hızlı, en kolay ve en hafif yoludur. Birçok farklı sağlayıcı (Microsoft, IBM, Red Hat, CoreOs, MesoSphere, VMWare, vb.) Tarafından desteklendiği için çok yüksek bir taşınabilirlik düzeyi sunar.

  2. Mevcut iş yükleriniz (Hadoop, Spark, Kafka, vb.) Varsa, Mesos size bu iş yüklerini birbirleriyle bırakmanıza ve Kubernetes uygulamaları da dahil olmak üzere bazı yeni şeyleri karıştırmanıza izin veren bir çerçeve sunar.

  3. Topluluk tarafından henüz Kubernetes çerçevesinde uygulanmayan yeteneklere ihtiyacınız varsa Mesos size bir kaçış valfi verir.


4
Mükemmel görünüm. İki kısa düşünce: 1) Kubernetes'in artık alfa yerine beta olduğuna inanıyorum? 2) Maraton hakkında bilgi ekle?
knite

57
Özetle (hızlı okuma için - Umarım doğru anlarım): kubernetes kapsayıcılar için bir küme yöneticisidir (yalnızca?). ve mezolarda çalıştırılmak üzere oluşturulmuş uygulamalar. Yine de kubernetes (diğerlerinin yanı sıra) mesos üzerinde çalıştırılabilen bir çerçevedir. Böylece, hem kümeniz olmayan bir küme hem de yönetilecek kümesi olmayan bir küme yöneticisi ile birleşirsiniz. Büyük yeni dünya :-) (J / K kub beri bu yana faydaları bir sürü vardır. Daha sonra clst. Fiz. Res.)
masi

7
İşte Mesosphere, Kubernetes 1.0 Launch etkinliğinde tam olarak bunun hakkında konuşuyor: youtube.com/… - yasal uyarı: bu benim.
Air

68

Her iki proje de veri merkezinizdeki veya buluttaki kapsayıcıların içine uygulamaların dağıtılmasını ve yönetilmesini kolaylaştırmayı amaçlamaktadır.

Uygulamaları Mesos'un üzerine yerleştirmek için Mesos için Maraton veya Kubernetes kullanılabilir.

Maraton, Linux hizmetlerini gruplarda ve Docker kapsayıcılarında çalıştırmak için küme genelinde bir başlatma ve kontrol sistemidir. Maraton bir dizi farklı kanarya konuşlandırma özelliğine sahiptir ve çok olgun bir projedir.

Maraton, son derece ölçeklenebilir, savaşta test edilmiş ve esnek bir kaynak yöneticisi olan Mesos'un üstünde çalışır. Maratonun ölçekli olduğu kanıtlanmıştır ve birçok üretim ortamında çalışmaktadır.

Mesos ve Mesosphere teknoloji yığını, mevcut Linux iş yüklerini çalıştırmak için bulut benzeri bir ortam sağlar, ancak aynı zamanda yeni dağıtılmış sistemler oluşturmak için yerel bir ortam sağlar.

Mesos, doğrudan veri merkezine karşı programlama için tam bir API ile dağıtılmış bir sistem çekirdeğidir. Altta yatan donanımı (örneğin çıplak metal veya VM'ler) soyutlar ve sadece kaynakları ortaya koyar. İleti Geçişi, Görev Yürütme, vb. Gibi dağıtılmış uygulamalar (örn. Spark başlangıçta bir Mesos Uygulaması, Chronos vb.) Yazmak için ilkeler içerir. Böylece tamamen yeni uygulamalar mümkün olur. Apache Spark, orijinal olarak Mesos için inşa edilmiş yeni (Mesos jargon olarak adlandırılır) bir çerçeve için bir örnektir. Bu gerçekten hızlı bir gelişme sağladı - Spark geliştiricileri, Mesos'ta temel bir ilkel olduğu için görevleri düğümler arasında dağıtmak için ağ oluşturma konusunda endişelenmek zorunda değildi.

Bildiğim kadarıyla Kubernetes, bugün Google'ın üretim dağıtımlarında kullanılmıyor. Google, üretim için Mesos / Maraton modeline çok benzeyen Omega / Borg kullanıyor. Ancak Mesos'u temel olarak kullanmanın en güzel yanı, hem Kubernetes hem de Marathon'un üstesinden gelebilmesidir.

Marathon hakkında daha fazla bilgi:

https://mesosphere.github.io/marathon/

Video: https://www.youtube.com/watch?v=hZNGST2vIds


37

Kubernetes ve Mesos cennette yapılan bir maç. Kubernetes, servis keşfi, yük dengeleme ve çoğaltma kontrolü için Pod etiketleriyle birlikte Pod (birlikte konumlandırılmış kaplar grubu) soyutlamasını sağlar. Mesos, bir kümedeki düğümler arasındaki kapsüller için ayrıntılı kaynak tahsisleri sağlar ve Kubernetes'in aynı küme kaynaklarında çalışan diğer çerçevelerle güzelce oynatılmasını sağlayabilir.

den Kubernetes-mesos Benioku'da


18

Hem Mesos hem de Kubernetes, bir makine kümesini yönetmek ve donanımı soyutlamak için kullanılabilir.

Mesos, tasarım gereği, size bir zamanlayıcı sağlamaz (süreçlerin nerede ve ne zaman çalıştırılacağına ve işlem başarısız olursa ne yapılacağına karar vermek için), Maraton veya Chronos gibi bir şey kullanabilir veya kendiniz yazabilirsiniz.

Kubernetes sizin için kutudan çıkacak şekilde planlama yapacak ve onları birlikte kullanabileceğiniz Mesos için bir zamanlayıcı olarak kullanılabilir (lütfen burada yanılıyorsam beni düzeltin!). Mesos aynı kümeyi paylaşan birden çok zamanlayıcıya sahip olabilir, bu nedenle teoride kubernet'leri ve kronoları aynı donanımda birlikte çalıştırabilirsiniz.

Süper basit: Konteynerlerinizin nasıl planlandığını kontrol etmek istiyorsanız, Mesos'a gidin, aksi takdirde Kubernetes kayaları.


1
Bu cevap yanlış ve kafa karıştırıcı. Mesos'u Kubernetes üzerinde çalıştırmanın kolay bir yolu yoktur ve aslında bu mimarinin tersine çevrilmesi olacaktır. Kubernetes, Mesos'tan daha az odak noktası olduğundan, Mesos'un üstünde çalıştırmak daha mantıklı.
ssk2

1
Evet, ben Mesos üstünde kubernetes demek istedim .. Kubernetes mesos çerçeve için zamanlama mantığı sağlar ve mezos vb iş çalışan ilgilenir .. Bu açık değildi üzgünüm.
user2851943

2
@air Burada zamanlayıcıyı nasıl tanımlayacağınızı bilmek isterim? Mesos'un kendisi zamanlama mantığının hiçbirini sağlamıyor gibi görünüyor mu? Tüm bunlar Chronos / Maraton / vb. (belki de bir şey kaçırdım! :))
user2851943

6
Sanırım ne elde ettiğinizi görüyorum - Mesos, programlayıcıların takılı olmasına izin veren bir çerçevedir. tasarlamak. Aşağı oyumu kaldırdım.
Hava

5
Bu cevap doğrudur. Mesos kaynak yönetimine odaklanır ve takılabilir çerçevelere izin vererek zamanlamayı ayırır. Netflix'in bir programlama çerçevesi yazarak yaptığı iyi bir örnek: Fenzo techblog.netflix.com/2015/08/…
Camilo Crespo

5

Burada bu kısa videoyu seviyorum mesos öğrenme materyali

çıplak metal kümeleri ile, HDFS, SPARK, MR vb.

mesos ile bu hizmetleri çıplak metallerin üzerine kurabilir ve bu temel hizmetlerin getirilme süresinden kaçınabilirsiniz. Bu mesosun iyi yaptığı bir şey. ve üstünde bina kubernetes tarafından kullanılabilir.


3

"İkisinin de sunucu kümesi yönetim yazılımı olduğunu anlıyorum."

Bu ifade tamamen doğru değil. Kubernetes, sunucu kümelerini yönetmez, kapsayıcıları minimum güçlük ve maruziyetle birlikte çalışacak şekilde düzenler. Kubernetes, uygulamanızın parçalarını "dağıtımlar" veya "arka plan programları" (ve birkaç diğer) tarafından teslim edilen ve hizmetler yoluyla dış dünyaya açık olan "kapsüller" (bir veya daha fazla kap) olarak tanımlamanıza olanak tanır. Bununla birlikte, Kubernetes kümenin kendisini yönetmez (sizin için kümeleri sağlayabilen, yapılandırabilen ve ölçeklendirebilen araçlar vardır, ancak bunlar Kubernetes'in kendisinin bir parçası değildir).

Mesos ise "küme yönetimine" yaklaşıyor, çünkü sadece konteynerlerin programlanması açısından değil, nerede çalıştığını kontrol edebiliyor. Mesos ayrıca küme sunucularında çalışan bağımsız yazılımları da yönetir. Çoğunlukla Kubernetes'e bir alternatif olarak kullanılmasına rağmen, Mesos Kubernetes ile kolayca çalışabilir, çünkü işlevsellik birçok alanda örtüşürken, Mesos daha fazlasını yapabilir (ancak Kubernetes'in üst üste gelen kısımlarında daha iyi olma eğilimindedir).

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.