Docker-Swarm, Kubernetes, Mesos ve Core-OS Filosu


153

Tüm bunlar için nispeten yeniyim, ancak listelenen teknolojiler arasında net bir resim elde etmede sorunlar yaşıyorum.

Yine de, bunların hepsi farklı sorunları çözmeye çalışır, ancak ortak noktaları da vardır. Ortak olan ve farklı olan şeyleri anlamak istiyorum. Birkaç kombinasyonun çok uygun olması muhtemeldir, eğer öyleyse ne?

Ben birkaç soru ile birlikte listeleme, ama birisi hepsini ayrıntılı olarak listeler ve soruları cevaplamak harika olurdu.

  1. Kubernetes ve Mesos:

    Bu bağlantı

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

    farklılıklar hakkında iyi bir fikir verir, ancak Kubernetes'in neden Mesos'un üstünde çalışması gerektiğini anlayamıyorum. İki açık kaynak çözümüyle bir araya gelmek daha mı önemli?

  2. Kubernetes vs Core-OS Filosu:

    Kubernetes kullanıyorsam, filo gerekli mi?

  3. Docker-Swarm yukarıdakilerin hepsine nasıl uyuyor?



1
Github'da düzenleme araçlarının bir listesini tutuyorum: datacenteroperatingsystem.io Katkıda bulunmaktan çekinmeyin.
CMCDragonkai

Yanıtlar:


152

Açıklama: Kubernetes'te baş mühendisim

Mesos ve Kubernetes'in büyük ölçüde kümelenmiş uygulamaları çalıştırmanın benzer problemlerini çözmeyi amaçladıklarını, problemin çözülmesinde farklı geçmişleri ve farklı yaklaşımları olduğunu düşünüyorum.

Mesos enerjisini çok genel çizelgeleme ve çoklu farklı çizelgelere takmaya odaklar. Bu, Hadoop ve Marathon gibi sistemlerin aynı zamanlama ortamında birlikte var olmasını sağlar. Mesos koşu kaplarına daha az odaklanmıştır. Mezos, kaplara yoğun ilgi göstermeden önce mevcuttu ve kapları desteklemek için parçalar halinde yeniden faktör haline getirildi.

Buna karşılık, Kubernetes sıfırdan konteynerlerden dağıtılmış uygulamalar oluşturmak için bir ortam olacak şekilde tasarlandı. Temel ilkeler olarak çoğaltma ve hizmet keşfi için ilkeleri içerir, burada Mesos'taki çerçeveler aracılığıyla bu tür şeyler eklenir. Kubernetes'in temel amacı dağıtılmış sistemleri oluşturmak, çalıştırmak ve yönetmek için bir sistemdir.

Filo alt düzey bir görev dağıtıcısıdır. Bir küme sistemini önyüklemek için kullanışlıdır, örneğin CoreOS, kubernetes kümesini açmak için kübernet aracılarını ve ikili dosyaları bir kümedeki makinelere dağıtmak için kullanır. Aynı dağıtılmış uygulama geliştirme sorunlarını çözmek için tasarlanmamıştır, daha çok kümeniz için systemd / init.d / upstart gibi düşünün. Kubernetes çalıştırmanız gerekmez, aynı ikili dağıtımı gerçekleştirmek için diğer araçları (örneğin, Tuz, Kukla, Ansible, Şef, ...) kullanabilirsiniz.

Swarm, Docker'ın mevcut bir Docker API'sını bir makine kümesini tek bir Docker API'sı gibi göstermesi için genişletme çabasıdır. Temel olarak, Google'daki ve başka yerlerdeki deneyimimiz, düğüm API'sinin bir küme API'sı için yetersiz olduğunu gösterir. Bununla ilgili bir grup tartışmayı burada görebilirsiniz: https://github.com/docker/docker/pull/8859 ve burada: https://github.com/docker/docker/issues/8781

Umarım yardımcı olur! Daha fazla konuşmak istiyorsanız IRC @ # google-container'larda bize katılın.


Teşekkürler, bu çok yararlı, kübernet üzerinde kendi zamanlayıcı çalıştırmak mümkün bahsetmiyorum .. Bu mümkün olacak mı?
user2851943

33

