Sdílet prostřednictvím


Migrace azure Spring Apps do služby Azure Kubernetes Service

Poznámka:

Plány Basic, Standarda Enterprise vstoupily do důchodového období 17. března 2025. Další informace najdete v oznámení o vyřazení Azure Spring Apps.

Plán Standardní spotřeba a vyhrazený plán vstoupily do fáze vyřazování dne 30. září 2024 s úplným vypnutím do konce března 2025. Další informace najdete v tématu Migrace spotřeby Azure Spring Apps standardní úrovně a vyhrazených plánů do Azure Container Apps.

Tento článek se vztahuje na:✅ Basic/Standard ✅ Enterprise

Tento článek obsahuje přehled migrace z Azure Spring Apps do služby Azure Kubernetes Service (AKS).

Azure Spring Apps je řešení typu platforma jako služba (PaaS) navržené speciálně pro aplikace Spring Boot. Usnadňuje nasazování, spouštění a správu těchto aplikací. Azure Spring Apps se stará o infrastrukturu, škálování a monitorování, aby se vývojáři mohli soustředit na svůj kód.

AKS je nabídka typu infrastruktura jako služba (IaaS), která poskytuje plně spravované prostředí Kubernetes. AKS poskytuje větší kontrolu nad tím, jak se vaše aplikace nasazují a spravují. Podporuje širokou škálu kontejnerizovaných aplikací a umožňuje přizpůsobení tak, aby vyhovovalo konkrétním potřebám.

Migrace aplikací z Azure Spring Apps do AKS znamená přechod ze spravovaného prostředí do prostředí, které vám dává větší flexibilitu. Tento proces vyžaduje přijetí nových nástrojů a postupů k dosažení stejných výsledků v AKS, jaké jste měli s Azure Spring Apps.

Mapování konceptů

Vzhledem k tomu, že Azure Spring Apps a AKS jsou různé typy nabídek cloudových služeb, není úplně přesné mapovat koncepty Azure Spring Apps přímo na AKS. Azure Spring Apps také závisí na mnoha interních komponentách při použití v produkčních prostředích, které tu nejsou uvedené. Následující diagram a tabulka poskytují jednoduché mapování konceptů z Azure Spring Apps na AKS, které vám pomůžou porozumět základům. V reálném produkčním prostředí byste měli zvážit bezpečnější a spolehlivější řešení.

Diagram mapování konceptu mezi službami Azure Spring Apps a Azure Kubernetes Service

Služba Azure Spring Apps Azure Kubernetes Service
Instance služby hostuje a zabezpečuje hranici pro aplikace a další prostředky a podporuje vlastní virtuální síť. Cluster je základní jednotka nasazení. V rámci clusteru Namespace představuje virtuální dílčí dělení, které slouží k organizaci a izolaci prostředků. Sdílí stejnou základní síťovou infrastrukturu definovanou virtuální sítí clusteru. Volba mezi vyhrazeným clusterem nebo sdíleným clusterem s obory názvů závisí na vašich obchodních potřebách.
Aplikace je jedna firemní aplikace, která slouží jako podřízený zdroj v instanci služby. Aplikace je virtuální koncept v Azure Spring Apps a skládá se z několika prostředků v AKS. Ingress řídí externí přístup ke službám a nastavuje pravidla směrování provozu k různým službám. Služba abstrahuje přístup k sadě podů. Přepnutí nasazení modrá-zelená můžete provést aktualizací služby tak, aby odkazovala na jinou verzi nasazení pomocí štítků.
Nasazení je verze aplikace. Aplikace může mít jedno produkční nasazení a jedno přípravné nasazení. Nasazení spravuje zavedení a životní cyklus konkrétní aplikace nebo služby. Umožňuje také postupné aktualizace a vrácení zpět, což umožňuje řízené a bezproblémové změny aplikací bez výpadků.
Instance aplikace představuje minimální jednotku běhového prostředí spravovanou službou. Pod představuje jeden nebo více úzce propojených kontejnerů a hostuje jednu instanci spuštěné aplikace nebo úlohy.

Důležité informace z hlediska využívání sítě

Před zřízením clusteru AKS je důležité pečlivě zvážit nastavení sítě. Tato rozhodnutí můžou výrazně ovlivnit výkon, škálovatelnost a zabezpečení vašich aplikací.

