Udostępnij za pośrednictwem


Migrowanie usługi Azure Spring Apps do usługi Azure Kubernetes Service

Uwaga

Plany Basic, Standardi Enterprise weszły w okres wycofywania 17 marca 2025 r. Aby uzyskać więcej informacji, zobacz ogłoszenie o wycofaniu usługi Azure Spring Apps.

Plan dotyczący zużycia standardowego oraz dedykowany plan zostały wycofane 30 września 2024 r., z całkowitym zamknięciem do końca marca 2025 r. Aby uzyskać więcej informacji, zobacz Migrowanie abonamentu konsumpcyjnego i dedykowanego planu usługi Azure Spring Apps w warstwie Standardowa do usługi Azure Container Apps.

Ten artykuł dotyczy:✅ Podstawowa/Standardowa ✅ Enterprise

Ten artykuł zawiera omówienie migracji z usługi Azure Spring Apps do usługi Azure Kubernetes Service (AKS).

Azure Spring Apps to rozwiązanie typu "platforma jako usługa" (PaaS) zaprojektowane specjalnie dla aplikacji Spring Boot. Ułatwia wdrażanie, uruchamianie i zarządzanie tymi aplikacjami. Usługa Azure Spring Apps zajmuje się infrastrukturą, skalowaniem i monitorowaniem, dzięki czemu deweloperzy mogą skupić się na swoim kodzie.

Usługa AKS to oferta typu infrastruktura jako usługa (IaaS), która zapewnia w pełni zarządzane środowisko Kubernetes. Usługa AKS zapewnia większą kontrolę nad sposobem wdrażania i zarządzania aplikacjami. Obsługuje ona szeroką gamę konteneryzowanych aplikacji i umożliwia dostosowywanie w celu spełnienia określonych potrzeb.

Migrowanie aplikacji z usługi Azure Spring Apps do usługi AKS oznacza przejście ze środowiska zarządzanego na taki, który zapewnia większą elastyczność. Ten proces wymaga wdrożenia nowych narzędzi i praktyk w celu osiągnięcia tych samych wyników w usłudze AKS, co w przypadku usługi Azure Spring Apps.

Mapowanie koncepcji

Ponieważ usługi Azure Spring Apps i AKS są różnymi typami ofert usług w chmurze, nie jest całkowicie dokładne mapowanie pojęć związanych z usługą Azure Spring Apps bezpośrednio do usługi AKS. Ponadto usługa Azure Spring Apps zależy od wielu składników wewnętrznych w przypadku użycia w środowiskach produkcyjnych, które nie są wymienione tutaj. Poniższy diagram i tabela zawierają proste mapowanie pojęć z usługi Azure Spring Apps na usługę AKS, aby ułatwić zrozumienie podstaw. W rzeczywistym środowisku produkcyjnym należy rozważyć bezpieczniejsze i niezawodne rozwiązania.

Diagram mapowania koncepcji między usługami Azure Spring Apps i Azure Kubernetes Service.

Usługa Azure Spring Apps Azure Kubernetes Service
Instancja usługi umożliwia hosting i zabezpiecza granice dla aplikacji i innych zasobów oraz obsługuje niestandardową sieć wirtualną. Klaster to podstawowa jednostka wdrożenia. W ramach klastra przestrzeń nazw to wirtualny podział używany do organizowania i izolowania zasobów. Dzieli tę samą podstawową infrastrukturę sieciową zdefiniowaną przez wirtualną sieć klastra. Wybór między dedykowanym klastrem lub udostępnionym klastrem z przestrzeniami nazw zależy od potrzeb biznesowych.
Aplikacja App to przykład aplikacji biznesowej, która służy jako zasób podrzędny w ramach instancji usługi. Aplikacja jest pojęciem wirtualnym w usłudze Azure Spring Apps i składa się z wielu zasobów w usłudze AKS. Ingress kontroluje zewnętrzny dostęp do usług i określa reguły kierowania ruchu do różnych usług. Serwis ułatwia dostęp do zestawu zasobników. Możesz przełączyć wdrożenie, używając metody niebiesko-zielonej, aktualizując usługę tak, aby wskazywała na inną wersję wdrożenia przy użyciu etykiet.
Wdrożenie to wersja aplikacji. Aplikacja może mieć jedno wdrożenie produkcyjne i jedno wdrożenie przejściowe. Wdrożenie zarządza wdrożeniem i cyklem życia określonej aplikacji lub usługi. Umożliwia również aktualizacje stopniowe i wycofywanie, umożliwiając kontrolowane, bezproblemowe zmiany aplikacji bez przestojów.
Wystąpienie aplikacji to minimalna jednostka środowiska uruchomieniowego zarządzana przez usługę. Zasobnik reprezentuje jeden lub więcej ściśle powiązanych kontenerów i hostuje pojedyncze wystąpienie uruchomionej aplikacji lub obciążenia roboczego.

