This is the Trace Id: 67f1c996b04310a9751bcac4c9371ee1
Przejdź do głównej zawartości
Azure
tło gradientu

Co to jest platforma Kubernetes?

Dowiedz się, jak korzystać z kontenerów poprzez automatyzację wdrażania, zarządzania i skalowania.

Definicja platformy Kubernetes

Kubernetes to oprogramowanie typu open-source, które automatyzuje wdrażanie, zarządzanie i skalowanie konteneryzowanych aplikacji. Rozwiązanie to koordynuje klastry maszyn wirtualnych, planuje działanie kontenerów oraz zapewnia samonaprawę, równoważenie obciążenia i przenośność między środowiskami.

Kluczowe wnioski

  • Kubernetes to platforma, która ułatwia uruchamianie, zarządzanie i skalowanie obciążeń kontenerowych na wielu serwerach w klastrze.
  • Grupuje kontenery w zasobniki z planowaniem płaszczyzny sterowania i kontrolerami zachowującymi żądany stan.
  • Obsługuje odnajdywanie usług, równoważenie obciążenia, skalowanie automatyczne i samonaprawianie (ponowne uruchomienia, zamiany i ponowne zaplanowanie).
  • Zespoły wykorzystują to narzędzie do wdrażania przenośnych wersji w różnych środowiskach oraz do monitorowania wskaźników dotyczących kondycji i stabilności.

Platforma Kubernetes bez tajemnic

Kubernetes to oprogramowanie typu open-source wykorzystywane przez specjalistów DevOps do wdrażania, zarządzania i skalowania kontenerów w klastrze. Docker – kolejna technologia typu open source. Jest to domyślny format plików kontenerowych, powszechnie stosowany w połączeniu z Kubernetes.

Kontenery

Kontenery zawierają aplikację wraz z jej zależnościami i konfiguracją, dzięki czemu może ona działać w spójny sposób w różnych środowiskach. W miarę rozwoju aplikacji może się okazać, że uruchamiasz wiele kontenerów na wielu serwerach, a ręczna koordynacja tego wszystkiego staje się skomplikowana. Platforma Kubernetes rozwiązuje ten problem dzięki interfejsowi API typu open-source i systemowi kontroli, który decyduje o tym, co powinno być uruchamiane w miejscu, i utrzymuje jego działanie.

Co platforma Kubernetes robi dla Ciebie

Planowanie i przydzielanie zasobów

Kubernetes koordynuje pracę klastrów maszyn wirtualnych i planuje uruchamianie kontenerów w oparciu o dostępne zasoby obliczeniowe oraz zapotrzebowanie każdego kontenera na zasoby.

Odnajdywanie usług i równoważenie obciążenia

Platforma Kubernetes zarządza odnajdywaniem usług i równoważeniem obciążenia, dzięki czemu ruch może być kierowany do odpowiednich zasobników, nawet gdy zasobniki zmieniają się wraz z upływem czasu.

Skalowanie w celu dopasowania do zapotrzebowania

Platforma Kubernetes skaluje obciążenia na podstawie użycia zasobów obliczeniowych i żądanego stanu.

Samonaprawianie w przypadku awarii

Platforma Kubernetes sprawdza kondycję zasobów i może ponownie uruchamiać lub replikować kontenery w przypadku wystąpienia problemów. Ponownie uruchamia lub zamienia kontenery zakończone niepowodzeniem i wstrzymuje ruch, dopóki obciążenia nie będą gotowe.

Obsługuje kontrolowane zmiany

Platforma Kubernetes obsługuje wzorce wdrażania do uruchamiania aplikacji, w tym zautomatyzowane wdrożenia i wycofywania na podstawie żądanego stanu opisanego przez Ciebie.

Konfiguracja i zarządzanie wpisami tajnymi

Platforma Kubernetes zapewnia zarządzanie wpisami tajnymi i konfiguracją dla poufnych informacji, takich jak hasła lub tokeny.

Orkiestracja magazynu

