Distribuer et program på Azure Kubernetes Service-klyngen
- 10 minutter
Firmaet ditt ser på måter å distribuere den skybaserte videogjengivelsestjenesten på. Du valgte Azure Kubernetes Service (AKS) som skybasert utviklingsplattform. Når klyngen er konfigurert, er du klar til å distribuere én av komponentene i programmet for videogjengivelse. Du bestemmer deg for å distribuere en statisk versjon av firmaets nettsted for å utforske Kubernetes-distribusjonsprosessen.
Før vi diskuterer Kubernetes-distribusjonsmåten, kan vi se gjennom noen av trinnene du vil gjøre for å distribuere et lignende program til et ikke-Kubernetes-miljø.
Anta at du bruker en virtuell Azure-maskin (VM) som målplattform. Det første trinnet er å klargjøre serverprogramvaren for å være vert for programmet. Du vil:
- Installer operativsystemet.
- Pass på å oppdatere operativsystemet til de nyeste sikkerhets- og programvareoppdateringene.
- Installer og konfigurer webserverprogramvaren.
- Distribuer webprogrammet.
Gjenta denne prosessen for hver nye vm når du bestemmer deg for å skalere nettstedet ut for å håndtere en økning i etterspørselen fra kunder.
En alternativ tilnærming er å kjøre nettstedet på en beholderbasert plattform som Azure Container Instances. Du trenger ikke å bekymre deg for den underliggende serverteknologien, men du må konfigurere og administrere flere beholdere for å bruke denne strategien manuelt.
Kubernetes og AKS hjelper deg med å organisere beholdere. Kubernetes beholderorkestreringsfunksjoner gjør det enkelt å administrere arbeidsbelastninger på klyngen. Du distribuerer arbeidsbelastninger ved hjelp av beholdere som er bygd fra beholderbilder for å kjøre programmene i en AKS-klynge.
Her kan du utforske hvordan du oppretter arbeidsbelastninger i AKS-klyngen.
Hva er et beholderregister?
Med et beholderregister kan du lagre beholderbilder trygt i skyen for senere distribusjon. Du kan tenke på beholderregisteret som et arkiv som lagrer flere versjoner av beholderbildet. Hvert lagrede bilde har en kode som er tilordnet identifikasjon.
Du kan for eksempel ha bildet contoso-website:latest, som vil være en annen versjon av bildet med koden contoso-website:v1.0.0.
Beholderregistre kan være offentlige eller private. Private registre krever legitimasjon for å få tilgang til og laste ned bilder og er strategien du følger når du lagrer beholderbilder.
Kubernetes lar deg bare distribuere bilder som driftes i et beholderregister. Oppretting av et privat beholderregister er vanligvis en del av standardstrategien for AKS-distribusjon.
Hva er en Kubernetes pod?
En Kubernetes pod grupperer beholdere og programmer i en logisk struktur. Disse pods har ingen intelligens og består av en eller flere programbeholdere. Hver av dem har en IP-adresse, nettverksregler og eksponerte porter.
Hvis du for eksempel vil søke i alle arbeidsbelastninger relatert til contoso-website, vil du spørre klyngen etter pods med etiketten app og verdien contoso-website.
Hva er Kubernetes-distribusjon?
En Kubernetes-distribusjon er en videreutvikling av pods. En distribusjon pakker pods inn i et intelligent objekt som gjør at de kan skalere ut. Du kan enkelt duplisere og skalere programmet for å støtte mer belastning uten å måtte konfigurere komplekse nettverksregler.
Distribusjoner gjør det mulig for brukere å oppdatere programmer bare ved å endre bildekoden uten nedetid. Når du oppdaterer en distribusjon i stedet for å slette alle apper, deaktiverer distribusjonen nettappene én etter én. Deretter erstatter den dem med den nyeste versjonen. Dette aspektet betyr at enhver distribusjon kan oppdatere pods inne i den uten synlig effekt i tilgjengelighet.
Kubernetes manifestfiler
Med en Kubernetes-manifestfil kan du beskrive arbeidsbelastningene dine i YAML-formatet deklarativt og forenkle kubernetes objektbehandling.
Tenk deg at du må distribuere en arbeidsbelastning for hånd. Du må tenke på og administrere flere aspekter. Du må opprette en beholder, velge en bestemt node, pakke den inn i en pod, kjøre kapselen, overvåke kjøring og så videre.
Manifestfiler inneholder all informasjonen du trenger for å opprette og administrere den beskrevne arbeidsbelastningen.
Hva er en Kubernetes-etikett?
Med en Kubernetes-etikett kan du logisk gruppere Kubernetes-objekter. Disse etikettene gjør det mulig for systemet å spørre klyngen etter objekter som samsvarer med en etikett med et bestemt navn.
Strukturen til en manifestfil
Strukturen til manifestfiler varierer avhengig av ressurstypen du oppretter. Manifestfiler deler imidlertid vanlige instruksjoner. Disse instruksjonene definerer ulike aspekter, for eksempel API-er som skal brukes og typen arbeidsbelastning som skal opprettes.
De to første oppføringene i alle manifestfilene har to viktige nøkler, apiVersion og kind. Her er et eksempel på en distribusjonsfil.
apiVersion: apps/v1 # Where in the API it resides
kind: Deployment # The kind of workload we're creating
Den apiVersion nøkkelen definerer API-serverendepunktet som administrerer objektet du distribuerer.
Nøkkelen kind definerer arbeidsbelastningen som denne distribusjonen oppretter.
Andre vanlige nøkler for alle filene er metadata og name nøkler. Alle Kubernetes-ressurser må ha et navn. Dette navnet går inn i metadata-tasten.
apiVersion: apps/v1
kind: Deployment
metadata:
name: contoso-website # This will be the name of the deployment
Gruppere objekter i en distribusjon
Distribusjoner gjør bruk av en label for å finne og gruppere pods. Du definerer etiketten som en del av manifestfilen for distribusjonen.
Her er et eksempel. Legg merke til den matchLabels verdien som er definert i selector definisjonen som er lagt til i spec definisjonen.
# deployment.yaml
# ...
spec:
selector:
matchLabels:
app: contoso-website
# ...
Fra nå av har alle filer forskjellige strukturer basert på hvilken type ressurs du ber Kubernetes om å opprette.
Bruke en distribusjonsfil
Du distribuerer en kubernetes-distribusjonsmanifestfil ved hjelp av kubectl. Her er et eksempel på kommandoen.
kubectl apply -f ./deployment.yaml