Dela via


Arkitekturöverväganden för att välja en Azure-containertjänst

I den här artikeln beskrivs hur du väljer en Azure-containertjänst. Den ger en översikt över överväganden på funktionsnivå som är vanliga och viktiga för vissa arbetsbelastningar. Det kan hjälpa dig att fatta beslut för att säkerställa att din arbetsbelastning uppfyller kraven för tillförlitlighet, säkerhet, kostnadsoptimering, driftseffektivitet och prestandaeffektivitet.

Notera

Den här artikeln är del två i en serie. Vi rekommenderar starkt att du läser del ett först för att få kontext för dessa arkitekturöverväganden.

Överblick

Övervägandena i den här artikeln är indelade i följande fyra kategorier:

Överväganden för arkitektur och nätverk

  • Stöd för operativsystem (OS)
  • Nätverksadressutrymme
  • Analys av trafikflöde
  • Planering av undernät
  • Tillgängliga inkommande IP-adresser
  • Stöd för användardefinierade vägar (UDR) och NAT-gateway
  • Integrering av privata nätverk
  • Protokolltäckning
  • Belastningsutjämning
  • Tjänsteupptäckt
  • Anpassade domäner och hanterad TLS (Transport Layer Security)
  • Ömsesidig TLS (mTLS)
  • Avancerat containernätverk för Azure Kubernetes Service (AKS)
  • Nätverksbegrepp för specifika Azure-tjänster

Säkerhetshänsyn

  • Nätverksprinciper för trafiksäkerhet inom kluster
  • Nätverkssäkerhetsgrupper (NSG:er)
  • Azure Key Vault-integrering
  • Stöd för hanterad identitet
  • Hotskydd och sårbarhetsbedömningar med Microsoft Defender för containrar
  • Säkerhetsbaslinjer
  • Azure Well-Architected Framework för säkerhet

Operativa överväganden

  • Uppdateringar och korrigeringar
  • Uppdateringar av containeravbildningar
  • Skalbarhet för lodrät infrastruktur
  • Skalbarhet för horisontell infrastruktur
  • Skalbarhet för program
  • Observerbarhet
  • Well-Architected Framework för driftskvalitet

Tillförlitlighetsöverväganden

  • Serviceavtal (SLA)
  • Redundans genom tillgänglighetszoner
  • Hälsokontroller och självåterställning
  • Distributioner av program med noll driftstopp
  • Resursbegränsningar
  • Well-Architected Framework för pålitlighet

Den här artikeln fokuserar på en delmängd av Azure-containertjänster som tillhandahåller en mogen funktionsuppsättning för webbprogram och API:er, nätverk, observerbarhet, utvecklarverktyg och åtgärder. Dessa tjänster omfattar AKS, AKS Automatic, Azure Container Apps och Web App for Containers. En fullständig lista över Azure-containertjänster finns i Containertjänster.

Notera

Vissa avsnitt skiljer AKS Standard från AKS Automatic. Om inga skillnader nämns i ett avsnitt kan du anta att det har samma funktioner som de andra distributionsmodellerna.

Arkitekturöverväganden

Det här avsnittet beskriver arkitekturbeslut som är svåra att ångra eller korrigera utan betydande driftstopp eller omdistribution. Det är särskilt viktigt att noggrant utvärdera grundläggande komponenter som nätverk och säkerhet innan du slutför dem.

Dessa överväganden är inte specifika för Well-Architected Framework-pelare. De kräver dock extra granskning och utvärdering mot affärskrav när du väljer en Azure-containertjänst.

Notera

AKS Automatic har en mer åsiktsbaserad metod än AKS Standard, vilket innebär att den har vissa inbyggda funktioner som inte kan stängas av. Den här guiden beskriver inte dessa funktioner. För mer information, se AKS automatisk och standard funktionsjämförelse.

Stöd för operativsystem

De flesta containerbaserade program körs i Linux-containrar, som alla Azure-containertjänster stöder. Alternativen är dock mer begränsade för arbetsbelastningskomponenter som kräver Windows-containrar.

Funktion Containerapplikationer AKS Automatisk AKS Webbapp för containrar
Linux-stöd
Windows-stöd
Stöd för blandat operativsystem ❌*

*Kräver separata Azure App Service-planer för Windows och Linux

Nätverksöverväganden

Det är viktigt att förstå nätverksdesign tidigt i planeringsprocesserna på grund av säkerhets- och efterlevnadsbegränsningar och införda riktlinjer. I allmänhet beror de viktigaste skillnaderna mellan de Azure-tjänster som beskrivs i den här guiden på dina önskemål. Överväg följande tjänster:

  • Container Apps är ett PaaS-erbjudande (plattform som en tjänst) som tillhandahåller Azure-hanterade nätverksfunktioner som tjänstidentifiering, interna hanterade domäner och kontroller för virtuella nätverk.

  • AKS är den mest konfigurerbara av de tre tjänsterna och ger mest kontroll över nätverksflödet. AKS tillhandahåller till exempel anpassade ingresskontrollanter och kontroll av intraklustertrafik via Kubernetes-nätverksprinciper. Arbetsbelastningsteam kan dra nytta av olika Azure-hanterade nätverkstillägg och installera och använda tillägg från Kubernetes-ekosystemet.

  • Web App for Containers är en funktion i App Service. Dess nätverksmodell, särskilt för integrering av privata nätverk, följer noga apptjänstens arkitektur. Den här arkitekturen är bekant för arbetsbelastningsteam som använder App Service. För team utan tidigare App Service-upplevelse som föredrar en mer konventionell integrering av virtuella Azure-nätverk rekommenderar vi Container Apps.

Nätverk är ett grundläggande infrastrukturlager. Det är ofta svårt att göra ändringar i designen utan att omdistribuera arbetsbelastningen, vilket kan leda till stilleståndstid. Om din arbetsbelastning har specifika nätverkskrav kan du granska det här avsnittet noggrant innan du begränsar valet av Azure-containertjänst.

Nätverksadressutrymmen

När du integrerar program i virtuella nätverk måste du planera IP-adresser för att säkerställa att containerinstanserna har tillräckligt. Under den här processen allokerar du extra IP-adresser för att hantera uppdateringar, blågröna distributioner och liknande scenarier. Dessa händelser kan tillfälligt distribuera extra instanser som använder fler adresser än vanligt.

Funktion eller krav Containerapplikationer AKS Webbapp för containrar
Dedikerade undernät – Förbrukningsplan: valfritt

– Dedikerad plan: krävs
Krävs Valfri
KRAV för IP-adress - Förbrukningsplan. Se Endast förbrukningsmiljö.

- Dedikerad plan. Se Miljö för arbetsbelastningsprofiler.
Se Virtuella Azure-nätverk för AKS. Se Krav för App Service-undernät.