Kwestie dotyczące sieci

Przed utworzeniem klastra AKS należy dokładnie rozważyć ustawienia sieciowe. Te decyzje mogą znacząco wpłynąć na wydajność, skalowalność i bezpieczeństwo aplikacji.

Usługa AKS korzysta z wtyczek interfejsu CNI (Container Networking Interface) do zarządzania siecią w klastrach. Te wtyczki obsługują krytyczne zadania, takie jak przypisywanie adresów IP do zasobników, kierowanie ruchu między nimi i włączanie komunikacji za pośrednictwem usług Kubernetes Services. Usługa AKS obsługuje wiele wtyczek CNI dostosowanych do różnych potrzeb sieciowych, zapewniając elastyczność projektowania klastra.

AKS oferuje dwa podstawowe modele sieci: sieci nakładkowe i sieci płaskie. Sieci nakładki przypisują prywatne adresy IP do zasobników, oddzielnie od podsieci Azure Virtual Network węzłów AKS. Ten model jest skalowalny i oszczędza adresy IP sieci wirtualnej, ale używa translatora adresów sieciowych (NAT) do ruchu opuszczającego klaster. Natomiast sieci płaskie przypisują adresy IP zasobników bezpośrednio z tej samej podsieci Azure Virtual Network, z której pochodzą adresy IP węzłów, umożliwiając usługom zewnętrznym dostęp do zasobników bez użycia translatora adresów sieciowych (NAT). Chociaż płaskie sieci umożliwiają bezpośrednią komunikację między zasobnikami, wymagają bardziej rozległej przestrzeni adresowej IP dla sieci wirtualnej.

Prawidłowe planowanie adresów IP jest niezbędne w przypadku bezproblemowej operacji usługi AKS. Ważne jest, aby zapewnić, że podsieci mają wystarczającą liczbę adresów IP dla wszystkich zasobów, unikaj nakładających się zakresów i pozostawiają miejsce na przyszły wzrost, aby zapobiec problemom z łącznością i zakłóceniami. Aby uzyskać więcej informacji, zobacz Omówienie sieci CNI usługi Azure Kubernetes Service.

Aby obsługiwać ruch przychodzący w usłudze AKS, można użyć modułów równoważenia obciążenia lub kontrolerów ruchu przychodzącego. Moduły równoważenia obciążenia działają w warstwie 4, dystrybuując ruch na podstawie protokołów i portów, podczas gdy kontrolery ruchu przychodzącego działają w warstwie 7, oferując zaawansowane funkcje, takie jak routing oparty na adresach URL i kończenie żądań TLS/SSL. Kontrolery Ingress zmniejszają konieczność posiadania wielu publicznych adresów IP, zarządzając ruchem do wielu aplikacji przy użyciu jednego adresu IP. W przypadku aplikacji internetowych preferowane są kontrolery ruchu przychodzącego, ponieważ zapewniają lepsze zarządzanie ruchem i integrację z zasobami Kubernetes. Aby uzyskać więcej informacji, zobacz Zarządzane wejście NGINX z dodatkiem do routingu aplikacji.