Platforma Kubernetes może instalować wybrane systemy magazynowania (na przykład magazyn lokalny lub opcje chmury publicznej) w oparciu o model orkiestracji magazynu platformy Kubernetes.

Słownik szybkich obiektów

Platforma Kubernetes jest oparta na obiektach interfejsu API, zasobach, które deklarujesz i którymi zarządzasz. Oto kilka z nich:

  • Zasobnik: jednostka podstawowa, która uruchamia co najmniej jeden kontener.

  • Usługa: stabilny sposób uwidaczniania aplikacji i kierowania ruchu do zmieniających się zasobników.

  • Wdrożenie: sposób opisania żądanego stanu aplikacji i zaktualizowania go w czasie (często związany z wprowadzaniem i wycofywaniem).

  • Węzeł: maszyna w klastrze, na której działają zasobniki.

  • Płaszczyzna sterowania: składniki, które zarządzają stanem klastra i planowaniem decyzji.

Jak to wszystko pasuje do siebie

  1. Zadeklaruj żądany stan dla aplikacji (co powinno zostać uruchomione, ile kopii, wymaga zasobu).

  2. Płaszczyzna sterowania rejestruje i działa na tym żądaniu za pośrednictwem interfejsu API platformy Kubernetes i magazynu zapasowego.

  3. Harmonogram umieszcza zasobniki w węzłach z wystarczającą ilością zasobów.

  4. Składniki węzła uruchamiają obciążenie.

  5. Kontrolery są stale uzgadniane, aby rzeczywisty stan był zgodny z żądanym stanem – skalowanie, zastępowanie i aktualizowanie obciążeń zgodnie z potrzebami.

Architektura platformy Kubernetes

Główne bloki konstrukcyjne

Klaster: płaszczyzna sterowania i węzły procesu roboczego

Klaster Kubernetes jest zwykle opisany w dwóch częściach: płaszczyźnie sterowania, która zarządza klastrem, i węzłach roboczych, które uruchamiają obciążenia.

Składniki płaszczyzny sterowania

Te składniki zarządzają ogólnym stanem klastra:

  • kube-apiserver: udostępnia interfejs API protokołu HTTP systemu Kubernetes (główny punkt przyjmowania żądań).

  • etcd: spójny magazyn klucz-wartość o wysokiej dostępności dla danych klastra.

  • kube-scheduler: znajduje zasobniki wymagające umieszczenia i przypisuje je do węzła.

  • kube-controller-manager: uruchamia kontrolery uzgadniające rzeczywisty stan z żądanym stanem.

  • cloud-controller-manager (opcjonalnie): łączy platformę Kubernetes z logiką kontroli specyficzną dla dostawcy chmury.

Składniki węzła

Każdy węzeł roboczy uruchamia oprogramowanie, które obsługuje zasobniki i reguły sieciowe:

  • kubelet: zapewnia, że zasobniki są uruchomione w węźle, w tym w ich kontenerach.

  • kube-proxy (opcjonalnie): obsługuje reguły sieciowe do obsługi usług.

  • środowisko uruchomieniowe kontenera: uruchamia kontenery w węźle.

Zasobniki: podstawowa jednostka pracy

Platforma Kubernetes nie planuje pojedynczych kontenerów bezpośrednio w abstrakcie. Grupuje co najmniej jeden kontener w zasobnik, który staje się podstawową jednostką operacyjną. Zasobniki są następnie skalowane w górę lub w dół w kierunku zdefiniowanego żądanego stanu.

W praktyce oznacza to:

  1. Opisujesz aplikację, którą chcesz uruchomić.

  2. Platforma Kubernetes planuje użycie zasobników na maszynach z dostępnymi zasobnikami obliczeniowymi.

  3. Kontrolery utrzymują, że klaster przechodzi w kierunku żądanego stanu.

Sieć usług