AKS-kraven beror på ditt valda nätverks-plugin-program. Vissa nätverks-plugin-program för AKS kräver bredare IP-adressreservationer. Den informationen ligger utanför den här artikelns omfång. Mer information finns i Nätverksbegrepp för AKS.

Förstå trafikflödet

De typer av trafikflöden som krävs för en lösning kan påverka nätverksdesignen.

I följande avsnitt beskrivs olika nätverksbegränsningar. Dessa begränsningar påverkar om du behöver distribuera extra undernät, beroende på dina krav för följande konfigurationer:

  • Flera samlokaliserade arbetsbelastningar

  • Privat åtkomst, offentlig åtkomst eller både och

  • Ett åtkomststyrt flöde av trafik mellan öst och väst i ett kluster för Container Apps och AKS, eller i ett virtuellt nätverk för alla Azure-containertjänster

Planering av undernät

Ett undernät måste vara tillräckligt stort för att inkludera programinstanser, men kapaciteten är inte den enda faktorn som avgör nätverkets fotavtryck för att distribuera dessa arbetsbelastningar.

Capability Containerapplikationer AKS Webbapp för containrar
Stöd för samlokaliserade arbetsbelastningar i ett undernät* ❌* Inte tillgängligt*

*Bästa praxis, inte en teknisk begränsning

För Container Apps gäller undernätsintegrering endast för en enda Container Apps-miljö. Varje Container Apps-miljö är begränsad till en enda inkommande IP-adress, antingen offentlig eller privat.

Varje Container Apps-miljö är endast avsedd för en enda arbetsbelastning där beroende program samallokeras. Därför måste du introducera extra Azure-nätverksinstallationer för ingressbelastningsutjämning om du behöver både offentliga och privata ingresser. Exempel är Azure Application Gateway och Azure Front Door. Om flera arbetsbelastningar kräver uppdelning måste du etablera extra Container Apps-miljöer och allokera ett separat undernät för varje miljö.

AKS tillhandahåller detaljerad öst-västlig nätverksflödeskontroll i klustret via Kubernetes-nätverksprincip. Med den här flödeskontrollen kan du segmentera flera arbetsbelastningar med olika nätverkssäkerhetsgränser inom samma kluster.

För Web App for Containers finns det inga begränsningar för antalet appar som du kan integrera med ett enda undernät om undernätet har tillräcklig kapacitet. Det finns inga metodtips för åtkomstkontroll mellan webbappar i samma virtuella nätverk. Varje webbapp hanterar oberoende åtkomstkontroll för trafik i öst-väst eller nord-syd från det virtuella nätverket eller Internet.

Notera

Du kan inte ändra storlek på undernät som har resurser distribuerade i dem. Planera ditt nätverk noggrant för att undvika att distribuera om hela arbetsbelastningskomponenter, vilket kan leda till stilleståndstid.

Ingress IP-adress tillgänglighet

Följande tabell innehåller det föregående avsnittet för planering av undernät för att definiera antalet IP-adresser som kan exponeras. Den gäller för ett godtyckligt antal program som finns i en enda distribution av en Azure-containertjänst.

Capability Containerapplikationer AKS Webbapp för containrar
Antalet inkommande IP-adresser Ett Många – App Service-miljö: En

– Ingen App Service-miljö: Många

Container Apps stöder en IP-adress för varje miljö, antingen offentlig eller privat. AKS stöder valfritt antal offentliga eller privata IP-adresser. Web App for Containers, när det används utanför en App Service-miljö, tillåter en offentlig IP-adress för varje App Service-plan och flera distinkta privata IP-adresser via privata Azure-slutpunkter.

Tänk på att webbappar som är integrerade i en App Service-miljö endast tar emot trafik via den enda inkommande IP-adressen som är associerad med App Service-miljön, oavsett om den är offentlig eller privat.

Stöd för UDR och NAT-gateway

Om en arbetsbelastning kräver UDR och NAT-gatewayfunktioner för detaljerad nätverkskontroll kräver Container Apps användning av arbetsbelastningsprofiler. UDR- och NAT-gatewaykompatibilitet är inte tillgängligt i förbrukningsplanen för Container Apps.

AKS och Web App for Containers implementerar dessa två nätverksfunktioner via standardfunktioner för virtuella nätverk respektive integrering av virtuella nätverk. AKS-nodpooler och Web App for Containers i en App Service-miljö är redan direkta virtuella nätverksresurser. Web App for Containers som inte finns i en App Service-miljö stöder UDR och NAT-gateway via virtuell nätverksintegrering. Med integrering av virtuella nätverk finns resursen tekniskt sett inte direkt i det virtuella nätverket. Alla dess utgående trafikflöden flödar dock genom det virtuella nätverket, och nätverkets associerade regler påverkar trafiken som förväntat.

Capability Containerapplikationer AKS Webbapp för containrar
UDR-stöd – Endast förbrukningsbaserad plan: ❌

– Arbetsbelastningsprofilplan: ✅
STÖD för NAT-gateway – Endast förbrukningsbaserad plan: ❌

– Arbetsbelastningsprofilplan: ✅

Integrering av privata nätverk

För arbetsbelastningar som kräver strikt privat nätverk på Layer 4 för både ingående och utgående trafik bör du överväga Container Apps, AKS och App Service-miljöns single-tenant SKU, där arbetsbelastningar distribueras i ett självhanterat virtuellt nätverk. Den här distributionen tillhandahåller anpassade detaljerade privata nätverkskontroller.

Nätverksfunktion Containerapplikationer AKS Webbapp för containrar
Privat ingress till ett virtuellt nätverk Via privat slutpunkt
Privat trafikutgång ur ett virtuellt nätverk Via integrering av virtuella nätverk
Fullständigt undertryckt offentlig slutpunkt Endast en App Service-miljö
Privat nätverk med Web App for Containers

Web App for Containers innehåller extra nätverksfunktioner som inte visas på samma sätt som andra Azure-tjänster som beskrivs i den här artikeln. För att implementera strikta krav för privata nätverk bör arbetsbelastningsteam bekanta sig med dessa nätverksbegrepp. Granska noggrant följande nätverksfunktioner:

Om du vill ha en PaaS-lösning och föredrar nätverksbegrepp som delas mellan flera Azure-lösningar bör du överväga Container Apps.

Protokolltäckning

Ett viktigt övervägande för värdplattformen är de nätverksprotokoll som stöds för inkommande programbegäranden (ingress). Web App for Containers är det strängaste alternativet och stöder endast HTTP och HTTPS. Container Apps tillåter även inkommande TCP-anslutningar (Transmission Control Protocol). AKS är den mest flexibla och stöder obegränsad användning av TCP och UDP (User Datagram Protocol) på självvalda portar.

Stöd för nätverk och protokoll Containerapplikationer AKS Webbapp för containrar
Stöd för protokoll och portar - HTTP (port 80)*

