Vad är Azure Kubernetes Service?
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.
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 att hantera varje virtuell dator som du använder.
Underhållskostnaderna ökar när du skalar. Du måste etablera och konfigurera operativsystemversioner för virtuella datorer (OS) och beroenden för att varje program ska 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 fel under uppgraderingen måste du återställa installationen, vilket orsakar störningar som driftstopp eller fördröjningar.
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 oss fyra stora fördelar:
Oföränderlighet: En containers oföränderliga karaktär gör att den kan distribuera 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.
Mindre storlek: En container liknar en virtuell dator, men utan kerneln 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.
Lightweight: Containern förlitar sig alltid på det värdinstallerade 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ö.
Uppstarten är snabb: Containrar startar på några sekunder, i motsats till virtuella datorer, vilket kan ta flera minuter att starta.
Dessa fördelar gör containrar till ett populärt val för både utvecklare och IT-åtgärder, och det är därför många byter från virtuella datorer.
Vad är containerhantering?
Även om containrar fungerar ungefär som virtuella datorer varierar deras syfte. 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 bärbar, utökningsbar plattform med öppen källkod som automatiserar distribution, skalning och hantering av containerbaserade arbetsbelastningar. 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).
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 fler 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 enda program som är installerat. Aspekter som distribution, skalning, belastningsutjämning, loggning och övervakning är valfria.
Kubernetes begränsar inte vilka typer av program du kan köra. 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 som kallas 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)?
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 kubernetes-klustrets kontrollplan utan kostnad. 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 Portal 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.