Kubernetes to projekt typu open source, który przenosi możliwości zarządzania klastrami w stylu Google do świata maszyn wirtualnych lub scenariuszy „metalowych”. Działa bardzo dobrze z nowoczesnymi środowiskami systemów operacyjnych (takimi jak CoreOS lub Red Hat Atomic), które oferują lekkie „węzły” obliczeniowe, które są dla Ciebie zarządzane. Jest napisany w Golang i jest lekki, modułowy, przenośny i rozszerzalny. My (zespół Kubernetes) współpracujemy z wieloma różnymi firmami technologicznymi (w tym Mesosferą, która jest kuratorem projektu open source Mesos), aby ustanowić Kubernetes jako standardowy sposób interakcji z klastrami obliczeniowymi. Chodzi o to, aby odtworzyć wzorce, które widzimy, że ludzie muszą tworzyć aplikacje klastrowe w oparciu o nasze doświadczenie w Google. Niektóre z tych pojęć obejmują:
- strąki - sposób na grupowanie pojemników razem
- kontrolery replikacji - sposób obsługi cyklu życia kontenerów
- etykiety - sposób na wyszukiwanie i wyszukiwanie kontenerów oraz
- usługi - zestaw kontenerów pełniących wspólną funkcję.
Tak więc z samym Kubernetes będziesz mieć coś, co jest proste, łatwe do uruchomienia, przenośne i rozszerzalne, które dodaje „klaster” jako rzeczownik do rzeczy, którymi zarządzasz w możliwie najlżejszy sposób. Uruchom aplikację w klastrze i przestań martwić się o indywidualną maszynę. W tym przypadku klaster jest elastycznym zasobem, podobnie jak maszyna wirtualna. Jest to logiczna jednostka obliczeniowa. Podkręć, użyj, zmień rozmiar, szybko i łatwo ścisz.
W przypadku Mesos, podstawowa wizja nakłada się na siebie, ale produkty znajdują się w różnych momentach cyklu życia i mają różne słodkie punkty. Mesos to jądro systemów rozproszonych, które łączy wiele różnych maszyn w logiczny komputer. Stworzono go dla świata, w którym masz dużo zasobów fizycznych, aby stworzyć duży statyczny klaster obliczeniowy. Wspaniałą rzeczą jest to, że wiele nowoczesnych skalowalnych aplikacji do przetwarzania danych działa dobrze na Mesos (Hadoop, Kafka, Spark) i jest to miłe, ponieważ możesz je wszystkie uruchomić na tej samej podstawowej puli zasobów, wraz z aplikacjami kontenerowymi New Age . Jest nieco cięższy niż projekt Kubernetes, ale staje się łatwiejszy i łatwiejszy do zarządzania dzięki pracy ludzi takich jak Mesosphere.
Teraz naprawdę interesujące jest to, że Mesos jest obecnie dostosowywany w celu dodania wielu koncepcji Kubernetes i obsługi interfejsu API Kubernetes. Będzie więc bramą do uzyskania większych możliwości dla Twojej aplikacji Kubernetes (wzorzec wysokiej dostępności, bardziej zaawansowana semantyka planowania, możliwość skalowania do bardzo dużej liczby węzłów), jeśli ich potrzebujesz, i dobrze nadaje się do uruchamiania obciążeń produkcyjnych (Kubernetes jest nadal w stanie alfa).
Na pytanie mam tendencję do mówienia:
Kubernetes to świetne miejsce na początek, jeśli jesteś nowy w świecie klastrów; jest to najszybszy, najłatwiejszy i najlżejszy sposób na kopnięcie opon i rozpoczęcie eksperymentowania z rozwojem zorientowanym na klaster. Oferuje bardzo wysoki poziom przenośności, ponieważ jest obsługiwany przez wielu różnych dostawców (Microsoft, IBM, Red Hat, CoreOs, MesoSphere, VMWare itp.).
Jeśli masz istniejące obciążenia (Hadoop, Spark, Kafka itp.), Mesos daje Ci strukturę, która pozwala ci przeplatać te obciążenia ze sobą i mieszać niektóre nowe rzeczy, w tym aplikacje Kubernetes.
Mesos daje ci zawór bezpieczeństwa, jeśli potrzebujesz możliwości, które nie zostały jeszcze zaimplementowane przez społeczność w ramach Kubernetes.