– HTTPS (port 443)*

- TCP (portarna 1 till 65535, utom 80 och 443)
– TCP (valfri port)

– UDP (valfri port)
- HTTP (port 80)

– HTTPS (port 443)
WebSocket-stöd
HTTP/2-stöd

*I Container Apps-miljön kan HTTP eller HTTPS exponeras på valfri port för kommunikation mellan kluster. I det scenariot gäller inte inbyggda HTTP-funktioner för Container Apps som resursdelning mellan ursprung och sessionstillhörighet.

Både Container Apps och Web App for Containers stöder TLS 1.2 för deras inbyggda HTTPS-ingress.

Belastningsutjämning

Med Container Apps och Web App for Containers abstraherar Azure fullständigt lastbalanserarna Layer 4 och Layer 7.

AKS använder däremot en modell för delat ansvar. I den här modellen hanterar Azure den underliggande Azure-infrastruktur som arbetsbelastningsteamet konfigurerar genom att samverka med Kubernetes API. För Layer 7-belastningsutjämning i AKS kan du välja ett Azure-hanterat alternativ, till exempel tillägget AKS-hanterad programroutning, Application Gateway för containrar eller distribuera och självhantera valfri ingresskontrollant.

Lastbalanserare Containerapplikationer AKS Webbapp för containrar
Lager 4-lastbalanserare Azure-hanterad Delat ansvar Azure-hanterad
Layer 7-lastbalanserare Azure-hanterad Delad eller självstyrd Azure-hanterad

Avancerade containernätverkstjänster för AKS

Advanced Container Networking Services (ACNS) ger AKS avancerade nätverksfunktioner som går utöver vad som är tillgängligt i Container Apps eller Web App for Containers. Dessa funktioner ger kraftfull observerbarhet och förbättrad säkerhet som utformats för dynamiska, containerbaserade miljöer.

  • Observerbarhet för containernätverk:

    ACNS använder Hubbles kontrollplan för att ge intuitiva och djupgående insikter om nätverksbeteende. Med mått på nodnivå och poddnivå som är lätta att använda och omfattande flödesloggar kan du snabbt hitta problem och optimera prestanda. Den här inbyggda observerbarheten minskar behovet av externa övervakningsinställningar och sänker inlärningskurvan som vanligtvis associeras med Kubernetes-nätverksdiagnostik.

  • Säkerhet för containernätverk:

    För kluster som använder Azure Container Networking Interface som drivs av Cilium tillhandahåller ACNS filtrering av fullständigt kvalificerade domännamn (FQDN). I stället för att hantera statiska IP-adressbaserade säkerhetsprinciper kan du definiera principer baserat på domännamn. Den här dynamiska metoden förenklar principhanteringen och överensstämmer även med moderna nollförtroendesäkerhetsmodeller. Den här metoden gör det enklare för dig att framtvinga robust säkerhet utan ständiga manuella uppdateringar.

Mer information finns i följande resurser:

Tjänsteupptäckt

I molnarkitekturer kan körningar tas bort och återskapas när som helst för att balansera om resurser, så instans-IP-adresser ändras regelbundet. Dessa arkitekturer använder FQDN för tillförlitlig och konsekvent kommunikation.

Mekanism för tjänstidentifiering Containerapplikationer AKS Webbapp för containrar
Tjänsteupptäckt Azure-hanterat FQDN Kubernetes kan konfigureras Azure-hanterat FQDN

Web App for Containers tillhandahåller offentliga inkommande (nord-syd-kommunikation) FQDN som standard. Ingen extra DNS-konfiguration krävs. Det finns dock ingen inbyggd mekanism för att underlätta eller begränsa trafik mellan andra appar (kommunikation mellan öst och väst).

Container Apps tillhandahåller även offentliga inkommande FQDN:er. Container Apps går dock längre genom att tillåta att appens FQDN exponeras och begränsa trafiken endast i miljön. Den här funktionen gör det enklare att hantera kommunikation mellan öst och väst och aktivera komponenter som Dapr.

Kubernetes-distributioner kan inte identifieras inifrån eller utanför klustret. Om du vill exponera program för nätverket på ett adresserbart sätt måste du definiera och skapa Kubernetes-tjänster enligt kubernetes-API:et.

Viktig

Endast Container Apps och AKS tillhandahåller tjänstidentifiering via interna DNS-scheman (Domain Name System) i respektive miljö. Den här funktionen kan förenkla DNS-konfigurationer i utvecklings-/test- och produktionsmiljöer. Du kan till exempel skapa dessa miljöer med godtyckliga tjänstnamn som bara måste vara unika i miljön eller klustret. De kan vara desamma i utvecklings-/test- och produktionsmiljöer. Med Web App for Containers måste tjänstnamn vara unika i olika miljöer för att undvika konflikter med Azure DNS.

Anpassade domäner och hanterad TLS

Både Container Apps och Web App for Containers tillhandahåller inbyggda lösningar för anpassade domäner och certifikathantering.

Stöd för anpassad domän och TLS Containerapplikationer AKS Webbapp för containrar
Konfigurera anpassade domäner Standardfunktion Bring your own (BYO) Standardfunktion
Hanterad TLS för Azure FQDN Standardfunktion Ej tillgänglig Standardfunktion
Hanterad TLS för anpassade domäner Standardfunktion BYO BYO Standardfunktion eller BYO

AKS-användare ansvarar för att hantera DNS-, klusterkonfigurationer och TLS-certifikat för sina anpassade domäner. AKS tillhandahåller inte hanterad TLS, men kunder kan använda programvara från Kubernetes-ekosystemet, till exempel cert-manager, för att hantera TLS-certifikat.

mTLS

Ett annat alternativ för att begränsa inkommande trafik är mTLS. Det här säkerhetsprotokollet säkerställer att både klienten och servern i kommunikationen autentiseras. För att utföra autentiseringen utbyter och verifierar båda parter certifikat innan några data överförs.

Web App for Containers har inbyggt mTLS-stöd för inkommande klientanslutningar. Programmet måste dock verifiera certifikatet genom att X-ARR-ClientCert komma åt HTTP-huvudet som App Service-plattformen vidarebefordrar.

Container Apps har också inbyggt stöd för mTLS. Klientcertifikatet vidarebefordras till programmet i HTTP-huvudet X-Forwarded-Client-Cert. Du kan också enkelt aktivera automatisk mTLS för intern kommunikation mellan appar i en enda miljö.

Du kan implementera mTLS i AKS via det Istio-baserade tjänstnätet som ett hanterat tillägg. Det här tillägget innehåller mTLS-funktioner för inkommande klientanslutningar och kommunikation mellan tjänster inom klustret. Team som hanterar arbetsbelastningar kan också välja att installera och hantera en annan service mesh-lösning från Kubernetes-ekosystemet. De här alternativen gör mTLS-implementeringen i Kubernetes till den mest flexibla.

