Vad är Azure Kubernetes Service?

Slutförd

Låt oss börja med några definitioner och en snabb rundtur via Azure Kubernetes Service (AKS). Den här översikten innehåller information som hjälper dig att avgöra om AKS är en bra plattform för din strategi för hantering av containrar.

Vad är en container?

En container är en atomisk programvaruenhet som packar upp kod, beroenden och konfigurationen för ett särskilt program. Med containrar kan du dela upp monolitiska program i enskilda tjänster som tillsammans utgör lösningen. Med den här omarbetningen av vårt program kan vi distribuera dessa separata tjänster via containrar.

Diagram that shows server or application replicated as containers for cloud deployment.

Varför ska jag använda en container?

Anta att din lösning för tillgångsspårning innehöll tre viktiga program:

  • En spårningswebbplats som innehåller kartor och information om de tillgångar som spåras.

  • En databehandlingstjänst som samlar in och bearbetar information som skickas från spårade tillgångar.

  • En MSSQL-databas för att lagra kundinformation som hämtats från webbplatsen.

Du inser att för att möta kundernas efterfrågan måste du skala ut din lösning.

Virtuella datorer (VM)

Ett alternativ är att distribuera en ny virtuell dator för varje program som finns i flera regioner. Kopiera sedan programmen till dina nya virtuella datorer. Om du gör det ansvarar du dock för hanteringen av varje virtuell dator som du använder.

Underhållskostnaderna ökar när du skalar. OPERATIVSYSTEM-versioner (VM) och beroenden för varje program måste etableras och konfigureras för att matcha. När du tillämpar uppgraderingar för dina program som påverkar operativsystemet och större ändringar finns det försiktighetsåtgärder. Om det uppstår några fel under uppgraderingen krävs återställningen av installationen och orsakar störningar, till exempel driftstopp eller fördröjningar.

Diagram that shows replicated servers as VMs in the cloud and how the problem raises migration questions and problems.

Distributionen i föregående diagram är besvärlig, ibland felbenägen och skalar inte enkelt enskilda tjänster. Du kan till exempel inte enkelt skala den cachelagringstjänst som används i webbprogrammet. Containrar hjälper till att lösa dessa typer av problem.

Containerkonceptet ger tre huvudsakliga fördelar:

  1. Oföränderlighet – En containers oföränderliga karaktär gör att den kan distribueras och köras på ett tillförlitligt sätt med samma beteende från en beräkningsmiljö till en annan. En containeravbildning som testas i en testmiljö är samma containeravbildning som distribueras till produktion.

  2. Mindre storlek – En container liknar en virtuell dator, men utan kernel för varje dator. I stället delar de en värdkärna. Virtuella datorer använder en stor avbildningsfil för att lagra både operativsystemet och det program som du vill köra. En container behöver däremot inget operativsystem, utan endast programmet.

  3. Lightweight – Containern förlitar sig alltid på det installerade operativsystemet för kernelspecifika tjänster. Den enkla egenskapen gör containrar mindre resursintensiva, så det går att installera flera containrar i samma beräkningsmiljö.

  4. Start är snabb – Containrar startar om några sekunder, till skillnad från virtuella datorer, vilket kan ta några minuter att starta.

Ovanstående fördelar gör containrar till ett populärt val för både utvecklare och IT-åtgärder, och varför många har bytt från virtuella datorer.

Vad är containerhantering?

Diagram that shows replicated servers as multiple containers in the cloud.

Även om containrar fungerar på samma sätt som virtuella datorer varierar deras syften. En container har en distinkt livscykel som finns som en tillfällig dator. Dess tillstånd passerar genom stegen för väntande, körning och avslutad. Den här livscykeln gör containrar mer disponibla och påverkar hur utvecklare och IT-åtgärder tänker på hanteringen av stora sammankopplade program. Containerhantering omfattar distribution, uppgradering, övervakning och borttagning av containrar.

Anta till exempel att du upptäcker att det vid lunchtid finns mer platstrafik, så du behöver fler instanser av platsens cachelagringstjänst för att hantera prestanda. Du planerar att lösa det här problemet genom att lägga till fler cachelagringstjänstcontainrar.

