Trace Id is missing
Przejdź do głównej zawartości

Kubernetes a Docker

Szybciej twórz, dostarczaj i skaluj aplikacje za pomocą technologii kontenerów, które lepiej działają razem.
 

Czym się różnią platformy Kubernetes i Docker?

Dyskusja dotycząca platform Kubernetes i Docker często sprowadza się do pytania: której z tych platform użyć? Powszechne jest błędne mniemanie, że należy dokonać między nimi wyboru.

Różnicę między platformami Kubernetes i Docker można znacznie łatwiej zrozumieć, formułując zupełnie inne pytanie, które nie zakłada wyboru tej lub innej platformy. Wybór między tymi dwoma platformami nie jest konieczny — Kubernetes i Docker to zupełnie różne technologie, które dobrze współpracują ze sobą w celu tworzenia, dostarczania i skalowania konteneryzowanych aplikacji.

Platforma Docker i popularyzacja konteneryzacji

Docker to technologia typu open source oraz format pliku kontenera służący do automatyzowania wdrażania aplikacji jako przenośne, samowystarczalne kontenery, które mogą być uruchamiane w chmurze lub lokalnie. Docker Inc., mimo podobnej nazwy, to jedna z firm doskonaląca technologię platformy Docker (typu open source) pod kątem działania w systemach Linux i Windows we współpracy z dostawcami usług w chmurze, takimi jak firma Microsoft.

Chociaż idea izolowanych środowisk nie jest nowa i istnieją inne typy oprogramowania do konteneryzacji, format Docker w ciągu ostatnich lat stał się domyślnym formatem kontenerów. W ramach platformy Docker dostępny jest aparat Docker Engine, czyli środowisko uruchomieniowe. Umożliwia ono tworzenie i uruchamianie kontenerów na dowolnej maszynie deweloperskiej, a następnie przechowywanie lub udostępnianie obrazów kontenerów za pośrednictwem rejestru kontenerów, takiego jak Docker Hub lub Azure Container Registry.

Gdy aplikacje stają się coraz większe, obejmując wiele kontenerów wdrożonych na wielu serwerach, ich obsługa staje się coraz bardziej złożona. Chociaż platforma Docker zapewnia otwarty standard tworzenia pakietów konteneryzowanych aplikacji i ich dystrybucji, potencjalne komplikacje mogą szybko narastać. W jaki sposób koordynować i planować działanie wielu kontenerów? W jaki sposób różne kontenery w aplikacji komunikują się ze sobą? W jaki sposób skalować wiele wystąpień kontenerów? Rozwiązanie tych problemów ułatwia platforma Kubernetes.

Platforma Kubernetes i orkiestracja kontenerów

Platforma Kubernetes to oprogramowanie do orkiestracji typu open source, które udostępnia interfejs API do kontrolowania, gdzie i w jaki sposób uruchamiane są te kontenery. Platforma ta umożliwia uruchamianie kontenerów i obciążeń platformy Docker oraz ułatwia rozwiązywanie komplikacji występujących podczas próby skalowania wielu kontenerów wdrożonych na wielu serwerach.

Dzięki platformie Kubernetes możesz orkiestrować klaster maszyn wirtualnych i zaplanować uruchamianie kontenerów na tych maszynach wirtualnych na podstawie ich dostępnych zasobów obliczeniowych oraz wymagań poszczególnych kontenerów dotyczących zasobów. Kontenery są zgrupowane w zasobnikach — podstawowej jednostce operacyjnej platformy Kubernetes. Możliwe jest skalowanie tych kontenerów i zasobników do żądanego stanu oraz zarządzanie ich cyklem życia, aby zapewnić poprawne działanie swoich aplikacji.

Jaka jest różnica między platformami Kubernetes i Docker?

Platforma Kubernetes to oprogramowanie do orkiestracji typu open source, które udostępnia interfejs API do kontrolowania, gdzie i w jaki sposób uruchamiane są te kontenery. Platforma ta umożliwia uruchamianie kontenerów i obciążeń platformy Docker oraz ułatwia rozwiązywanie komplikacji występujących podczas próby skalowania wielu kontenerów wdrożonych na wielu serwerach.

Dzięki platformie Kubernetes możesz orkiestrować klaster maszyn wirtualnych i zaplanować uruchamianie kontenerów na tych maszynach wirtualnych na podstawie ich dostępnych zasobów obliczeniowych oraz wymagań poszczególnych kontenerów dotyczących zasobów. Kontenery są zgrupowane w zasobnikach — podstawowej jednostce operacyjnej platformy Kubernetes. Możliwe jest skalowanie tych kontenerów i zasobników do żądanego stanu oraz zarządzanie ich cyklem życia, aby zapewnić poprawne działanie swoich aplikacji.