Tjänstspecifika nätverksbegrepp

I föregående avsnitt beskrivs några av de vanligaste övervägandena för nätverksdesign. Mer information om nätverksfunktioner som är specifika för enskilda Azure-containertjänster finns i följande artiklar:

Föregående avsnitt fokuserar på nätverksdesign. Fortsätt till nästa avsnitt om du vill veta mer om nätverkssäkerhet och skydd av nätverkstrafik.

Säkerhetshänsyn

Om säkerhetsriskerna inte åtgärdas kan det leda till obehörig åtkomst, dataintrång eller läckage av känslig information. Containrar tillhandahåller en inkapslad miljö för ditt program. Värdsystemen och underliggande nätverksöverlägg kräver dock extra skyddsräcken. Ditt val av Azure-containertjänst måste stödja dina specifika krav för att skydda varje program individuellt och tillhandahålla lämpliga säkerhetsåtgärder för att förhindra obehörig åtkomst och minska risken för attacker.

Översikt över säkerhetsjämförelse

De flesta Azure-tjänster, inklusive Container Apps, AKS och Web App for Containers, integreras med viktiga säkerhetserbjudanden, inklusive Key Vault och hanterade identiteter.

Av tjänsterna i den här guiden ger AKS den största konfigurerbarheten och utökningsbarheten, delvis genom att exponera underliggande komponenter, som ofta kan skyddas med hjälp av konfigurationsalternativ. Du kan till exempel använda konfigurationsalternativ för att inaktivera lokala konton till Kubernetes API-servern eller aktivera automatiska uppdateringar av underliggande noder.

AKS Automatiska kluster har en härdad standardkonfiguration och har många säkerhetsinställningar för kluster, program och nätverk aktiverade som standard. Dessa inledande konfigurationer minskar inte bara distributionstiden utan ger också användarna en standardiserad konfiguration som är förvaliderad. Den här konfigurationen ger användarna en gedigen grund för driftsansvaret dag 2. Den här grunden hjälper till att förkorta inlärningskurvan för långsiktig klusterhantering för team som är nya inom tekniken.

För en detaljerad jämförelse, granska noggrant följande överväganden för att säkerställa att dina arbetsbelastningens säkerhetskrav kan uppfyllas.

Säkerhet för Kubernetes-kontrollplan

AKS ger den största flexibiliteten av de tre alternativ som beskrivs i den här artikeln. Det ger fullständig åtkomst till Kubernetes API så att du kan anpassa containerorkestrering. Den här åtkomsten till Kubernetes API representerar dock också en betydande attackyta som du behöver skydda.

Viktig

Det här avsnittet är inte relevant för Web App for Containers, som använder Resource Manager-API:et som kontrollplan.

Identitetsbaserad säkerhet

Du ansvarar för att skydda identitetsbaserad åtkomst till API:et. Kubernetes tillhandahåller ett eget autentiserings- och auktoriseringshanteringssystem. Det här systemet måste skyddas med åtkomstkontroller.

För att dra nytta av ett enda glasplan för identitets- och åtkomsthantering i Azure är det bästa praxis att inaktivera Kubernetes-specifika lokala konton och i stället implementera AKS-hanterad Microsoft Entra-integrering tillsammans med rollbaserad åtkomstkontroll i Azure (Azure RBAC) för Kubernetes. Om du implementerar den här bästa metoden behöver administratörer inte utföra identitets- och åtkomsthantering på flera plattformar.

Åtkomst till Kubernetes API Containerapplikationer AKS
Åtkomstkontroller för Kubernetes API Ingen åtkomst Fullständig åtkomst

Du har inte åtkomst till Kubernetes API om du använder Container Apps. Microsoft tillhandahåller säkerhet för det här API:et.

Nätverksbaserad säkerhet

Om du vill begränsa nätverksåtkomsten till Kubernetes-kontrollplanet måste du använda AKS, som innehåller två alternativ. Det första alternativet är att använda privata AKS-kluster, som använder Azure Private Link mellan API-serverns privata nätverk och AKS-klustrets privata nätverk. Det andra alternativet är integrering av virtuella API-servrar där API-servern är integrerad i ett delegerat undernät.

Det finns konsekvenser för implementering av nätverksbegränsad åtkomst till Kubernetes-API:et. Framför allt kan hantering endast utföras inifrån det privata nätverket. Vanligtvis behöver du distribuera lokalt installerade agenter för Azure DevOps eller GitHub Actions. Mer information om andra begränsningar finns i den produktspecifika dokumentationen.

Åtkomstkontroll för Kubernetes API Containerapplikationer AKS
Kubernetes API-nätverkssäkerhet Kan inte konfigureras i PaaS Kan konfigureras med hjälp av en offentlig eller privat IP-adress

ACNS förbättrar säkerheten för dataplanet i AKS. För kluster som använder Azure Container Networking Interface som drivs av Cilium introducerar ACNS containernätverkssäkerhet via FQDN-filtrering. I stället för att hantera statiska IP-adressbaserade säkerhetsprinciper kan du definiera dynamiska principer baserat på FQDN. Den här metoden förenklar principhanteringen, minskar administrativa kostnader och stöder en Zero Trust-modell genom att se till att endast trafik till betrodda domäner tillåts.

Notera

ACNS-säkerhetsfunktioner kräver Kubernetes version 1.29 eller senare och är endast tillgängliga i kluster som använder Cilium-dataplanet.

Dessa överväganden gäller inte för Container Apps. Eftersom det är PaaS abstraherar Microsoft den underliggande infrastrukturen.

Nätverkssäkerhet för dataplanet

Följande nätverksfunktioner kan användas för att styra åtkomsten till, från och inom en arbetsbelastning.

Nätverksprinciper för trafiksäkerhet inom kluster

Vissa säkerhetsstatusar kräver nätverkstrafiksegregering i en miljö. Den här segregationen är till exempel ofta nödvändig när du använder miljöer för flera klienter för att vara värd för flera eller flernivåapplikationer. I dessa scenarier väljer du AKS och implementerar nätverksprinciper, som är molnbaserade funktioner som möjliggör detaljerad konfiguration av Layer 4-nätverk i Kubernetes-kluster.

Stöd för nätverkspolicy Containerapplikationer AKS Webbapp för containrar
Nätverksprinciper Förbrukningsplan: ❌

Dedikerad plan: ❌

Av de tre Azure-tjänster som beskrivs i den här artikeln är AKS den enda tjänst som stöder ytterligare arbetsbelastningsisolering i klustret. Nätverksprinciper stöds inte i Container Apps eller Web App for Containers.

NSG:er

I alla scenarier kan du reglera nätverkskommunikationen i det bredare virtuella nätverket med hjälp av NSG:er. Med den här metoden kan du använda Layer 4-trafikregler som reglerar både inkommande och utgående trafik på den virtuella nätverksnivån.