AKS využívá moduly plug-in CNI (Container Networking Interface) ke správě sítí v rámci svých clusterů. Tyto moduly plug-in zpracovávají kritické úlohy, jako je přiřazování IP adres podům, směrování provozu mezi nimi a povolení komunikace prostřednictvím služby Kubernetes Services. AKS podporuje více modulů plug-in CNI přizpůsobených různým síťovým potřebám a poskytuje flexibilitu při návrhu clusteru.

AKS nabízí dva primární síťové modely: překryvné sítě a ploché sítě. Překryvné sítě přiřazují podům privátní IP adresy odděleně od podsítě virtuální sítě Azure uzlů AKS. Tento model je škálovatelný a šetří IP adresy virtuální sítě, ale používá překlad adres (NAT) pro přenosy z clusteru. Naproti tomu ploché sítě přiřazují IP adresy podů přímo z podsítě virtuální sítě Azure, na které se nacházejí uzly, a umožňují externím službám přistupovat k podům bez NAT. Zatímco ploché sítě umožňují přímou komunikaci podů, vyžadují rozsáhlejší adresní prostor IP adres virtuální sítě.

Správné plánování IP adres je nezbytné pro hladký provoz AKS. Je důležité zajistit, aby podsítě měly dostatek IP adres pro všechny prostředky, vyhněte se překrývajícím se rozsahům a ponechte prostor pro budoucí růst, abyste zabránili problémům a přerušením připojení. Další informace najdete v tématu Přehled sítí CNI služby Azure Kubernetes Service.

Ke zpracování příchozího provozu v AKS můžete použít load balancery nebo ingress kontrolery. Nástroje pro vyrovnávání zatížení fungují ve vrstvě 4, distribuují provoz na základě protokolů a portů, zatímco kontrolery příchozího přenosu dat fungují ve vrstvě 7 a nabízejí pokročilé funkce, jako je směrování založené na adrese URL a ukončení protokolu TLS/SSL. Kontrolery příchozího přenosu dat snižují potřebu několika veřejných IP adres tím, že spravují provoz do více aplikací prostřednictvím jedné IP adresy. U webových aplikací jsou ingress kontroléry preferovány, protože poskytují lepší správu provozu a integraci s prostředky Kubernetes. Další informace naleznete v tématu Spravovaný NGINX ingress s doplňkem pro směrování aplikací.

Pokud chcete zabezpečit síťový provoz v AKS, použijte firewally webových aplikací (WAF), jako je Azure Application Gateway, k ochraně před útoky, jako je skriptování mezi weby a otrava cookies, a zároveň spravujte směrování provozu a ukončení protokolu TLS/SSL. Kromě toho implementujte síťové zásady pro řízení komunikace mezi pody definováním pravidel v manifestech YAML na základě štítků, oborů názvů nebo portů. Tyto zásady, které jsou dostupné jenom pro uzly založené na Linuxu, zajišťují lepší řízení provozu a zabezpečení v rámci clusteru. Další informace najdete v tématu Zabezpečení provozu mezi pody pomocí zásad sítě v AKS.

Ustanovení

Ke zřízení clusteru AKS můžete použít Azure Portal, Azure CLI nebo šablony ARM. Proces obvykle zahrnuje výběr požadované oblasti, definování velikosti a typu fondu uzlů a výběr síťového modelu – Azure CNI nebo Kubenet. Musíte také nakonfigurovat možnosti ověřování, jako je integrace ID Microsoft Entra pro řízení přístupu uživatelů. Pro monitorování a škálování můžete povolit Azure Monitor a nakonfigurovat automatické škálování na základě využití prostředků. Po zřízení můžete cluster spravovat pomocí kubectl nebo Azure CLI. Podrobné pokyny ke zřízení AKS najdete v tématu Vytvoření clusteru AKS.

Přístup a identita

AKS nabízí několik způsobů správy ověřování, autorizace a řízení přístupu pro clustery Kubernetes. Pomocí řízení přístupu na základě role (RBAC) Kubernetes můžete uživatelům, skupinám a účtům služeb udělit přístup jenom k potřebným prostředkům. Další informace najdete v tématu Použití autorizace RBAC. AKS také podporuje Microsoft Entra ID a Azure RBAC ke zlepšení zabezpečení a řízení, což vám umožní přiřazovat a spravovat oprávnění jednodušším způsobem.

Pro zajištění nejlepšího zabezpečení doporučujeme integrovat AKS s ID Microsoft Entra. Tato integrace používá k ověřování protokoly OpenID Connect a OAuth 2.0. Uživatelé se ověřují pomocí přihlašovacích údajů Microsoft Entra při interakci s clusterem AKS s oprávněními k přístupu, která řídí správce clusteru. Další informace najdete v tématu Povolení ověřování spravovaných identit Azure pro clustery Kubernetes pomocí kubeloginu.

