Co to jest usługa Azure Kubernetes Service?
Zacznijmy od kilku definicji i krótkiego przewodnika po usłudze Azure Kubernetes Service (AKS). To omówienie zawiera informacje ułatwiające podjęcie decyzji, czy usługa AKS jest dobrą platformą dla strategii zarządzania konteneryzacją.
Co to jest kontener?
Kontener to niepodzielna jednostka oprogramowania, która opakowuje kod, zależności i konfigurację określonej aplikacji. Dzięki kontenerom można podzielić monolityczne aplikacje na poszczególne usługi składające się na rozwiązanie. Ta zmiana architektury naszej aplikacji umożliwia wdrażanie tych oddzielnych usług za pośrednictwem kontenerów.
Dlaczego warto korzystać z kontenerów?
Załóżmy, że twoje rozwiązanie do śledzenia zasobów zawiera trzy główne aplikacje:
Witryna internetowa do śledzenia zawierająca mapy i informacje o śledzonych zasobach.
Usługa przetwarzania danych, która zbiera i przetwarza informacje wysyłane z śledzonych zasobów.
Baza danych MSSQL do przechowywania informacji o klientach przechwyconych z witryny internetowej.
Zdajesz sobie sprawę, że aby zaspokoić zapotrzebowanie klientów, musisz skalować rozwiązanie w poziomie.
Maszyny wirtualne
Jedną z opcji jest wdrożenie nowej maszyny wirtualnej dla każdej aplikacji hostowanej w wielu regionach. Następnie skopiuj aplikacje do nowych maszyn wirtualnych. Jednak to sprawia, że odpowiadasz za zarządzanie każdą używaną maszyną wirtualną.
Obciążenie związane z konserwacją zwiększa się w miarę skalowania. Wersje i zależności systemu operacyjnego maszyny wirtualnej dla każdej aplikacji muszą być aprowidowane i skonfigurowane do dopasowania. W przypadku stosowania uaktualnień dla aplikacji, które mają wpływ na system operacyjny i istotne zmiany, istnieją środki ostrożności. Jeśli podczas uaktualniania wystąpią jakiekolwiek błędy, wymagane jest wycofanie instalacji i powoduje zakłócenia, takie jak przestój lub opóźnienia.
Wdrożenie na poprzednim diagramie jest kłopotliwe, czasami podatne na błędy i nie można łatwo skalować pojedynczych usług. Na przykład nie można łatwo skalować tylko usługi buforowania używanej w aplikacji internetowej. Kontenery pomagają rozwiązać tego rodzaju problemy.
Z koncepcji kontenerów wynikają trzy główne korzyści:
Niezmienność — niezmienny charakter kontenera umożliwia jego wdrożenie i niezawodne uruchamianie przy użyciu tego samego zachowania z jednego środowiska obliczeniowego do innego. Obraz kontenera testowany w środowisku kontroli jakości może być bez modyfikacji wdrożony w środowisku produkcyjnym.
Mniejszy rozmiar — kontener jest podobny do maszyny wirtualnej, ale bez jądra dla każdej maszyny. Zamiast tego współużytkują jądro hosta. Maszyny wirtualne używają dużego pliku obrazu do przechowywania zarówno systemu operacyjnego, jak i aplikacji, którą chcesz uruchomić. Dla porównania kontener nie wymaga systemu operacyjnego i zawiera tylko aplikację.
Lightweight — kontener zawsze korzysta z zainstalowanego hosta systemu operacyjnego dla usług specyficznych dla jądra. Uproszczona właściwość sprawia, że kontenery są mniej intensywnie obciążające zasoby, dlatego instalowanie wielu kontenerów jest możliwe w tym samym środowisku obliczeniowym.
Uruchamianie jest szybkie — uruchamianie kontenerów trwa kilka sekund, w przeciwieństwie do maszyn wirtualnych, co może potrwać kilka minut.
Te korzyści sprawiają, że kontenery są popularnym wyborem dla deweloperów i operacji IT oraz dlaczego wiele z nich przełącza się z maszyn wirtualnych.
Na czym polega zarządzanie kontenerami?
Mimo że funkcjonalnie kontenery są podobne do maszyn wirtualnych, ich cele różnią się. Kontener ma odrębny cykl życia, który istnieje jako maszyna tymczasowa. Jego stan przechodzi przez etapy oczekujące, uruchomione i zakończone. Ten cykl życia sprawia, że kontenery są bardziej jednorazowe i wpływają na sposób, w jaki deweloperzy i operacje IT myślą o zarządzaniu dużymi połączonymi aplikacjami. Zarządzanie kontenerami obejmuje wdrażanie, uaktualnianie, monitorowanie i usuwanie kontenerów.
Załóżmy na przykład, że w południe jest więcej ruchu w witrynie, więc potrzebujesz więcej wystąpień usługi buforowania lokacji w celu zarządzania wydajnością. Planujesz rozwiązać ten problem, dodając więcej kontenerów usługi buforowania.
Nadszedł czas, aby wdrożyć nową wersję usługi buforowania. Jak zaktualizować wszystkie kontenery? Jak usunąć wszystkie starsze wersje?
Te typy pytań dotyczących równoważenia obciążenia wymagają systemu do zarządzania wdrożeniem kontenera.
Co to jest platforma Kubernetes?
Kubernetes to przenośna, rozszerzalna platforma typu open-source służąca do automatyzowania wdrażania i skalowania obciążeń konteneryzowanych oraz zarządzania nimi. Platforma Kubernetes oddziela złożone zarządzanie kontenerami i udostępnia konfigurację deklaratywną do organizowania kontenerów w różnych środowiskach obliczeniowych. Ta platforma orkiestracji zapewnia taką samą łatwość użycia i elastyczność jak w przypadku ofert typu platforma jako usługa (PaaS) i infrastruktura jako usługa (IaaS).
Rozwiązanie Kubernetes umożliwia wyświetlanie centrum danych jako jednego dużego komputera. Nie trzeba się martwić o sposób i miejsce wdrażania kontenerów tylko o wdrażanie i skalowanie naszych aplikacji zgodnie z potrzebami.
Poniżej przedstawiono kilka dodatkowych aspektów, które należy wziąć pod uwagę na platformie Kubernetes:
Rozwiązanie Kubernetes nie jest pełną ofertą PaaS. Działa ono na poziomie kontenera i oferuje tylko wspólny zestaw funkcji PaaS.
Platforma Kubernetes nie jest monolitem. Nie można jej postrzegać jako jednej zainstalowanej aplikacji. Niektóre aspekty, takie jak wdrażanie, skalowanie, równoważenie obciążenia, rejestrowanie i monitorowanie, są opcjonalne.
Platforma Kubernetes nie ogranicza typów aplikacji do uruchomienia. Jeśli aplikacja może działać w kontenerze, działa na platformie Kubernetes.
Deweloperzy muszą zrozumieć pojęcia, takie jak architektura mikrousług, aby optymalnie wykorzystać rozwiązania kontenerów.
Platforma Kubernetes nie zapewnia oprogramowania pośredniczącego, struktur przetwarzania danych, baz danych, pamięci podręcznych ani systemów magazynowania klastra. Wszystkie te elementy działają jako kontenery lub w ramach innej oferty usługi.
Wdrożenie rozwiązania Kubernetes jest konfigurowane jako klaster. Klaster składa się z co najmniej jednej maszyny podstawowej lub płaszczyzny sterowania oraz co najmniej jednej maszyny roboczej. W przypadku wdrożeń produkcyjnych preferowaną konfiguracją jest wdrożenie wysokiej dostępności z trzema do pięciu replikowanych maszyn płaszczyzny sterowania, które są określane jako węzły lub węzły agenta.
Dzięki wszystkim korzyściom, jakie otrzymujesz dzięki rozwiązaniu Kubernetes, odpowiadasz za znalezienie najlepszego rozwiązania, które odpowiada Twoim potrzebom w zakresie tych aspektów. Pamiętaj, że odpowiadasz za utrzymanie klastra Kubernetes. To na Tobie spoczywa na przykład odpowiedzialność za zarządzanie uaktualnieniami systemu operacyjnego oraz instalację i uaktualnienia platformy Kubernetes. To Ty zarządzasz również konfiguracją sprzętową maszyn hosta, na przykład siecią, pamięcią i magazynem.
Uwaga
Nazwa Kubernetes jest czasami skracana do K8s. Cyfra 8 reprezentuje osiem znaków między literami K i s w wyrazie K[ubernete]s.
Co to jest usługa Azure Kubernetes Service (AKS)?
Usługa AKS zarządza hostowanym środowiskiem Kubernetes i ułatwia wdrażanie konteneryzowanych aplikacji na platformie Azure i zarządzanie nimi. W środowisku AKS są włączone niektóre funkcje, takie jak zautomatyzowane aktualizacje, samonaprawianie i łatwe skalowanie. Platforma Azure zarządza bezpłatnie płaszczyzną sterowania klastra Kubernetes. Ty zarządzasz węzłami agenta w klastrze i płacisz tylko za maszyny wirtualne, na których działają węzły.
Klaster można utworzyć i zarządzać nim w witrynie Azure Portal lub za pomocą interfejsu wiersza polecenia platformy Azure. Podczas tworzenia klastra istnieją szablony usługi Resource Manager do automatyzowania tworzenia klastra. Dzięki tym szablonom masz dostęp do funkcji, takich jak zaawansowane opcje sieci, tożsamość Firmy Microsoft i monitorowanie zasobów. Następnie można skonfigurować wyzwalacze i zdarzenia w celu zautomatyzowania wdrażania klastra w wielu scenariuszach.
Dzięki usłudze AKS możesz korzystać z zalet rozwiązania Kubernetes typu open source bez dodatkowej złożoności lub nakładu pracy operacyjnej, które mogą wiązać się tylko z użyciem platformy Kubernetes.