Zasobniki mogą pojawiać się i znikać, dzięki czemu platforma Kubernetes udostępnia elementy pierwotne – podstawowe bloki konstrukcyjne, które łączysz w celu opisywania i uruchamiania aplikacji w klastrze – które oferują stabilne sposoby uzyskiwania dostępu do obciążeń.

Podstawowe informacje o sieci zasobnika

Każdy zasobnik otrzymuje własny adres IP całego klastra, a zasobniki mogą komunikować się między węzłami bez translacji adresów sieciowych (NAT) w modelu sieci Kubernetes.

Usługi

Interfejs API usługi zapewnia stabilny adres IP lub nazwę hosta dla zestawu zasobników zaplecza, nawet gdy poszczególne zasobniki zmieniają się wraz z upływem czasu.

EndpointSlice

Platforma Kubernetes przechowuje obiekty wycinków punktów końcowych w celu śledzenia zasobników, które obecnie obsługują usługę.

Interfejs API ruchu przychodzącego/bramy

Aby uwidoczniać usługi klientom spoza klastra, platforma Kubernetes obsługuje interfejs API bramy (i ruch przychodzący jako poprzednik).

Usługi modułu równoważenia obciążenia

Niektóre środowiska mogą uwidaczniać usługę zewnętrznie przy użyciu typu usługi LoadBalancer.

Dodatki, które można uruchomić w klastrze

Klastry platformy Kubernetes często zawierają dodatki, które rozszerzają funkcjonalność poza podstawowe składniki. Przykłady obejmują:

  • DNS na potrzeby rozpoznawania nazw w całym klastrze.

  • Internetowy interfejs użytkownika (pulpit nawigacyjny) do zarządzania klastrem.

  • Monitorowanie zasobów kontenera dla kolekcji metryk.

  • Rejestrowanie na poziomie klastra w celu centralnego zbierania dzienników.

Jak działa platforma Kubernetes?

System Kubernetes uruchamia aplikacje w kontenerach w klastrze maszyn i utrzymuje je w stanie, który opisujesz. W tym celu należy umieścić pracę na odpowiednich maszynach, kierować ruch do odpowiednich miejsc oraz obserwować błędy i zmiany.

Podstawowy przepływ

1. Opisujesz, co chcesz uruchomić

Większość obciążeń w systemie Kubernetes powstaje w oparciu o zadeklarowany „stan pożądany” (co powinno działać, ile kopii oraz w jaki sposób powinny być udostępnione). Platforma Kubernetes jest oparta na deklaratywnej konfiguracji i automatyzacji.

2. Platforma Kubernetes decyduje, gdzie ma być uruchamiana

Platforma Kubernetes planuje kontenery na maszynach w klastrze na podstawie dostępnych zasobów obliczeniowych oraz wymagania poszczególnych kontenerów. Kontenery są uruchamiane wewnątrz zasobników, czyli jednostki, którą platforma Kubernetes umieszcza na maszynie.

3. Platforma Kubernetes sprawdza rzeczywistość w porównaniu z żądanym stanem

Kontrolery obserwują klaster i pracują nad przeniesieniem bieżącego stanu bliżej żądanego stanu przy użyciu serwera interfejsu API do wprowadzania zmian.

Planowanie kontenerów i codzienne zarządzanie nimi

Planowanie to pytanie: „Gdzie to powinno zostać uruchomione?” decyzja.

1. Zasobniki są zaplanowane, a nie poszczególne kontenery

Platforma Kubernetes grupuje kontenery w zasobniki, a następnie umieszcza te zasobniki na maszynach.

2. Harmonogram przypisuje zasobniki do odpowiedniego węzła

Narzędzie kube-scheduler wyszukuje zasobniki, które nie są jeszcze przypisane, i wybiera dla nich węzeł.

3. Agenci węzłów utrzymują działanie zasobników

W każdym węźle narzędzie kubelet zapewnia, że zasobniki są uruchomione (w tym ich kontenery).

Równoważenie obciążenia i odnajdywanie usług

Kontenery i zasobniki można tworzyć, przenosić lub zamieniać, więc aplikacje potrzebują stabilnych sposobów znajdowania siebie nawzajem.