Bence en basit cevap basit bir cevap olmamasıdır. Konteynırların hızla yükselmesi ve özellikle Docker, ne anlama gelse de "konteyner planlaması ve orkestrasyonu" için bir güç boşluğu bıraktı. Gerçekte, bu, bazı seviyelerde, ancak rekabetin belirli yönleriyle uyum içinde çalışabilecek bir dizi teknolojiye sahip olduğunuz anlamına gelir. Örneğin, Kubernetes, bir hesaplama kümesinde (Google'ın başlangıçta tasarladığı gibi) kapları dağıtmak ve yönetmek için tek durak olarak kullanılabilir, ancak Fleet'in CoreOS'ta sağladığı esneklik katmanını kullanarak Filo'nun üzerine de oturabilir.

Bu Google vid, Kubernetes'in kutu konteyneri ölçeklendirme çözümünden tam olarak bahsetmediğini, ancak başlangıç ​​için iyi bir açıklama olduğunu belirtti. Aynı şekilde, bir aşamada Apache Mesos'un Kubernetes ile çalışmasını beklersiniz, ancak Marathon ile çalışamazsınız, Marathon'un Kubernetes ile aynı rolü yerine getirdiği görünmektedir. Okuduğum bir yerde bunların aynı çabanın bir parçası haline gelebileceğini düşünüyorum, ama bu konuda yanlış olabilirim - Mesosphere'in stratejik yönü ve Kubernetes prensiplerinin buna uygun olarak benimsenmesi ile ilgili.

DockerCon açılış notunda Solomon Hykes, Swarm'ın birçok düzenleme ve programlama çerçevesine ortak bir arayüz sağlayabilecek bir katman olacağını öne sürdü. Görebildiğim kadarıyla, Swarm, Deis gibi mevcut bazı konteyner iş akışı çerçeveleriyle çalışarak, ancak Mesos gibi "ağır" dağıtım ve kaynak yönetimini sağlayacak kadar esnek, düzgün bir Docker dağıtım iş akışı sağlamak üzere tasarlanmıştır.

Umarım bu yardımcı olur - bu muazzam bir yazı olabilir. Bence anahtar, bunların birleşmesi ve birlikte çalışabilir hale gelmesi muhtemel genç, gelişen hizmetler. Sorun üzerinde çok zeki insanlar var, bu yüzden gelecek çok parlak görünüyor.


21

Anladığım kadarıyla:

Mesos, Kubernetes ve Filo çok benzer bir sorunu çözmeye çalışıyor. Buradaki fikir, tüm donanımınızı geliştiricilerden soyutlamanızdır ve 'küme yönetimi aracı' sizin için her şeyi sıralar. Daha sonra tek yapmanız gereken, kümeye bir kapsayıcı vermek, biraz bilgi vermek (kalıcı olarak çalışmaya devam et, X olursa ölçeklendir vb.) Ve küme yöneticisi bunu gerçekleştirecektir.

Mesos ile tüm küme yönetimini sizin için yapar, ancak zamanlayıcıyı içermez. Zamanlayıcı, bu işlemin 2 proc ve 512MB RAM'e ihtiyacı olduğunu söyleyen biraz, ve orada ücretsiz olan bir makinem var, bu yüzden bu makinede çalıştıracağım. Mesos için bazı eklenti zamanlayıcılar vardır: Maraton ve Chronos ve kendi yazabilirsiniz. Bu size kaynak dağıtımı ve küme ölçeklendirmesi gibi birçok güç sağlar.

Filo ve Kubernetes bu tür ayrıntıları soyutlıyor gibi görünüyor (böylece temel olarak kendi zamanlayıcınızı yazmak zorunda değilsiniz). Bu, görevlerinizi tanımlamanız ve bunları Filo veya Kubernetes tarafından tanımlanan formatta / şekilde göndermeniz gerektiği anlamına gelir ve daha sonra görevleri (konteynerleri) sizin için devralır ve zamanlarlar.

Bu yüzden sanırım: Mesos'u kullanmak kendi zamanlayıcınızı yazmak için biraz daha fazla iş anlamına gelebilir, ancak gerekirse daha fazla esneklik sağlar.

Bence Kubernetes'i Mesos'un üzerinde çalıştırma fikri Kubernetes'in Mesos için zamanlayıcı görevi görmesidir. Şahsen bunun kendi başına birini ya da diğerini çalıştırmanın getirdiği faydalardan emin değilim (umarım birisi atlayıp açıklar!)

MikeB'ın dediği gibi .. erken günler ve her şey kapmak için (Amazon'un ECS'sine de göz atın), bu yüzden birçok rakip standart ve çok fazla çakışma var!

-edit- Docker sürüsünden bahsetmedim çünkü onunla pek fazla deneyimim yok.


5

2017'den sonra buna gelen herkes için filo kullanımdan kaldırıldı. Artık kullanmayın.

Filo dokümanları , "filonun artık CoreOS tarafından aktif olarak geliştirilmediğini veya sürdürülmediğini" söylüyor ve Konteyner düzenlemesine bağlanıyor: Filodan Kubernetes'e geçiş . Filo, Container Linux'tan ( eski adıyla CoreOS Linux ) çıkarılmış ve yerine Kubernetes kubelet (ajan) kullanılmıştır. Bu , temel ürün olarak Tectonic (Kubernetes dağıtım) sunmak için kurumsal bir pivot ile çakıştı .

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.