Sdílet prostřednictvím


Migrace azure Spring Apps do služby Azure Kubernetes Service

Poznámka:

Plány Basic, Standard a Enterprise budou od poloviny března 2025 vyřazeny ze 3letého období vyřazení. Doporučujeme přejít na Azure Container Apps. Další informace najdete v oznámení o vyřazení Azure Spring Apps.

Od 30. září 2024 bude od 30. září 2024 zastaralý plán s úplným vypnutím po šesti měsících. Doporučujeme přejít na Azure Container Apps. Další informace najdete v tématu Migrace spotřeby Azure Spring Apps Úrovně Standard a vyhrazeného plánu 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 je obor názvů virtuální dílčí dělení sloužící k uspořádání 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 obchodní aplikace, která slouží jako podřízený prostředek v instanci služby. Obchodní aplikace je virtuální koncept v Azure Spring Apps a skládá se z několika prostředků v AKS. Příchozí přenos dat řídí externí přístup ke službám a nastavuje pravidla směrování provozu do různých služeb. Služba abstrahuje přístup k sadě podů. Přepínač nasazení s modrou zelenou barvou můžete provést aktualizací služby tak, aby odkazovat na jinou verzi nasazení pomocí popisků.
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 je minimální jednotka modulu runtime spravovaná 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 ze stejné podsítě virtuální sítě Azure jako uzly a umožňují externím službám přistupovat k podům bez překladu adres (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 nástroje pro vyrovnávání zatížení nebo kontrolery příchozího přenosu dat. 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 kontrolery příchozího přenosu dat upřednostňované, protože poskytují lepší správu provozu a integraci s prostředky Kubernetes. Další informace najdete v tématu Spravované příchozí přenosy dat NGINX s doplňkem směrování aplikace.

Pokud chcete zabezpečit síťový provoz v AKS, použijte firewally webových aplikací (WAF), jako je Aplikace Azure lication Gateway, k ochraně před útoky, jako je skriptování mezi weby a otrava soubory cookie, při správě směrování provozu a ukončení protokolu TLS/SSL. Kromě toho implementujte zásady sítě pro řízení komunikace mezi pody definováním pravidel v manifestech YAML na základě popisků, 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.

Zřízení

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). K přiřazení identit Kubernetes k podům prostřednictvím účtů služby s poznámkami používá projekci svazku tokenů účtu 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 APM (Application Sledování výkonu ing). 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. V případě bezstavových aplikací, jako jsou mikroslužby, byste obvykle použili nasazení, 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.

Kurz

Poskytujeme kurz, který předvede kompletní prostředí spouštění aplikace ACME Fitness Store v AKS. Další informace najdete v tématu acme-fitness-store/azure-kubernetes-service. Tento kurz obsahuje praktické pokyny a je určený pro referenci. AKS je vysoce flexibilní, takže je potřeba zvolit konfigurace a přizpůsobení na základě vašich konkrétních požadavků.