Platformy Kubernetes i Docker — najlepiej działają razem

Kontenery zapewniają możliwość jednorazowego utworzenia kodu, a następnie uruchamiania go w dowolnym miejscu, natomiast platforma Kubernetes pozwala orkiestrować i zarządzać wszystkimi zasobami kontenerów z poziomu jednej płaszczyzny kontroli. Ułatwia to wykonywanie operacji sieciowych, równoważenie obciążenia, zabezpieczanie oraz skalowanie we wszystkich węzłów platformy Kubernetes, w ramach których są uruchamiane kontenery. Platforma Kubernetes ma również wbudowane mechanizmy izolacji, takie jak przestrzenie nazw, które umożliwiają grupowanie zasobów kontenerów według uprawnień dostępu, środowisk przejściowych i nie tylko. Te konstrukcje ułatwiają firmom IT zapewnianie deweloperom samoobsługowego dostępu do zasobów oraz umożliwiają deweloperom współpracę w ramach nawet najbardziej skomplikowanej architektury mikrousług bez potrzeby tworzenia modelu całej aplikacji w ich środowisku deweloperskim. Połączenie praktyk DevOps z kontenerami oraz platformą Kubernetes pozwala zapewnić podstawę dla architektury mikrousług cechującą się możliwością szybkiego dostarczania i skalowalną orkiestracją aplikacji natywnych dla chmury.

W skrócie możesz używać platform Kubernetes i Docker, aby:

  • Zapewnić większą niezawodność infrastruktury i dostępność aplikacji. Twoja aplikacja będzie w trybie online nawet wtedy, gdy niektóre węzły przejdą w tryb offline.
  • Zapewnić lepszą skalowalność aplikacji. Jeśli Twoja aplikacja jest coraz bardziej obciążona i konieczne jest przeprowadzenie zwiększania skali w poziomie w celu udostępnienia lepszego środowiska użytkownika, wystarczy jedynie uruchomić więcej kontenerów lub dodać więcej węzłów w klastrze Kubernetes.

Platforma Kubernetes współdziała z platformą Docker. Platforma Docker zapewnia otwarty standard pakowania i dystrybucji aplikacji konteneryzowanych. Za pomocą platformy Docker możesz tworzyć i uruchamiać kontenery, a także przechowywać i udostępniać obrazy kontenerów. W łatwy sposób można uruchomić kompilację platformy Docker w ramach klastra Kubernetes, ale sama platforma Kubernetes nie jest kompletnym rozwiązaniem. Aby zoptymalizować działanie platformy Kubernetes w środowisku produkcyjnym, zaimplementuj dodatkowe narzędzia i usługi w celu zarządzania zabezpieczeniami, nadzorem i tożsamością oraz uzyskiwania dostępu, korzystając z przepływów pracy ciągłej integracji/ciągłego wdrażania oraz innych praktyk DevOps.

Architektury rozwiązań platform Kubernetes i Docker w środowisku produkcyjnym

Diagram architektury mikrousług z rozwiązaniem usługi AKS

Mikrousługi z usługą AKS

Skorzystaj z usługi AKS, aby uprościć wdrażanie architektury opartej na mikrousługach i zarządzanie nią. Usługa AKS optymalizuje skalowanie w poziomie, mechanizm samonaprawiania, równoważenie obciążenia i zarządzanie wpisami tajnymi.

Diagram architektury rozwiązania z bezpieczną metodyką DevOps dla usługi AKS

Bezpieczne praktyki DevOps dla usługi AKS

Metodyka DevOps i platforma Kubernetes lepiej działają razem. Dzięki zaimplementowaniu bezpiecznej metodyki DevOps razem z platformą Kubernetes na platformie Azure możesz osiągnąć równowagę między szybkością a bezpieczeństwem i szybciej dostarczać kod na dużą skalę.

Wykorzystaj mocne strony platformy Kubernetes dzięki platformie Azure

Wdrażanie konteneryzowanych aplikacji i zarządzanie nimi jest łatwe za pomocą usługi Azure Kubernetes Service (AKS). Oferuje ona bezserwerową platformę Kubernetes, zintegrowane środowisko ciągłej integracji/ciągłego wdrażania oraz zabezpieczenia i nadzór klasy korporacyjnej. Połącz zespoły deweloperskie i operacyjne na jednej platformie, aby szybko i pewnie tworzyły, dostarczały i skalowały aplikacje.

Wprowadzenie do platform Kubernetes i Docker