Distribuera ett program i ditt Azure Kubernetes Service-kluster
- 10 minuter
Ditt företag tittar på hur man kan distribuera den molnbaserade tjänsten för videorendering. Du valde Azure Kubernetes Service (AKS) som din molnbaserade utvecklingsplattform. När klustret har konfigurerats är du redo att distribuera en av komponenterna i ditt videorenderingsprogram. Du väljer att distribuera en statisk version av ditt företags webbplats för att utforska Kubernetes-distributionsprocessen.
Innan vi går igenom Kubernetes-metoden för distribution ska vi titta på några av de steg som du skulle vidta för att distribuera ett liknande program till en icke-Kubernetes-miljö.
Anta att du använder en virtuell Azure-dator (VM) som målplattform. Det första steget är att förbereda serverprogramvaran för värdhantering av programmet. Du utför följande uppgifter:
- Installera operativsystemet.
- Se till att uppdatera operativsystemet till de senaste säkerhets- och programvarukorrigeringarna.
- Installera och konfigurera webbserverprogramvaran.
- Distribuera webbapplikationen.
Upprepa den här processen för varje ny virtuell dator när du bestämmer dig för att skala ut webbplatsen för att hantera en ökad efterfrågan från kunder.
En annan metod är att köra webbplatsen på en containerbaserad plattform såsom Azure Container Instances. Du behöver inte bekymra dig om den underliggande servertekniken, men du måste konfigurera och hantera flera containrar för att kunna använda den här strategin manuellt.
Kubernetes och AKS hjälper dig att orkestrera containrar. Kubernetes-funktionerna för containerorkestrering gör det enkelt att hantera arbetsbelastningar i klustret. Du distribuerar arbetsbelastningar med hjälp av containrar som skapats från containeravbildningar för att köra dina program i ett AKS-kluster.
Vad är ett containerregister?
Med ett containerregister kan du lagra containeravbildningar på ett säkert sätt i molnet för senare distribution. Du kan betrakta containerregistret som ett arkiv som lagrar flera versioner av din containeravbildning. Varje lagrad avbildning har en tagg som har tilldelats för identifiering.
Du kan till exempel ha avbildningen contoso-website:latest, som skulle vara en annan version av avbildningen med taggen contoso-website:v1.0.0.
Containerregister kan vara offentliga eller privata. Privata register kräver autentiseringsuppgifter för att komma åt och ladda ned avbildningar och är den strategi du följer när du lagrar containeravbildningar.
Kubernetes tillåter endast att du distribuerar avbildningar som hanteras i ett containerregister. Att skapa ett privat containerregister är normalt en del av din standardstrategi för AKS-distribution.
Vad är en Kubernetes-podd?
En Kubernetes-podd grupperar containrar och program i en logisk struktur. Dessa poddar har ingen intelligens och består av en eller flera programcontainrar. Var och en har en IP-adress, nätverksregler och tillgängliggjorda portar.
Om du till exempel vill söka i alla arbetsbelastningarna som är relaterade till contoso-website, söker du i klustret efter pods med etiketten app och värdet contoso-website.
Vad är Kubernetes-distribution?
En Kubernetes-distribution är en utveckling av poddar. En distribution omsluter poddarna till ett intelligent objekt som gör att de kan skala ut. Du kan enkelt duplicera och skala ditt program för att stödja mer belastning utan att behöva konfigurera komplexa nätverksregler.
Med distributioner kan användare uppdatera program genom att bara ändra avbildningstaggen utan stilleståndstid. När du uppdaterar en distribution inaktiverar distributionen onlineapparna en i taget i stället för att ta bort alla appar. Sedan ersätter den dem med den senaste versionen. Den här aspekten innebär att valfri distribution kan uppdatera dess poddar utan någon märkbar effekt på tillgängligheten.
Kubernetes-manifestfiler
Med en Kubernetes-manifestfil kan du beskriva arbetsbelastningar deklarativt i YAML-format och förenkla Kubernetes-objekthanteringen.
Anta att du måste distribuera en arbetsbelastning manuellt. Du måste då tänka på och hantera flera aspekter. Du behöver skapa en container, välja en specifik nod, lägga den i en pod, köra podden, övervaka exekveringen och så vidare.
Manifestfiler innehåller all information som du behöver för att skapa och hantera den beskrivna arbetsbelastningen.
Vad är en Kubernetes-etikett?
Med en Kubernetes-etikett kan du gruppera Kubernetes-objekt logiskt. Dessa etiketter gör det möjligt för systemet att köra frågor mot klustret efter objekt som matchar en etikett med ett specifikt namn.
Strukturen för en manifestfil
Strukturen för manifestfiler skiljer sig beroende på vilken typ av resurs du skapar. Manifestfiler har dock gemensamma instruktioner. Dessa instruktioner definierar olika aspekter, till exempel de API:er som ska användas samt den typ av arbetsbelastning som ska skapas.
De första två posterna i alla manifestfiler har två viktiga nycklar: apiVersion och kind. Här är ett exempel på en distributionsfil.
apiVersion: apps/v1 # Where in the API it resides
kind: Deployment # The kind of workload we're creating
Nyckeln apiVersion definierar DEN API-serverslutpunkt som hanterar objektet du distribuerar.
Nyckeln kind definierar den arbetsbelastning som distributionen skapar.
Andra nycklar som är gemensamma för alla filer är metadata och name. Alla Kubernetes-resurser måste ha ett namn. Namnet hamnar i nyckeln metadata.
apiVersion: apps/v1
kind: Deployment
metadata:
name: contoso-website # This will be the name of the deployment
Gruppera objekt i en distribution
Distributioner använder en label för att hitta och gruppera poddar. Du definierar etiketten som en del av distributionens manifestfil.
Här följer ett exempel. Observera värdet matchLabels, som definieras i den selector-definition som lagts till i spec-definitionen.
# deployment.yaml
# ...
spec:
selector:
matchLabels:
app: contoso-website
# ...
Från och med nu har alla filer olika strukturer baserat på vilken typ av resurs du vill skapa.
Tillämpa en distributionsfil
Du distribuerar en Kubernetes-distributionsmanifestfil med hjälp av kubectl. Här är ett exempel på kommandot.
kubectl apply -f ./deployment.yaml
Kontrollera dina kunskaper
Feedback
Var den här sidan till hjälp?
No
Behöver du hjälp med det här ämnet?
Vill du prova att använda Fråga Lär för att klargöra eller vägleda dig genom det här ämnet?