Aby zabezpieczyć ruch sieciowy w usłudze AKS, użyj zapór aplikacji internetowych (WAF), takich jak Azure Application Gateway, aby chronić przed atakami, takimi jak cross-site scripting i cookie poisoning, podczas zarządzania routingiem ruchu i zakończeniem sesji TLS/SSL. Ponadto wdroż zasady sieciowe, aby kontrolować komunikację między podami, definiując reguły w manifestach YAML na podstawie etykiet, przestrzeni nazw lub portów. Te zasady, które są dostępne tylko dla węzłów opartych na systemie Linux, zapewniają lepszą kontrolę ruchu i zabezpieczenia w klastrze. Aby uzyskać więcej informacji, zapoznaj się z zabezpieczaniem ruchu między podami przy użyciu zasad sieciowych w AKS.

Postanowienie

Aby utworzyć klaster AKS, możesz użyć Azure Portal, Azure CLI lub szablonów ARM. Proces zwykle polega na wybraniu żądanego regionu, zdefiniowaniu rozmiaru i typu puli węzłów oraz wybraniu modelu sieciowego — azure CNI lub Kubenet. Należy również skonfigurować opcje uwierzytelniania, takie jak integracja identyfikatora Entra firmy Microsoft na potrzeby kontroli dostępu użytkowników. Na potrzeby monitorowania i skalowania można włączyć usługę Azure Monitor i skonfigurować skalowanie automatyczne na podstawie użycia zasobów. Po aprowizacji można zarządzać klastrem przy użyciu narzędzia kubectl lub interfejsu wiersza polecenia platformy Azure. Aby uzyskać szczegółowe instrukcje dotyczące aprowizacji usługi AKS, odwiedź stronę Tworzenie klastra usługi AKS.

Dostęp i tożsamość

Usługa AKS oferuje kilka sposobów zarządzania uwierzytelnianiem, autoryzacją i kontrolą dostępu dla klastrów Kubernetes. Możesz użyć kontroli dostępu opartej na rolach (RBAC) platformy Kubernetes, aby zapewnić użytkownikom, grupom i kontom usług dostęp tylko do potrzebnych zasobów. Aby uzyskać więcej informacji, zobacz Korzystanie z autoryzacji RBAC. Usługa AKS obsługuje również funkcję Microsoft Entra ID i RBAC platformy Azure w celu zwiększenia bezpieczeństwa i kontroli, umożliwiając przypisywanie uprawnień i zarządzanie nimi w bardziej usprawniony sposób.

Aby uzyskać najlepsze zabezpieczenia, zalecamy zintegrowanie usługi AKS z identyfikatorem Entra firmy Microsoft. Ta integracja używa protokołów OpenID Connect i OAuth 2.0 do uwierzytelniania. Użytkownicy uwierzytelniają się przy użyciu poświadczeń usługi Microsoft Entra podczas interakcji z klastrem usługi AKS z uprawnieniami dostępu podlegającymi administratorowi klastra. Aby uzyskać więcej informacji, zobacz Włączanie uwierzytelniania tożsamości zarządzanej platformy Azure dla klastrów Kubernetes za pomocą rozwiązania kubelogin

Microsoft Entra Workload Identyfikator integruje natywne funkcje platformy Kubernetes z zewnętrznymi dostawcami tożsamości poprzez federację OpenID Connect (OIDC). Używa Service Account Token Volume Projection, aby przypisywać tożsamości Kubernetes zasobnikom za pomocą adnotowanych kont usługowych. Dzięki tym tokenom aplikacje Kubernetes mogą bezpiecznie uwierzytelniać zasoby platformy Azure i uzyskiwać do nich dostęp przy użyciu identyfikatora Entra firmy Microsoft. Ta konfiguracja bezproblemowo współpracuje z bibliotekami, takimi jak biblioteki klienta tożsamości platformy Azure (Azure.Identity) lub biblioteka Microsoft Authentication Library (MSAL), aby usprawnić uwierzytelnianie obciążeń. Aby dowiedzieć się, jak skonfigurować klaster i zasobnik aplikacji z tożsamością obciążenia, zobacz Wdrażanie i konfigurowanie tożsamości obciążenia.

Konteneryzowanie aplikacji