NSG-stöd Containerapplikationer AKS Webbapp för containrar
NSG:er – Förbrukningsplan: ✅

– Dedikerad plan: ✅
✅ Virtuella nätverksintegrerade appar, endast utgående

Inbyggda IP-adressbegränsningar för ingress

Container Apps och Web App for Containers tillhandahåller inbyggda käll-IP-adressbegränsningar för inkommande trafik för enskilda program. AKS kan uppnå samma funktioner men kräver Kubernetes-inbyggda funktioner via Kubernetes-tjänstens API-resurs där du kan ange värden för loadBalancerSourceRanges.

Nätverksåtkomstkontroll och resurspåverkan Containerapplikationer AKS Webbapp för containrar
Inbyggda ip-adressbegränsningar för inkommande
Resursförbrukning - Använder klusterresurser -

Notera

AKS stöder begränsningar för inkommande IP-adresser, men du använder Kubernetes-inbyggda funktioner för att implementera den här funktionen i stället för Azure-interna kontroller, till skillnad från andra Azure-tjänster.

Säkerhet på programnivå

Du måste skydda arbetsbelastningar inte bara på nätverks- och infrastrukturnivå, utan även på arbetsbelastnings- och programnivå. Azure-containerlösningar integreras med Azure-säkerhetserbjudanden för att standardisera säkerhetsimplementering och kontroller för dina program.

Key Vault-integreringen

Det är en bra idé att lagra och hantera hemligheter, nycklar och certifikat i en nyckelhanteringslösning som Key Vault för att ge förbättrad säkerhet för dessa komponenter. I stället för att lagra och konfigurera hemligheter i kod eller i en Azure-beräkningstjänst bör alla program integreras med Key Vault.

Med Key Vault-integrering kan programutvecklare fokusera på sin programkod. Alla tre Azure-containertjänster som beskrivs i den här artikeln kan automatiskt synkronisera hemligheter från Key Vault-tjänsten och tillhandahålla dem till programmet, vanligtvis som miljövariabler eller monterade filer.

Integrering av hemligheter Containerapplikationer AKS Webbapp för containrar
Key Vault-integreringen

Mer information finns i följande resurser:

Stöd för hanterad identitet

Program kan använda hanterade identiteter för att autentisera till Microsoft Entra ID-skyddade tjänster utan att behöva använda nycklar eller hemligheter. Container Apps och Web App for Container tillhandahåller inbyggt Azure-stöd för hanterad identitet på programnivå. Stöd för hanterad identitet på programnivå för AKS uppnås via Microsoft Entra-arbetsbelastnings-ID. AKS kräver också infrastrukturrelaterad hanterad identitet för att tillåta klusteråtgärder för Kubelet, kontrollplanet och olika AKS-tillägg.

Hanterad identitetsrapport Containerapplikationer AKS Webbapp för containrar
Stöd för hanterade identiteter inom infrastrukturen Ej tillgänglig Ej tillgänglig
Stöd för hanterad identitet för containerhämtning
Stöd för programhanterad identitet

Mer information finns i följande resurser:

Hotskydd och sårbarhetsbedömningar med Defender för containrar

Skydd mot hot och sårbarheter är också viktigt. Det är en bästa praxis att använda Defender för containrar. Sårbarhetsbedömningar stöds i Azure-containerregister. Därför kan alla Azure-containertjänster använda dem, inte bara de som beskrivs i den här artikeln. Defender for Containers-körningsskydd är dock endast tillgängligt för AKS.

Eftersom AKS exponerar det interna Kubernetes-API:et kan klustersäkerhet också utvärderas med Kubernetes-specifika säkerhetsverktyg från Kubernetes-ekosystemet.

Säkerhetsfunktioner Containerapplikationer AKS Webbapp för containrar
Skydd mot hot under körningstid

Mer information finns i Stödmatris för containrar i Microsoft Defender för molnet.

Sårbarhetsbedömningar för containeravbildningar är inte realtidsgenomsökningar. Azure-containerregistret genomsöks med jämna mellanrum.

Säkerhetsbaslinjer

De flesta Azure-containertjänster integrerar vanligtvis Azure-säkerhetserbjudanden. Tänk på att en säkerhetsfunktionsuppsättning bara är en liten del av implementeringen av molnsäkerhet. Mer information om hur du implementerar säkerhet för containertjänster finns i följande tjänstspecifika säkerhetsbaslinjer:

Notera

AKS Automatiska kluster konfigureras med specifika säkerhetsinställningar. Se till att inställningarna är i linje med dina arbetsbelastningsbehov.

Well-Architected Framework för säkerhet

Den här artikeln fokuserar på viktiga skillnader mellan containertjänstfunktioner.

Mer fullständig säkerhetsvägledning om AKS finns i AKS-metodtips.

Operativa överväganden

För att framgångsrikt köra ett arbetsflöde i produktion måste du implementera praxis för operativ excellens, inklusive centraliserad loggning, övervakning, skalbarhet, regelbundna uppdateringar och patchning samt hantering av avbildningar.

Uppdateringar och korrigeringar

Det är viktigt att ett programs underliggande operativsystem uppdateras och korrigeras regelbundet. Varje uppdatering utgör dock en felrisk. Det här avsnittet och nästa avsnitt beskriver de viktigaste övervägandena för de tre containertjänsterna när det gäller det delade ansvaret mellan kunden och plattformen.

Som en hanterad Kubernetes-tjänst tillhandahåller AKS uppdaterade avbildningar för nodoperativsystemet och kontrollplanskomponenterna. Men arbetsbelastningsteamen ansvarar för att tillämpa uppdateringar på sina kluster. Du kan utlösa uppdateringar manuellt eller använda funktionen automatiska uppgraderingskanaler i klustret för att säkerställa att klustren är up-to-date. Mer information om AKS day-2-driftguiden finns i Korrigera och uppgradera AKS-kluster.

Container Apps och Web App for Containers är PaaS-lösningar. Azure ansvarar för att hantera uppdateringar och korrigeringar, så att du kan undvika komplexiteten i AKS-uppgraderingshantering.

Uppdatera ansvar Containerapplikationer AKS Automatisk AKS Webbapp för containrar
Kontrollplansuppdateringar Plattform Kund Plattform Plattform
Värduppdateringar och patchar Plattform Kund Plattform Plattform
Uppdateringar och korrigeringar av containeravbildningar Kund Kund Kund Kund

Uppdateringar av containeravbildningar

Oavsett Azure-containerlösningen ansvarar du för dina egna containeravbildningar. Om det finns säkerhetskorrigeringar för containerbasavbildningar är det ditt ansvar att återskapa avbildningarna. Om du vill få aviseringar om dessa säkerhetsrisker använder du Defender för containrar för Azure Container Registry-containrar.