Odnajdywanie usług i równoważenie obciążenia to wbudowane zachowania

Platforma Kubernetes zarządza odnajdywaniem usług i używa równoważenia obciążenia, dzięki czemu ruch może być kierowany nawet w miarę zmiany zasobników w czasie.

Usługi zapewniają stabilny adres dla zmieniającego się zestawu zasobników

Interfejs API usługi zapewnia stabilny adres IP lub nazwę hosta dla usługi wspieranej przez co najmniej jeden zasobnik, a platforma Kubernetes śledzi zasobniki zapasowe za pośrednictwem obiektów EndpointSlice.

Aktualizacje routingu ruchu w miarę zmiany zasobników

Gdy zasobniki za usługą ulegną zmianie, routing usługi dostosowuje się tak, aby ruch nadal docierał do bieżących zapleczy.

Skalowanie aplikacji (i dlaczego „stan pożądany” ma znaczenie)

Platforma Kubernetes może skalować obciążenia w kierunku ustawionego stanu, w tym skalowania na podstawie wykorzystania zasobów obliczeniowych.

Typowe pomysły dotyczące skalowania obejmują:

  • Więcej replik (więcej zasobników) do obsługi większego zapotrzebowania.

  • Mniej replik w przypadku spadku zapotrzebowania.

  • Śledzenie zasobów, dzięki czemu decyzje dotyczące umieszczania odzwierciedlają potrzeby procesora CPU i pamięci.

Wiąże się to z modelem „stanu pożądanego”: określasz cel, a kontrolery nieustannie dążą do jego osiągnięcia.

Samonaprawianie: co się dzieje, gdy coś się psuje

Platforma Kubernetes obejmuje samonaprawiające się zachowania mające na celu utrzymanie kondycji i dostępności obciążeń. Należą do nich:

  • Ponowne uruchamianie kontenerów zakończonych niepowodzeniem (ponowne uruchomienia na poziomie kontenera).

  • Zastępowanie zasobników, które zakończyły się niepowodzeniem w celu zachowania żądanej liczby replik (zamiana repliki).

  • Zmienianie harmonogramu obciążeń, gdy węzły stają się niedostępne.

  • Usuwanie zasobników zakończonych niepowodzeniem z punktów końcowych usługi, więc ruch jest kierowany tylko do zasobników w dobrej kondycji (równoważenie obciążenia dla usług).

Samonaprawianie sprawdza kondycję kontenera i uruchamia je ponownie lub replikuje w przypadku wystąpienia problemów.

Rola kluczowych wskaźników wydajności platformy Kubernetes

Kluczowe wskaźniki wydajności (kluczowe wskaźniki wydajności lub metryki) są używane do zrozumienia kondycji klastra i zachowania obciążenia.

Skąd biorą się wskaźniki KPI

  • Składniki systemu Kubernetes emitują metryki (format Prometheus), które są przydatne w przypadku pulpitów nawigacyjnych i alertów.

  • Metryki są zazwyczaj dostępne pod punktem końcowym HTTP /metrics danego składnika, w tym takich składników jak kube-apiserver, kube-scheduler, kubelet, kube-proxy oraz kube-controller-manager.

Przykłady kluczowych wskaźników wydajności, które ułatwiają wykrywanie

  • Sygnały kondycji klastra (metryki na poziomie składnika i wzorce błędów)

  • Stabilność obciążenia (na przykład częste ponowne uruchamianie lub zastępowanie)

  • Obciążenie pojemnością (alokacja zasobów a zapotrzebowanie powiązane z decyzjami dotyczącymi skalowania)

Dlaczego ma to znaczenie w codziennych operacjach

Monitorowanie zapewnia zespołom pełniejszy wgląd w zasoby klastra, interfejs API Kubernetes, kontenery i dzienniki, co skraca czas reakcji na zgłaszane problemy i wprowadzanie poprawek.

Korzyści i przypadki użycia