ID úloh Microsoft Entra integruje nativní funkce Kubernetes s externími zprostředkovateli identit prostřednictvím federace OpenID Connect (OIDC). Projekce svazků tokenů účtu služby Service Account Token Volume Projection se používá k přiřazení identit Kubernetes k podům prostřednictvím okomentovaných účtů služby. Díky těmto tokenům můžou aplikace Kubernetes bezpečně ověřovat a přistupovat k prostředkům Azure pomocí ID Microsoft Entra. Toto nastavení bezproblémově spolupracuje s knihovnami, jako jsou klientské knihovny Azure Identity (Azure.Identity) nebo knihovna MSAL (Microsoft Authentication Library), a zjednodušuje tak ověřování pro vaše úlohy. Informace o nastavení clusteru a konfiguraci podu aplikace s identifikací úloh najdete v tématu Nasazení a konfigurace identity úloh.

Kontejnerizace aplikací

Kontejnerizace aplikací do imagí kontejnerů je nezbytná pro nasazení v AKS. Zajišťuje, aby nasazení byla konzistentní, přenosná a škálovatelná. Použití imagí kontejnerů poskytuje flexibilitu při správě různých verzí aplikací. Usnadňuje aktualizace a vrácení zpět a zlepšuje efektivitu prostředků tím, že umožňuje spouštění více kontejnerů na jednom hostiteli.

Azure Spring Apps pomáhá uživatelům vytvářet image kontejnerů a nasazovat aplikace různými způsoby. Můžete je nasadit ze zdrojového kódu, z sestavených artefaktů, jako jsou soubory JAR nebo WAR, nebo přímo z image kontejneru. Informace o nasazení ze souboru JAR nebo WAR najdete v tématu Sestavení image kontejneru z souboru JAR nebo WAR. Informace o nasazení ze zdrojového kódu najdete v tématu Kontejnerizace aplikace pomocí balíčků Paketo Buildpacks.

Pokud chcete monitorovat výkon aplikací nasazených v AKS, můžete během procesu kontejnerizace integrovat agenta pro monitorování výkonnosti aplikací (APM). Další informace najdete v tématu Integrace monitorování výkonu aplikací do imagí kontejnerů.

Nasazení aplikací a komponent Spring Cloudu

K nasazení aplikací do AKS můžete použít nasazení, která používá Azure Spring Apps nebo StatefulSets v závislosti na potřebách vaší aplikace. Pro bezstavové aplikace, jako jsou mikroslužby, byste obvykle použili Deployment, který spravuje repliky vaší aplikace a zajišťuje, že běží hladce. Tento typ používá Azure Spring Apps. Stavové sady jsou naopak ideální pro aplikace vyžadující trvalé úložiště nebo stabilní identity, jako jsou databáze nebo služby se stavovými potřebami.

Kromě nasazení aplikace musíte také definovat službu , která zpřístupní back-endové pody. Služba je abstrakce, která umožňuje definovat logickou sadu podů a umožňuje k nim přístup k síti. Tato schopnost je zásadní pro vyrovnávání zatížení a komunikaci mezi pody.

Při nasazování komponent Spring Cloudu, jako je Spring Cloud Config nebo Spring Cloud Gateway, byste obecně používali nasazení pro bezstavové služby. U back-endových služeb, které potřebují stabilní úložiště nebo stav, můžete zvolit StatefulSets.

Následující odkazy obsahují referenční příklady imagí kontejnerů a souborů manifestu pro komponenty Spring Cloud:

Monitor

Monitorování je klíčovou součástí správy aplikací nasazených v AKS. AKS poskytuje řadu nástrojů pro sledování a analýzu stavu clusteru a úloh, včetně integrovaných řešení, jako jsou Azure Monitor, Azure Log Analytics a Prometheus. Další informace najdete v následujících článcích:

Kromě služby Azure Monitor a Prometheus můžete také použít další monitorovací řešení, jako je Datadog, New Relic nebo Elastic Stack (ELK). Tyto nástroje můžete integrovat do AKS, abyste mohli shromažďovat protokoly, metriky a trasování a nabízet různé přehledy o výkonu clusteru.

Návod

Poskytujeme následující kurzy, které ukazují kompletní prostředí spouštění aplikací v AKS. Tyto kurzy jsou určené pro referenci a protože AKS je vysoce flexibilní, musíte zvolit konfigurace a přizpůsobení na základě vašich konkrétních požadavků.