Skalbarhet

Skalning används för att justera resurskapaciteten för att uppfylla kraven. Den lägger till mer kapacitet för att säkerställa prestanda och tar bort outnyttjad kapacitet för att spara pengar. När du väljer en containerlösning måste du överväga infrastrukturbegränsningar och skalningsstrategier.

Skalbarhet för lodrät infrastruktur

Vertikal skalning syftar på möjligheten att öka eller minska befintlig infrastruktur, till exempel beräknings-CPU och minne. Olika arbetsbelastningar kräver olika mängder beräkningsresurser. När du väljer en Azure-containerlösning måste du vara medveten om de maskinvaru-SKU-erbjudanden som är tillgängliga för en specifik Azure-tjänst. Dessa erbjudanden varierar och kan medföra extra begränsningar.

För AKS läser du storlekarna för virtuella datorer (VM) i Azure-dokumentationen och AKS-begränsningarna för varje region.

Följande artiklar innehåller information om SKU-erbjudanden för Container Apps och App Service:

Skalbarhet för horisontell infrastruktur

Horisontell skalning syftar på möjligheten att öka eller minska kapaciteten genom att lägga till eller ta bort infrastrukturkomponenter, till exempel VM-noder. När skalningen ökar eller minskar abstraherar förbrukningsnivån för containerappar de underliggande virtuella datorerna. För de återstående Azure-containertjänsterna hanterar du den horisontella skalningsstrategin med hjälp av standard-Resource Manager-API:et.

Skalning upp och ner inkluderar ombalansering av instanser, vilket skapar en risk för stilleståndstid. Risken är mindre än motsvarande risk med vertikal skalning. Oavsett är du ansvarig för att säkerställa att dina program kan hantera fel. Du ansvarar också för att implementera smidiga uppstarter och avstängningar av dina applikationer för att undvika avbrott.

Infrastrukturflexitet Containerapplikationer AKS Webbapp för containrar
Infrastrukturskalning och utskalning – Förbrukningsplan: Inte tillgänglig

– Dedikerad plan: Konfigurerbar
Konfigurerbara Konfigurerbara
Flexibel maskinvaruetablering – Förbrukningsplan: Inte tillgänglig

– Dedikerad plan: Abstrakt med arbetsbelastningsprofiler
Vilken som helst VM SKU Sammanfattningsbaserad, se App Service-plan

Viktig

Alternativen för maskinvaruetablering som är tillgängliga via containerappars dedikerade plan (arbetsbelastningsprofiler) och Web App for Containers (App Service-planer) är inte lika flexibla som AKS. Du måste bekanta dig med de SKU:er som är tillgängliga i varje tjänst för att säkerställa att dina behov uppfylls.

Skalbarhet för program

Skalning av infrastruktur och program utlöses vanligtvis av resursförbrukning, till exempel CPU och minne. Vissa containerlösningar kan också skala antalet containerinstanser baserat på programspecifika mått, till exempel HTTP-begäranden. AKS och Container Apps kan till exempel skala containerinstanser baserat på meddelandeköer via Kubernetes händelsedriven autoskalning (KEDA) och många andra mått via dess skalare. De här funktionerna ger flexibilitet när du väljer skalbarhetsstrategin för ditt program. Web App for Containers förlitar sig på de skalbarhetsalternativ som Azure tillhandahåller. Web App for Containers stöder inte anpassade skalningskonfigurationer som KEDA.

Skalbarhetsmodell Containerapplikationer AKS Webbapp för containrar
Utskalning av containrar HTTP, TCP eller måttbaserad (CPU, minne eller händelsedriven) Metrikbaserad (CPU, minne eller anpassad) Manuell, måttbaserad eller automatisk
Händelsestyrd skalbarhet Ja. Molnbaserat. Ja. Molnbaserat. Extra konfiguration krävs. Ja. Azure resursspecifik.

AKS Automatic aktiverar horisontell podd autoskalare, KEDA och vertikal podd autoskalare som standard.

Observerbarhet

Instrumentering av arbetsbelastning

Det kan vara svårt att samla in mått för komplexa program eller program med flera nivåer. För att hämta mått kan du integrera containerbaserade arbetsbelastningar med Azure Monitor på följande sätt:

  • Automatisk instrumentering: Inga kodändringar krävs

  • Manuell instrumentering: Minimala kodändringar som krävs för att integrera och konfigurera SDK och klienten

    Instrumenteringsmetod Containerapplikationer AKS Webbapp för containrar
    Automatisk instrumentering genom plattform Partiellt stöd*
    Automatisk instrumentering via agent Partiellt stöd* Ej tillgänglig
    Manuell instrumentering Via SDK eller OpenTelemetry Via SDK eller OpenTelemetry Via SDK eller OpenTelemetry

*AKS och Web App for Containers stöder automatisk instrumentering för specifika konfigurationer av Linux- och Windows-arbetsbelastningar, beroende på programspråket. Mer information finns i följande artiklar:

Instrumentering i programkod är programutvecklares ansvar, så det är oberoende av vilken Azure-containerlösning som helst. Använd följande lösningar för din arbetsbelastning:

Loggar och mätvärden

Alla Azure-containertjänster tillhandahåller funktioner för program- och plattformsloggar och mått. Programloggar är konsolloggar som din arbetsbelastning genererar. Plattformsloggar samlar in händelser som inträffar på plattformsnivå, utanför programmets omfång, till exempel skalning och distributioner. Mått är numeriska värden som beskriver någon aspekt av ett system vid en tidpunkt. Med mått kan du övervaka och avisera om systemets prestanda och hälsa.

Azure Monitor är den nyckelloggnings- och måtttjänst i Azure som integreras med dessa tjänster. Azure Monitor använder resursloggar för att separera loggar från olika källor i kategorier och samlar in mått för att ge insikter om resursprestanda. Ett sätt att avgöra vilka loggar och mått som är tillgängliga från varje Azure-tjänst är att granska resursloggkategorierna och tillgängliga mått för var och en av tjänsterna.

Observerbarhetsfunktioner Containerapplikationer AKS Automatisk AKS Webbapp för containrar
Stöd för loggströmning
Stöd för Azure Monitor
Azure Monitor-resursloggar - Konsol

- System
Kubernetes API-server, granskning, scheduler och autoskalning av kluster Samma som AKS ConsoleLogs, HTTPLogs och EnvironmentPlatformLogs
Insamling och övervakning av mått Mått via Azure Monitor. Anpassade metrik via Dapr-metrik. Mått via Azure Monitor. Anpassade mått via Prometheus (kräver manuell installation). Förkonfigurerad hanterad Prometheus för måttinsamling och Hanterad Grafana för visualisering. Mått via Azure Monitor. Mått via Azure Monitor
Förkonfigurerad Prometheus och Grafana Kräver manuell installation. Managed Prometheus och Managed Grafana är förkonfigurerade som standard.