Rozwiązanie Kubernetes jest często wybierane, gdy zespoły potrzebują spójnego sposobu uruchamiania wielu kontenerów na wielu maszynach, przy czym platforma zajmuje się kierowaniem ruchem, skalowaniem i odzyskiwaniem danych.

Skalowalność

System Kubernetes umożliwia skalowanie obciążeń, czyli zwiększanie lub zmniejszanie ich w miarę zmian zapotrzebowania, w kierunku stanu docelowego, a także skalowanie w oparciu o wykorzystanie mocy obliczeniowej.

Typowe przypadki użycia

  • Aplikacje internetowe ze zmiennym ruchem (kampanie, sezonowe szczyty): dostosuj repliki w miarę zmian obciążenia.

  • Przetwarzanie wsadowe lub sterowane zdarzeniami: zwiększ wydajność na czas szczytowego obciążenia, a następnie zmniejsz ją.

  • Mikrousługi: skaluj określone usługi bez skalowania całej aplikacji.

Wydajność zasobów

Platforma Kubernetes obsługuje automatyczne pakowanie pojemników, które umieszcza kontenery w węzłach opartych na procesorze i pamięci, aby lepiej wykorzystać dostępne zasoby. Śledzi również alokację zasobów podczas zarządzania obciążeniami.

Typowe przypadki użycia

  • Klastry udostępnione dla wielu zespołów: zmniejsz ilość marnowanych pojemności, umieszczając obciążenia, w których są dostępne zasoby.

  • Klastry obciążeń mieszanych (usługi i zadania): pozostaw węzły zajęte bez ręcznego umieszczania.

Odnajdywanie usług i równoważenie obciążenia

Platforma Kubernetes może uwidaczniać obciążenia przy użyciu systemu DNS lub adresu IP i może dystrybuować ruch sieciowy, aby zapewnić stabilność wdrożeń. Zarządza również odnajdywaniem usług i uwzględnia równoważenie obciążenia w miarę zmiany obciążeń.

Typowe przypadki użycia

  • Komunikacja mikrousług: usługi znajdują się nawzajem za pośrednictwem stabilnych nazw, podczas gdy zasobniki ulegają zmianie.

  • Wewnętrzne interfejsy API za stabilnym punktem końcowym: kierowanie ruchu tylko do bieżących zapleczy.

Samonaprawa

Platforma Kubernetes została zaprojektowana w celu zastąpienia kontenerów zakończonych niepowodzeniem, ponownego zaplanowania obciążeń, gdy węzły staną się niedostępne, i utrzymania pożądanego stanu. Przykłady obejmują ponowne uruchomienie kontenera, wymianę repliki i usunięcie zasobników w złej kondycji z punktów końcowych usługi, dzięki czemu ruch jest kierowany tylko do zasobników w dobrej kondycji.

Typowe przypadki użycia

  • Zawsze włączone usługi: uruchom ponownie lub zamień wystąpienia zakończone niepowodzeniem bez ręcznej interwencji.

  • Klastry z częstym współczynnikiem rezygnacji węzłów: zmień harmonogram obciążeń, gdy węzeł ulegnie awarii.

  • Usługi za usługą: zatrzymaj routing ruchu do zasobników w złej kondycji.

Bezpieczniejsze wydania

Platforma Kubernetes obsługuje zautomatyzowane wprowadzanie i wycofywanie. Opisujesz żądany stan, a platforma Kubernetes przenosi rzeczywisty stan do niego z kontrolowaną szybkością.

Typowe przypadki użycia

  • Częste aktualizacje aplikacji: stopniowo wprowadzaj zmiany, a następnie w razie potrzeby przywróć zmiany.

  • Zespoły wysyłające wiele usług: zapewnij spójność mechaniki wydań w aplikacjach.

Przenośność

Aplikacje konteneryzowane są oddzielone od infrastruktury, a platforma Kubernetes ułatwia przenoszenie ich z maszyn lokalnych do produkcji w środowiskach lokalnych, bezserwerowych, hybrydowychi wielochmurowych przy zachowaniu spójności między środowiskami.

