Azure Container Instances och containerorkestrerare

På grund av sin lilla storlek och programorientering passar containrar bra för flexibla leveransmiljöer och mikrotjänstbaserade arkitekturer. Uppgiften att automatisera och hantera ett stort antal containrar och hur de interagerar kallas orkestrering. Populära containerorkestrerare är Kubernetes, DC/OS och Docker Swarm.

Azure Container Instances tillhandahåller några av de grundläggande schemaläggningsfunktionerna för orkestreringsplattformar. Och även om det inte täcker de tjänster med högre värde som dessa plattformar tillhandahåller, kan Azure Container Instances komplettera dem. Den här artikeln beskriver omfattningen av vad Azure Container Instances hanterar och hur fullständiga containerorkestrerare kan interagera med den.

Traditionell orkestrering

Standarddefinitionen för orkestrering innehåller följande uppgifter:

  • Schemaläggning: Med tanke på en containeravbildning och en resursbegäran hittar du en lämplig dator där containern ska köras.
  • Tillhörighet/Antitillhörighet: Ange att en uppsättning containrar ska köras i närheten (för prestanda) eller tillräckligt långt ifrån varandra (för tillgänglighet).
  • Hälsoövervakning: Håll utkik efter containerfel och schemalägg om dem automatiskt.
  • Redundansväxling: Håll reda på vad som körs på varje dator och schemalägg om containrar från misslyckade datorer till felfria noder.
  • Skalning: Lägg till eller ta bort containerinstanser för att matcha efterfrågan, antingen manuellt eller automatiskt.
  • Nätverk: Tillhandahålla ett överläggsnätverk för samordning av containrar för att kommunicera mellan flera värddatorer.
  • Tjänstidentifiering: Aktivera containrar för att hitta varandra automatiskt, även när de flyttas mellan värddatorer och ändrar IP-adresser.
  • Samordnade programuppgraderingar: Hantera containeruppgraderingar för att undvika programavbrott och aktivera återställning om något går fel.

Orkestrering med Azure Container Instances: En metod med flera lager

Azure Container Instances möjliggör en stegvis metod för orkestrering, vilket ger alla de schemaläggnings- och hanteringsfunktioner som krävs för att köra en enda container, samtidigt som orchestrator-plattformar kan hantera uppgifter med flera containrar ovanpå den.

Eftersom den underliggande infrastrukturen för containerinstanser hanteras av Azure behöver en orchestrator-plattform inte bekymra sig om att hitta en lämplig värddator där en enda container ska köras. Molnets elasticitet säkerställer att en alltid är tillgänglig. I stället kan orkestreraren fokusera på de uppgifter som förenklar utvecklingen av arkitekturer med flera containrar, inklusive skalning och samordnade uppgraderingar.

Scenarier

Även om orchestrator-integrering med Azure Container Instances fortfarande är begynnande, förväntar vi oss att några olika miljöer kommer att uppstå:

Orkestrering av containerinstanser exklusivt

Eftersom de börjar snabbt och fakturerar med den andra erbjuder en miljö som uteslutande baseras på Azure Container Instances det snabbaste sättet att komma igång och hantera mycket varierande arbetsbelastningar.

Kombination av containerinstanser och containrar i Virtual Machines

För långvariga, stabila arbetsbelastningar är orkestrering av containrar i ett kluster med dedikerade virtuella datorer vanligtvis billigare än att köra samma containrar med Azure Container Instances. Containerinstanser är dock en bra lösning för att snabbt utöka och kontraktera din totala kapacitet för att hantera oväntade eller kortvariga toppar i användningen.

I stället för att skala ut antalet virtuella datorer i klustret och sedan distribuera ytterligare containrar till dessa datorer, kan orkestreraren helt enkelt schemalägga ytterligare containrar i Azure Container Instances och ta bort dem när de inte längre behövs.

Exempelimplementering: virtuella noder för Azure Kubernetes Service (AKS)

Om du snabbt vill skala programarbetsbelastningar i ett Azure Kubernetes Service-kluster (AKS) kan du använda virtuella noder som skapats dynamiskt i Azure Container Instances. Virtuella noder möjliggör nätverkskommunikation mellan poddar som körs i ACI och AKS-klustret.

Virtuella noder stöder för närvarande Linux-containerinstanser. Kom igång med virtuella noder med hjälp av Azure CLI eller Azure Portal.

Virtuella noder använder öppen källkod Virtual Kubelet för att efterlikna Kubernetes kubelet genom att registrera sig som en nod med obegränsad kapacitet. Virtual Kubelet skickar skapandet av poddar som containergrupper i Azure Container Instances.

Se Det virtuella Kubelet-projektet för ytterligare exempel på hur du utökar Kubernetes-API:et till serverlösa containerplattformar.

Nästa steg

Skapa din första container med Azure Container Instances med hjälp av snabbstartsguiden.