Överväg mått och loggar för följande tjänster:

  • Container Apps abstraherar alla sina interna Kubernetes-loggar i två kategorier: konsolloggar, som innehåller containerloggar för arbetsbelastningar och systemloggar, som innehåller alla plattformsrelaterade loggar. För mått integreras Container Apps med Azure Monitor för att samla in standardmått och stöder anpassade mått via Dapr-integrering för avancerade scenarier.

  • AKS tillhandahåller Kubernetes-relaterade loggar och detaljerad kontroll över vad som loggas. AKS behåller fullständig kompatibilitet med Kubernetes-klientverktyg för loggströmning, till exempel kubectl. För mått integreras AKS med Azure Monitor för att samla in både kluster- och nodmått. Du kan samla in anpassade mått med hjälp av Prometheus och visualisera dem med Grafana, men den här åtgärden kräver manuell konfiguration.

  • AKS Automatic är förkonfigurerat med specifika övervakningsverktyg. Den använder Managed Prometheus för måttinsamling och Managed Grafana för visualisering. Kluster- och programmått samlas in automatiskt och kan visualiseras. AKS Automatic integreras också med Azure Monitor för att samla in loggar och mått.

  • Web App for Containers innehåller flera kategorier av resursloggar eftersom dess plattform (App Service) inte enbart är avsedd för containerarbetsbelastningar. För containerspecifika åtgärder som hanterar den interna Docker-plattformen tillhandahåller den loggkategorin AppServicePlatformLogs. En annan viktig kategori är AppServiceEnvironmentPlatformLogs, som loggar händelser som skalning och konfigurationsändringar. Mått samlas in via Azure Monitor, vilket gör att du kan övervaka programprestanda och resursanvändning.

Well-Architected Framework för driftskvalitet

Den här artikeln fokuserar på de viktigaste skillnaderna mellan funktionerna i containertjänster. Granska den fullständiga vägledningen för driftskvalitet för följande tjänster:

Tillförlitlighet

Tillförlitlighet avser möjligheten för ett system att reagera på fel och förbli fullt fungerande. På programvarunivå bör arbetsbelastningar implementera bästa praxis som cachelagring, återförsök, kretsbrytarmönster och hälsokontroller. På infrastrukturnivå ansvarar Azure för att hantera fysiska fel, till exempel maskinvarufel och strömavbrott, i datacenter. Fel kan fortfarande inträffa. Team för arbetsbelastning bör välja lämplig Azure-tjänstnivå och tillämpa nödvändiga minimikonfigurationer för instanser för att implementera automatiska omkopplingar mellan tillgänglighetszoner.

Om du vill välja lämplig tjänstnivå måste du förstå hur serviceavtal och tillgänglighetszoner fungerar.

Serviceavtal

Tillförlitlighet mäts ofta av affärsdrivna mått som serviceavtal eller återställningsmått som mål för återställningstid.

Azure tillhandahåller många serviceavtal för specifika tjänster. Det finns inget sådant som total tjänsttillgänglighet eftersom fel kan inträffa i programvara, maskinvara eller till och med naturliga händelser som stormar och jordbävningar. Ett serviceavtal är inte en garanti utan ett ekonomiskt stödda åtagande för en definierad tillgänglighetsnivå.

Om du vill ha serviceavtal och information laddar du ned det senaste dokumentet om serviceavtal för Microsoft Online Services.

Kostnadsfria nivåer jämfört med betalda nivåer

I allmänhet tillhandahåller inte kostnadsfria nivåer av Azure-tjänster något serviceavtal, vilket gör dem till kostnadseffektiva val för icke-produktionsmiljöer. Det är dock bästa praxis för produktionsmiljöer att välja en betald nivå som har ett serviceavtal.

Extra faktorer för AKS

AKS har olika serviceavtal för olika komponenter och konfigurationer:

  • Kontrollplan: Kubernetes API-servern har ett separat serviceavtal.

  • Dataplan: Nodpooler använder de underliggande serviceavtalen för VM-SKU:er.

  • Tillgänglighetszoner: Det finns olika serviceavtal för de två planen, beroende på om AKS-klustret har tillgänglighetszoner aktiverade och om flera instanser körs över tillgänglighetszoner.

När du använder flera Azure-tjänster kan sammansatta servicenivåmål skilja sig från och vara lägre än enskilda serviceavtal.

Redundans med tillgänglighetszoner

Tillgänglighetszoner är distinkta datacenter som har oberoende elkraft och kylning i en enda region. Den resulterande redundansen ökar toleransen för fel utan att du behöver implementera arkitekturer i flera regioner.

Azure har tillgänglighetszoner i varje land eller region där den driver en datacenterregion. Om du vill tillåta flera instanser av containrar att korsa tillgänglighetszoner måste du välja SKU:er, tjänstnivåer och regioner som tillhandahåller stöd för tillgänglighetszoner.

Funktion Containerapplikationer AKS Webbapp för containrar
Stöd för tillgänglig zon Fullständigt Fullständigt Fullständigt

Till exempel blir ett program eller en infrastruktur som är konfigurerad för att köra en enskild instans otillgänglig om ett problem uppstår i tillgänglighetszonen där maskinvaran finns. Om du vill använda stöd för tillgänglighetszoner fullt ut bör du distribuera arbetsbelastningar som har minst tre instanser av containern, spridda över zoner.

Hälsokontroller och självåterställning

Slutpunkter för hälsokontroll är avgörande för en tillförlitlig arbetsbelastning. Men att bygga dessa slutpunkter är bara hälften av lösningen. Den andra hälften styr hur värdplattformen svarar när fel inträffar.

För att bättre förstå typer av Kubernetes-hälsoavsökningar bör du överväga följande inbyggda alternativ:

  • Start: Kontrollerar om programmet startar

  • Beredskap: Kontrollerar om programmet är redo att hantera inkommande begäranden

  • Livskraft: Kontrollerar om programmet körs och svarar

En annan viktig faktor är hur ofta dessa hälsokontroller begärs från programmet eller dess interna kornighet. Om du har ett långt intervall mellan dessa förfrågningar kan du fortsätta att hantera trafik tills instansen bedöms vara ohälsosam.

De flesta program stöder hälsokontroller via HTTP- eller HTTPS-protokollet. Vissa program kan dock behöva andra protokoll, till exempel TCP eller gRPC, för att utföra dessa kontroller. Tänk på detta när du utformar hälsokontrollsystemet.

Funktioner för hälsokontroll Appar för containrar AKS Webbapp för containrar
Uppstartsprober Partiellt stöd
Beredskapsavsökningar
Livsfärdighetskontroller
intervallgranularitet Sekunder Sekunder 1 minut
Protokollstöd - HTTP och HTTPS