Typowe przypadki użycia

  • Parzystość tworzenia/testowania/przetwarzania: zachowaj ten sam model pakowania i planowania w różnych środowiskach.

  • Wdrożenia hybrydowe: uruchamiaj części systemu lokalnie i części w chmurze przy użyciu tego samego podejścia do orkiestracji.

Wprowadzenie do platformy Kubernetes

Platforma Kubernetes zapewnia spójny sposób uruchamiania obciążeń w kontenerach dzięki deklaratywnej konfiguracji i automatyzacji opartej na uczeniu maszynowym, a wszystko to wspierane jest przez rozbudowany i stale powiększający się zestaw narzędzi oraz wsparcie społeczności.

Dlaczego nadal ma to znaczenie dla aplikacji chmurowych

W miarę jak zespoły tworzą systemy złożone z wielu usług, krótkotrwałych obciążeń i częstych aktualizacji, platforma Kubernetes pozostaje praktyczną podstawą, ponieważ skupia się na powtarzalnych operacjach:

  • Spójne operacje w różnych środowiskach (kontenery spakowane z zależnościami działają tak samo w różnych środowiskach).

  • Szeroki, aktywny ekosystem z szeroko dostępnymi usługami, pomocą techniczną i narzędziami.

  • Możliwość rozbudowy dzięki dodatkom i wtyczkom tworzonym przez społeczność oraz programowi zapewniania zgodności, który gwarantuje spójność podstawowych interfejsów API we wszystkich wersjach.

Jeśli tworzysz lub uruchamiasz obciążenia, usługa Azure Kubernetes Service (AKS) ułatwia wdrażanie konteneryzowanych aplikacji i zarządzanie nimi, a platforma Azure zarządza płaszczyzną sterowania.

tło gradientu
Zasoby
Tworzenie oprogramowania

Zasoby platformy Azure

Poznaj najnowszą technologię deweloperską i zdobądź nowe umiejętności.
Szkolenie

Wprowadzenie do platformy Kubernetes

Ten kurs przeprowadzi Cię przez typy problemów biznesowych, które można rozwiązać przy użyciu platformy Kubernetes.
Edukacja

Microsoft Azure for Students

Zyskaj umiejętności, które pozwolą Ci szybko rozpocząć karierę i pozytywnie wpłynąć na świat.
Często zadawane pytania

Często zadawane pytania

  • System Kubernetes służy do wdrażania, zarządzania i skalowania aplikacji kontenerowych w klastrze. Planuje ona obciążenia na podstawie dostępnych zasobów obliczeniowych, kieruje ruchem za pomocą odnajdywania usług i równoważenia obciążenia oraz pomaga utrzymać działanie aplikacji przez ponowne uruchomienie lub zastąpienie kontenerów zakończonych niepowodzeniem.
  • Platforma Kubernetes jest zwykle używana przez deweloperów i administratorów platformy, którzy uruchamiają aplikacje konteneryzowane. Jeśli chcesz mniej obsługiwać płaszczyznę sterowania, usługa zarządzana, taka jak Azure Kubernetes Service (AKS), może obsługiwać płaszczyznę sterowania podczas koncentracji na węzłach i aplikacjach.
  • Tak. Platforma Kubernetes może uruchamiać aplikacje konteneryzowane w infrastrukturze lokalnej lub lokalnej, a także obsługuje konfiguracje hybrydowe i wielochmurowe. Kontenery pozostają przenośne, ponieważ aplikacja jest spakowana oddzielnie od maszyn źródłowych.
  • Może to zająć trochę czasu, ponieważ istnieje kilka podstawowych pojęć (klastry, węzły, zasobniki, usługi). Zacznij od podstaw, a następnie przećwicz wdrażanie małej aplikacji i skorzystaj ze ścieżki nauczania z przewodnikiem, aby nabrać pewności siebie.