Nu är det dags att distribuera en ny version av cachelagringstjänsten. Hur uppdaterar du alla containrar? Hur tar du bort alla äldre versioner?

Dessa typer av belastningsutjämningsfrågor kräver ett system för att hantera containerdistributionen.

Vad är Kubernetes?

Kubernetes är en portabel, utökningsbar plattform med öppen källkod för automatisk distribution, skalning och hantering av containerarbetsbelastningar. Kubernetes abstraherar bort komplex containerhantering och ger oss en deklarativ konfiguration för att orkestrera containrar i olika beräkningsmiljöer. Den här orkestreringsplattformen har samma användarvänlighet och flexibilitet som PaaS- (Platform as a Service) och IaaS-erbjudanden (Infrastructure as a Service).

Diagram that shows replicated servers as multiple containers in a Kubernetes cluster.

Med Kubernetes kan du visa ditt datacenter som en stor dator. Vi behöver inte bekymra oss om hur och var vi distribuerar våra containrar, endast om distributionen och skalningen av program efter behov.

Här följer några ytterligare aspekter att tänka på om Kubernetes:

  • Kubernetes är inte ett fullständigt PaaS-erbjudande. Kubernetes fungerar på containernivå och erbjuder bara en gemensam uppsättning PaaS-funktioner.

  • Kubernetes är inte monolitisk. Det är inte ett enskilt installerat program. Aspekter som distribution, skalning, belastningsutjämning, loggning och övervakning är valfria.

  • Kubernetes begränsar inte vilka typer av program som ska köras. Om programmet kan köras i en container körs det på Kubernetes.

  • Dina utvecklare behöver förstå begrepp som mikrotjänstarkitektur för att kunna använda containerlösningar på bästa sätt.

  • Kubernetes tillhandahåller inte mellanprogram, databearbetningsramverk, databaser, cacheminnen eller klusterlagringssystem. Alla dessa objekt körs som containrar eller som en del av ett annat tjänsterbjudande.

  • En Kubernetes-distribution konfigureras som ett kluster. Ett kluster består av minst en primär dator eller kontrollplan och en eller flera arbetsdatorer. För produktionsdistributioner är den föredragna konfigurationen en distribution med hög tillgänglighet med tre till fem replikerade kontrollplansdatorer. Dessa arbetsdatorer kallas även noder eller agentnoder.

Med alla fördelar du får med Kubernetes ansvarar du för att hitta den bästa lösningen som passar dina behov för att hantera dessa aspekter. Tänk på att du ansvarar för att underhålla ditt Kubernetes-kluster. Du måste till exempel hantera operativsystemuppgraderingar och Kubernetes-installationen och -uppgraderingar. Du hanterar också maskinvarukonfigurationen för värddatorerna, till exempel nätverk, minne och lagring.

Kommentar

Kubernetes förkortas ibland till K8s. Siffran 8 representerar de åtta tecknen mellan K och s i ordet K[ubernetes]s.

Vad är Azure Kubernetes Service (AKS)?

Diagram that shows replicated servers as multiple containers in an AKS Kubernetes cluster.

AKS hanterar din värdbaserade Kubernetes-miljö och gör det enkelt att distribuera och hantera containerbaserade program i Azure. Din AKS-miljö har funktioner som automatiserade uppdateringar, självåterställning och enkel skalning. Azure hanterar kontrollplanet för ditt Kubernetes-kluster kostnadsfritt. Du hanterar agentnoderna i klustret och betalar bara för de virtuella datorer som noderna körs på.

Du kan skapa och hantera klustret i Azure-portalen eller med Azure CLI. När du skapar klustret finns det Resource Manager-mallar för att automatisera skapandet av kluster. Med dessa mallar har du åtkomst till funktioner som avancerade nätverksalternativ, Microsoft Entra-identitet och resursövervakning. Sedan kan du konfigurera utlösare och händelser för att automatisera klusterdistributionen för flera scenarier.

Med AKS får du fördelarna med Kubernetes med öppen källkod utan den extra komplexitet eller driftsbelastning som det bara kan innebära att använda Kubernetes.