Forstå Deployments
Lær, hvordan Deployments automatiserer administrationen af Pods og ReplicaSets til stateless-applikationer.
Forstå Deployments er en gratis Intensiv DevOps-uddannelse-lektion på CoddyKit. Dette er lektion 1 af 4. Du kan læse alle 3 lektioner i dette læringsspor gratis i deres fulde længde — derefter låser CoddyKit PRO alle lektioner op samt praktiske øvelser med en indbygget kodeeditor og en AI-underviser døgnet rundt. Den er en del af læringsforløbet i Intensiv DevOps-uddannelse, og dine fremskridt synkroniseres på tværs af nettet og CoddyKit-appen. Intensiv DevOps-uddannelse-kurset indeholder 4 lektioner i alt.
Hvad er Deployments?
Velkommen! I Kubernetes betyder håndtering af applikationer, at du håndterer deres Pods. Men det kan blive komplekst at håndtere individuelle Pods eller endda ReplicaSets direkte.
En Deployment er et objekt på højere niveau, der gør det enklere at håndtere tilstandsløse applikationer. Tænk på den som din applikations manager.
- Den definerer den ønskede tilstand for din applikation.
- Den sikrer, at tilstanden bevares, selv hvis Pods fejler.
- Den automatiserer opdateringer og tilbagerulninger.
Hvorfor bruge Deployments?
Deployments giver betydelige fordele, når du vil køre applikationer pålideligt i Kubernetes:
- Automatiseret håndtering: De håndterer oprettelse, skalering og sletning af Pods.
- Selvheling: Hvis en Pod går ned, erstatter Deployment'en den automatisk for at opretholde det ønskede antal replikaer.
- Deklarative opdateringer: Du beskriver den ønskede nye tilstand, og Deployment'en finder ud af, hvordan den skal nå dertil (f.eks. ved at rulle nye versioner ud).
De er den anbefalede måde at håndtere tilstandsløse applikationer på.
Deployment'ens centrale rolle
Grundlæggende håndterer en Deployment ReplicaSets. Et ReplicaSets opgave er at sikre, at et angivet antal Pod-replikaer kører hele tiden.
En Deployment bruger altså ReplicaSets til at nå sit mål: at sikre, at din applikation har det korrekte antal sunde Pods kørende i henhold til din definition.
Denne abstraktion gør det meget nemmere at definere og vedligeholde din applikations livscyklus.
En Deployment-YAML's opbygning
Som de fleste Kubernetes-objekter defineres Deployments ved hjælp af YAML. Her er de vigtigste sektioner, du typisk finder:
apiVersionogkind: Identificerer objekttypen (Deployment).metadata: Navn, labels osv. for selve Deployment'en.spec: Den centrale definition, herunder:replicas: Det ønskede antal Pods.selector: Hvordan Deployment'en finder de Pods, den håndterer.template: Skabelonen for de Pods, der skal oprettes.
Pod-skabelonen
Feltet template i en Deployments spec er utrolig vigtigt. Det er i praksis en komplet Pod-definition.
Alle Pods, der oprettes af denne Deployment, bruger denne skabelon. Det betyder, at du definerer:
- De container-images, der skal bruges.
- De porte, der skal eksponeres.
- Miljøvariabler.
- Ressourceanmodninger og -grænser.
- Og meget mere!
Ændringer i denne skabelon udløser opdateringer af din applikation.
Oprettelse af en simpel Deployment
Lad os definere en Deployment til en simpel Nginx-webserver. Vi ønsker 3 replikaer.
Bemærk, hvordan selector.matchLabels skal stemme overens med template.metadata.labels. Det fortæller Deployment'en, hvilke Pods den ejer.
apiVersion: apps/v1
kind: Deployment
metadata:
name: my-nginx-deployment
labels:
app: nginx
spec:
replicas: 3
selector:
matchLabels:
app: nginx
template:
metadata:
labels:
app: nginx
spec:
containers:
- name: nginx
image: nginx:latest
ports:
- containerPort: 80Anvendelse af Deployment'en
For at oprette denne Deployment i din Kubernetes-klynge (f.eks. Minikube) bruger du kommandoen kubectl apply. Gem YAML-koden ovenfor som nginx-deployment.yaml.
kubectl opretter Deployment-objektet. Deployment-controlleren ser derefter dette objekt og reagerer ved at oprette et ReplicaSet, som derefter opretter de 3 Nginx-Pods.
kubectl apply -f nginx-deployment.yamlUndersøgelse af din Deployment
Når den er anvendt, kan du kontrollere status for din Deployment og de Pods, den håndterer:
kubectl get deployments: Viser din Deployment.kubectl get replicasets: Viser det ReplicaSet, som Deployment'en har oprettet.kubectl get pods -l app=nginx: Viser de Pods, som Deployment'en håndterer (via dens labelvælger).kubectl describe deployment my-nginx-deployment: Giver detaljerede oplysninger om Deployment'en, herunder hændelser.
kubectl get deployments
kubectl get pods -l app=nginx
kubectl describe deployment my-nginx-deploymentVedligeholdelse af den ønskede tilstand
En af Deployments mest effektive funktioner er evnen til at vedligeholde den ønskede tilstand. Hvis du har defineret replicas: 3, sikrer Deployment'en, at 3 Pods altid kører.
Prøv manuelt at slette en af Nginx-Pods'ene (kubectl delete pod <pod-name>). Du vil se, at Deployment'en hurtigt opretter en ny som erstatning! Det er selvheling i praksis.
Hurtig kontrol
Hvilken type applikation bruges en Deployment primært til at håndtere?
Opsummering: Forståelse af Deployments
Godt gået! Du har taget dine første skridt med Kubernetes Deployments.
- Deployments er objekter på højt niveau til håndtering af tilstandsløse applikationer.
- De automatiserer oprettelse, skalering og selvheling af Pods ved at håndtere ReplicaSets.
- Du definerer en Deployment ved hjælp af en YAML-manifest, hvor du angiver det ønskede antal
replicasog entemplatefor Pods. kubectl applyopretter Deployment'en, ogkubectl get/describehjælper dig med at overvåge den.
Dernæst dykker vi dybere ned i ReplicaSets og ser på, hvordan de garanterer det ønskede antal Pods!
Lær Intensiv DevOps-uddannelse med en AI-underviser — gratis
Skriv og kør rigtig kode i din browser, få øjeblikkelig hjælp fra en AI-underviser døgnet rundt, og fortsæt, hvor du slap, på web eller i appen.
- Kurser
- 142
- Lektioner
- 568
Ofte stillede spørgsmål
Er lektionen “Forstå Deployments” gratis?
Ja — alle 3 lektioner i læringssporet Intensiv DevOps-uddannelse, inklusive “Forstå Deployments”, kan læses gratis i deres fulde længde her på webstedet. Derefter låser CoddyKit PRO alle lektioner op samt interaktive øvelser med en indbygget kodeeditor og en AI-underviser døgnet rundt. Intensiv DevOps-uddannelse-kurset indeholder 4 lektioner i alt.
Hvad lærer jeg i “Forstå Deployments”?
Lær, hvordan Deployments automatiserer administrationen af Pods og ReplicaSets til stateless-applikationer. Du øver dig i Intensiv DevOps-uddannelse med praktisk kode, som du kører direkte i browseren, og en AI-vejleder døgnet rundt besvarer dine spørgsmål, mens du arbejder dig gennem lektionen.
Skal jeg have erfaring for at begynde på Intensiv DevOps-uddannelse?
Der kræves ingen tidligere erfaring. Intensiv DevOps-uddannelse på CoddyKit er tilrettelagt for både begyndere og øvede, så du kan starte her eller fra begyndelsen og lære i dit eget tempo. Dette er lektion 1 af 4.
Hvor lang tid tager lektionen “Forstå Deployments”?
De fleste CoddyKit-lektioner tager cirka 5–10 minutter. Hver lektion er kort og interaktiv, så du gør løbende fremskridt og kan fortsætte, hvor du slap – på både web og app.
Kan jeg skrive og køre kode i denne Intensiv DevOps-uddannelse-lektion?
Ja. Alle Intensiv DevOps-uddannelse-lektioner har en indbygget kodeeditor, så du kan skrive og køre rigtig kode direkte i din browser og få øjeblikkelig feedback fra AI – uden lokal opsætning.
Alle lektioner i dette kursus
- Forstå Deployments
- Skalering af applikationer med ReplicaSets
- Løbende opdateringer og tilbagerulninger
- Deploymentstrategier: blue-green og canary