-TCP
- HTTP och HTTPS

-TCP

- gRPC
HTTP och HTTPS

Hälsokontroller är enklast att implementera i Web App for Containers. Överväg följande faktorer:

  • Uppstartssonderna är inbyggda och kan inte ändras. Den skickar en HTTP-begäran till startporten för containern. Alla svar från din ansökan betraktas som en lyckad start.

  • Den stöder inte beredskapskontroller. Om startproben lyckas läggs containerinstansen till i poolen av hälsosamma instanser.

  • Hälsokontrollen skickas med en minuts intervall. Du kan inte ändra intervallet.

  • Det minsta tröskelvärde som du kan ange för att en instans med fel ska tas bort från den interna belastningsutjämningsmekanismen är två minuter. Den ohälsosamma instansen får trafik i minst två minuter efter att en hälsokontroll misslyckas. Standardvärdet för den här inställningen är 10 minuter.

Alternativt är Container Apps och AKS mycket mer flexibla och ger liknande alternativ. När det gäller specifika skillnader tillhandahåller AKS följande alternativ för att utföra hälsokontroller, som inte är tillgängliga i Container Apps:

Automatisk läkning

Att identifiera en felaktig containerinstans och stoppa trafik till den är bara början. Nästa steg är att implementera automatisk återställning. Automatisk återställning är processen att starta om programmet för att försöka återställa från ett feltillstånd. Tänk på hur följande containertjänster jämförs:

  • I Web App for Containers finns det inget alternativ för att starta om en containerinstans omedelbart efter att en hälsokontroll misslyckas. Om instansen fortsätter att misslyckas i en timme ersätter en ny instans den. Automatisk självläkning startar om instanser och övervakar dem. Det är inte direkt relaterat till hälsokontroller. Automatisk återställning använder olika programmått, till exempel minnesgränser, varaktighetsbegränsning för HTTP-begäranden och statuskoder.

  • Container Apps och AKS försöker automatiskt starta om en containerinstans om liveness-avsökningen når det definierade tröskelvärdet för fel.

Distributioner av program med noll driftstopp

Möjligheten att distribuera och ersätta program utan att orsaka avbrott för användare är avgörande för en tillförlitlig arbetsbelastning. Alla tre containertjänster som beskrivs i den här artikeln stöder distributioner med noll driftstopp men på olika sätt.

Distributionsstrategi Containerapplikationer AKS Webbapp för containrar
Strategi för noll stilleståndstid Löpande uppdatering Löpande uppdatering, plus alla andra Kubernetes-strategier Utplaceringsplatser

Programarkitekturerna måste också ha stöd för distribution utan avbrott.

Resursbegränsningar

En annan viktig komponent i en tillförlitlig delad miljö är din kontroll över resursanvändningen, till exempel CPU eller minne, för dina containrar. Du måste undvika scenarier där ett enda program använder alla resurser och lämnar andra program i ett felaktigt tillstånd.

Resursomfång Containerapplikationer AKS Webbapp för containrar
Resursgränser (CPU eller minne) För varje app och container För varje app, container och namnområde För varje App Service-plan
  • Webbapp för containrar: Du kan vara värd för flera program (containrar) i en enda App Service-plan. Du kan till exempel allokera en plan med två CPU-kärnor och 4 gibibyte (GiB) RAM-minne där du kan köra flera webbappar i containrar. Du kan dock inte begränsa en av apparna till en viss mängd processor eller minne. De konkurrerar alla om samma App Service-planresurser. Om du vill isolera dina programresurser måste du skapa extra App Service-planer.

  • ContainerAppar: Du kan ange cpu- och minnesgränser för varje program i din miljö. Du är dock begränsad till en uppsättning tillåtna kombinationer av CPU och minne. Du kan till exempel inte konfigurera en vCPU och 1 GiB minne, men du kan konfigurera en vCPU och 2 GiB minne. En Container Apps-miljö har ett liknande syfte som ett Kubernetes-namnområde.

  • AKS: Du kan välja valfri kombination av vCPU och minne så länge noderna har maskinvaran som stöd för den. Du kan också begränsa resurser på namnområdesnivå om du vill segmentera klustret på det sättet.

Well-Architected Framework för pålitlighet

Den här artikeln fokuserar på de viktigaste skillnaderna mellan funktionerna för containertjänster i Azure. Om du vill granska den fullständiga tillförlitlighetsvägledningen för en viss tjänst kan du läsa följande artiklar:

Slutsats

Väldefinierade lösningar skapar grunden för lyckade arbetsbelastningar. Arkitekturbeslut kan utvecklas i takt med att arbetsbelastningarna växer och teamen fortsätter sina molnresor. Vissa alternativ, särskilt de som rör nätverk, är svåra att ångra utan betydande stilleståndstid eller omdistribution.

När du jämför Azure-containertjänster visas ett tydligt tema. AKS exponerar den mest underliggande infrastrukturen, vilket ger maximal kontroll och konfigurerbarhet. AKS Automatiskt balanserar kontroll och enkelhet genom att automatisera många operativa uppgifter.

Mängden driftkostnader och komplexitet varierar kraftigt för AKS-arbetsbelastningar. Vissa team minskar kostnaderna avsevärt genom att använda Microsoft-hanterade tillägg, tillägg och funktioner för automatisk uppgradering. Andra team föredrar fullständig klusterkontroll för att dra nytta av Kubernetes fullständiga utökningsbarhet och CNCF-ekosystemet. Även om Microsoft till exempel tillhandahåller Flux som ett hanterat GitOps-tillägg väljer många team att konfigurera och använda ArgoCD på egen hand.

Arbetsbelastningsteam som inte kräver CNCF-program, har mindre driftserfarenhet eller föredrar att fokusera på programfunktioner kanske föredrar ett PaaS-erbjudande. Vi rekommenderar att de först överväger Container Apps.

Container Apps och Web App for Containers är båda PaaS-erbjudanden som tillhandahåller liknande nivåer av Microsoft-hanterad infrastruktur. Container Apps ligger dock närmare Kubernetes och tillhandahåller extra molnbaserade funktioner för tjänstidentifiering, händelsedriven autoskalning och Dapr-integrering . Team som inte behöver de här funktionerna och som är bekanta med App Service-nätverks- och distributionsmodeller kanske föredrar Web App for Containers.

Generaliseringar kan hjälpa dig att begränsa listan över Azure-containertjänster för övervägande. Du bör dock även kontrollera ditt val genom att granska enskilda krav i detalj och matcha dem med tjänstspecifika funktioner.

Bidragsgivare

Microsoft ansvarar för den här artikeln. Följande deltagare skrev den här artikeln.

Huvudförfattare:

Andra deltagare:

Om du vill se linkedin-profiler som inte är offentliga loggar du in på LinkedIn.

Nästa steg