Kubernetes: Wprowadzenie

Dowiedz się, jak rozpocząć wdrażanie konteneryzowanych aplikacji i zarządzanie nimi

Podstawy kontenerów

Przed rozpoczęciem pracy z platformą Kubernetes istotne jest, aby zrozumieć sposób działania konteneryzacji.

W taki sam sposób, jak branża wysyłkowa korzysta z fizycznych kontenerów do oddzielania różnych towarów w pociągach, ciężarówkach, samolotach i na statkach, w ramach technologii tworzenia oprogramowania coraz częściej używana jest koncepcja nazywana konteneryzacją.

Za pomocą pojedynczego pakietu oprogramowania, określanego jako kontener, tworzony jest pakiet kodu aplikacji wraz z powiązanymi plikami konfiguracyjnymi, bibliotekami i zależnościami wymaganymi do uruchomienia aplikacji. Umożliwia to deweloperom i informatykom szybsze i bezpieczniejsze tworzenie oraz wrażanie aplikacji.

Konteneryzacja oferuje korzyści związane z izolacją, przenośnością, zwinnością, skalowalnością i kontrolą podczas całego przepływu cyklu życia aplikacji. Kontener, który nie jest związany z systemem operacyjnym hosta, jest samodzielny i staje się bardziej przenośny — może być uruchamiany w sposób jednolity i spójny w ramach dowolnej architektury, na każdej platformie lub w chmurze.

Składniki platformy Kubernetes i jej koncepcje

Klaster

Patrząc najbardziej ogólnie, platforma Kubernetes jest zorganizowana jako klaster maszyn wirtualnych lub lokalnych. Maszyny te, nazywane węzłami, współdzielą zasoby obliczeniowe, sieciowe i magazynowe. Każdy klaster zawiera jeden węzeł główny połączony z co najmniej jednym węzłem roboczym. Węzły robocze są odpowiedzialne za uruchamianie grup konteneryzowanych aplikacji i obciążeń, zwanych zasobnikami, a węzeł główny zarządza, w ramach których węzłów roboczych są uruchamiane poszczególne zasobniki.

Omówienie platformy Kubernetes

Płaszczyzna kontroli

Aby węzeł główny komunikował się z węzłami roboczymi oraz aby użytkownik komunikował się z węzłem głównym, na platformie Kubernetes dostępne są różne obiekty, które razem tworzą płaszczyznę sterowania.

Deweloperzy i operatorzy wchodzą w interakcję z klastrem przede wszystkim za pośrednictwem węzła głównego przy użyciu narzędzia kubectl, czyli interfejsu wiersza polecenia instalowanego w ich lokalnym systemie operacyjnym. Polecenia wydawane względem klastra za pomocą narzędzia kubectl są odbierane przez serwer kube-apiserver, czyli interfejs API platformy Kubernetes działający w ramach węzła głównego. Serwer kube-apiserver następnie zapewnia komunikację żądań z narzędziem kube-controller-manager w węźle głównym, które z kolei jest odpowiedzialne za obsługę operacji węzła roboczego. Polecenia z węzła głównego są odbierane przez element kubelet w węzłach roboczych.

Wdrażanie aplikacji i obciążeń

Następnym krokiem do rozpoczęcia pracy z platformą Kubernetes jest wdrożenie aplikacji i obciążeń. Węzeł główny stale utrzymuje bieżący stan klastra Kubernetes i konfiguracji w bazie danych etcd, czyli bazie danych magazynu wartości kluczy. Aby uruchomić zasobniki z konteneryzowanymi aplikacjami i obciążeniami, opiszesz żądany stan dla klastra w formie pliku YAML. Narzędzie kube-controller-manager przyjmuje plik YAML i deleguje do narzędzia kube-scheduler zadanie określenia, które węzły robocze mają być uruchomione przez aplikację lub obciążenie na podstawie wstępnie zdefiniowanych ograniczeń. Pracując razem z elementami kubelet poszczególnych węzłów roboczych, narzędzie kube-scheduler uruchamia zasobniki, obserwuje stan maszyn i jest całkowicie odpowiedzialne za zarządzanie zasobami.

Zobacz, jak działa narzędzie kube-scheduler

Podczas wdrażania na platformie Kubernetes opisywany przez Ciebie żądany stan staje się aktualnym stanem w bazie danych etcd, ale poprzedni stan nie zostaje utracony. Platforma Kubernetes obsługuje wycofywanie, aktualizacje stopniowe oraz zatrzymywanie wprowadzania. Dodatkowo wdrożenia używają zestawów ReplicaSet w tle w celu zapewnienia, że uruchomiona jest określona liczba identycznie skonfigurowanych zasobników. Jeśli działanie co najmniej jednego zasobnika zakończy się niepowodzeniem, zostanie on zastąpiony przez zestaw ReplicaSet. W tym kontekście platforma Kubernetes jest określana jako samonaprawialna.

Tworzenie struktury środowisk platformy Kubernetes i zabezpieczanie ich

Po wdrożeniu aplikacji lub obciążenia ostatnim krokiem przed rozpoczęciem pracy z platformą Kubernetes jest zorganizowanie aplikacji lub obciążenia oraz określenie, kto ma mieć do nich dostęp. Tworząc przestrzeń nazw, czyli metodę grupowania w ramach platformy Kubernetes, zapewniasz usługom, zasobnikom, kontrolerom i woluminom łatwą możliwość wspólnej pracy przy jednoczesnym odizolowaniu ich od pozostałych elementów klastra. Możesz również użyć koncepcji platformy Kubernetes związanej z przestrzeniami nazw w celu zastosowania spójnych konfiguracji zasobów.

Zobacz, jak działa zarządzanie konfiguracją

Dodatkowo każdy węzeł roboczy zawiera proxy kube-proxy, które określa sposób uzyskiwania dostępu z zewnątrz do różnych składników klastra. Przechowuj poufne informacje niepubliczne, takie jak tokeny, certyfikaty i hasła zakodowane do momentu uruchomienia w ramach wpisów tajnych, czyli kolejnym obiekcie platformy Kubernetes.

Zobacz, jak działa zarządzanie wpisami tajnymi

Na koniec, korzystając z kontroli dostępu na podstawie ról, określ, dla kogo mają być widoczne określone składniki klastra i kto może wchodzić z nimi w interakcję.

Zobacz, jak działa kontrola dostępu na podstawie ról

Poznaj więcej szczegółów technicznych dotyczących platformy Kubernetes

Zobacz dokumentację platformy Kubernetes

Zaimplementuj w pełni zarządzane rozwiązanie Kubernetes

Zarządzanie hostowanym środowiskiem Kubernetes za pomocą usługi Azure Kubernetes Service (AKS). Wdrażaj konteneryzowane aplikacje i konserwuj je bez używania środowiska orkiestracji kontenerów. Aprowizuj, uaktualniaj i skaluj zasoby na żądanie — bez konieczności przechodzenia Twoich aplikacji w tryb offline.

Przewodnik Szybki start dotyczący platformy Kubernetes: rozpocznij pracę w ciągu 50 dni

Użyj tego przewodnika krok po kroku, aby rozpocząć pracę na platformie Kubernetes i zdobyć praktyczne doświadczenie związane ze składnikami, możliwościami i rozwiązaniami platformy Kubernetes.

Gdy się przygotujesz, wypróbuj platformę Kubernetes bezpłatnie na platformie Azure