Konteneryzowanie aplikacji w obrazy kontenerowe jest niezbędne do wdrożenia w usłudze Azure Kubernetes Service (AKS). Gwarantuje to, że wdrożenia są spójne, przenośne i skalowalne. Korzystanie z obrazów kontenerów zapewnia elastyczność zarządzania różnymi wersjami aplikacji. Ułatwia ona aktualizowanie i wycofywanie oraz poprawia wydajność zasobów, umożliwiając uruchamianie wielu kontenerów na jednym hoście.

Usługa Azure Spring Apps ułatwia użytkownikom tworzenie obrazów kontenerów i wdrażanie aplikacji na różne sposoby. Możesz wdrożyć z kodu źródłowego, z utworzonych artefaktów, takich jak pliki JAR lub WAR, lub bezpośrednio z obrazu kontenera. Aby dowiedzieć się, jak wdrażać z pliku JAR lub WAR, zobacz Tworzenie obrazu kontenera z pliku JAR lub WAR. Aby dowiedzieć się, jak wdrażać z kodu źródłowego, zobacz Containerize an application by using Paketo Buildpacks (Konteneryzowanie aplikacji przy użyciu pakietu Buildpack Paketo).

Aby monitorować wydajność aplikacji wdrożonych na AKS, możesz zintegrować agenta monitorowania wydajności aplikacji (APM) w procesie konteneryzacji. Aby uzyskać więcej informacji, zobacz Integrowanie monitorowania wydajności aplikacji z obrazami kontenerów.

Wdrażanie aplikacji i składników platformy Spring Cloud

Aby wdrożyć aplikacje w usłudze AKS, możesz użyć Wdrożeń, które są używane przez usługę Azure Spring Apps lub StatefulSets, w zależności od potrzeb aplikacji. W przypadku aplikacji bezstanowych, takich jak mikrousługi, zazwyczaj używa się wdrożenia, które zarządza replikami aplikacji i zapewnia bezproblemowe działanie. Ten typ jest używany przez usługę Azure Spring Apps. Z drugiej strony zestawy StatefulSet są idealne dla aplikacji wymagających trwałego magazynu lub stabilnych tożsamości, takich jak bazy danych lub usługi z potrzebami stanowymi.

Oprócz wdrożenia aplikacji należy również zdefiniować Service, aby udostępnić zasobniki zaplecza. Usługa to abstrakcja, która umożliwia definiowanie logicznego zestawu zasobników i umożliwia dostęp do nich w sieci. Ta funkcja ma kluczowe znaczenie dla równoważenia obciążenia i komunikacji między podami.

Podczas wdrażania komponentów platformy Spring Cloud, takich jak Spring Cloud Config lub Spring Cloud Gateway, zazwyczaj używa się Deployments dla usług bezstanowych. W przypadku usług zaplecza, które wymagają stabilnego magazynu lub stanu, możesz wybrać opcję StatefulSets.

Poniższe linki zawierają przykłady obrazów kontenerów i plików manifestu dla składników platformy Spring Cloud:

Monitor

Monitorowanie jest kluczową częścią zarządzania aplikacjami wdrożonymi na AKS. Usługa AKS udostępnia szereg narzędzi do śledzenia i analizowania stanu klastra i obciążeń, w tym zintegrowanych rozwiązań, takich jak Azure Monitor, Azure Log Analytics i Prometheus. Aby uzyskać więcej informacji, zobacz następujące artykuły:

Oprócz usług Azure Monitor i Prometheus można również używać innych rozwiązań monitorowania, takich jak Datadog, New Relic lub Elastic Stack (ELK). Te narzędzia można zintegrować z usługą AKS, aby zbierać dzienniki, metryki i ślady, oferując różne szczegółowe informacje o wydajności klastra.

Poradnik

Udostępniamy następujące samouczki, aby zademonstrować doświadczenie od początku do końca związane z uruchamianiem i zarządzaniem aplikacjami w usłudze AKS. Te samouczki są przeznaczone do celów referencyjnych i dlatego, że usługa AKS jest wysoce elastyczna, musisz wybrać konfiguracje i dostosowania na podstawie określonych wymagań.