Intensiv DevOps-uddannelse · Lektion

Pods: De mindste enheder

Lær om Pods, de grundlæggende byggesten i Kubernetes, og hvordan De definerer og administrerer dem.

Lektion 2 af 411 trin

Pods: De mindste enheder er en gratis Intensiv DevOps-uddannelse-lektion på CoddyKit. Dette er lektion 2 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 en Kubernetes-pod?

I Kubernetes er den mindste og mest grundlæggende enhed, du kan implementere, en Pod. Forestil dig en Pod som et enkelt "hus", der indeholder en eller flere containere.

Pods er en abstraktion oven på containere. De repræsenterer en kørende proces i din klynge og indkapsler applikationscontainere, lagerressourcer, en unik netværks-IP-adresse samt indstillinger, der styrer, hvordan containere skal køre.

Pods: De mindste enheder — illustration 1

Pod kontra container: Forskellen

Måske tænker du: "Hvorfor har jeg brug for en Pod, hvis jeg allerede har containere?" Her er den vigtigste forskel:

  • En container (for eksempel en Docker-container) er en pakke med en applikation og dens afhængigheder.
  • En Pod er Kubernetes' abstraktion, som omslutter en eller flere containere og giver dem delte ressourcer og en fælles netværksidentitet.

Mens en container er det faktiske program, der kan køres, er en Pod den måde, Kubernetes administrerer og orkestrerer disse programmer på.

Hvorfor bruge Pods?

Pods giver flere vigtige fordele:

  • Delt netværksnavnerum: Alle containere i en Pod deler den samme IP-adresse og netværksporte. De kan kommunikere med hinanden ved hjælp af localhost.
  • Delt lager: Pods kan dele lagervolumener, så containere i den samme Pod kan få adgang til fælles data.
  • Samplacering og fælles planlægning: Containere, der skal arbejde tæt sammen (for eksempel en applikation og en logføringsagent), kan garanteres at køre på den samme node og bliver altid planlagt sammen.

En Pod-definitions anatomi

Pods defineres ved hjælp af YAML-konfigurationsfiler. Her er de centrale komponenter, du finder:

  • apiVersion: Angiver Kubernetes-API-versionen (for eksempel v1).
  • kind: Typen af Kubernetes-objekt, som er Pod.
  • metadata: Oplysninger som Pod'ens name og labels.
  • spec: Den ønskede tilstand for Pod'en, herunder de containers, der skal køres, volumes og andre indstillinger.

Definition af en Pod med én container

De fleste Pods indeholder én enkelt container. Det er almindeligt for simple applikationer. Her er en grundlæggende YAML-definition af en Pod, der kører en Nginx-webserver:

apiVersion: v1
kind: Pod
metadata:
  name: my-nginx-pod
  labels:
    app: webserver
spec:
  containers:
  - name: nginx-container
    image: nginx:latest
    ports:
    - containerPort: 80

Implementering af din første Pod

Hvis du vil oprette en Pod fra en YAML-fil, bruger du kommandoen kubectl apply. Den fortæller Kubernetes, at ressourcer skal oprettes eller opdateres ud fra din definition.

Lad os sige, at du gemmer den tidligere Nginx-Pod-definition som nginx-pod.yaml. Du implementerer den sådan:

  • kubectl apply -f nginx-pod.yaml

Kubernetes planlægger derefter denne Pod til at køre på en af dine worker-noder.

Undersøgelse af Pods: Get og Describe

Når Pod'ene er implementeret, vil du gerne kontrollere deres status. Her er to vigtige kubectl-kommandoer:

  • kubectl get pods: Viser alle Pods i det aktuelle navnerum samt deres navn, status og node.
  • kubectl describe pod <pod-name>: Giver detaljerede oplysninger om en bestemt Pod, herunder hændelser, containerstatus og tildelte ressourcer.

Disse kommandoer er afgørende til overvågning og fejlfinding.

Pods med flere containere: Sidecars

Selvom Pods med én container er almindelige, kan nogle situationer drage fordel af Pods med flere containere. Et klassisk eksempel er sidecar-mønstret.

En sidecar-container kører sammen med din primære applikationscontainer i den samme Pod og udfører hjælpeopgaver som:

  • Agenter til logføring og overvågning
  • Datasynkronisering
  • Proxy for netværkstrafik

De deler Pod'ens netværk og lager, hvilket gør kommunikationen effektiv.

Eksempel: Pod med flere containere

Her er et eksempel på en Pod med flere containere. Den har en Nginx-webserver og en busybox-sidecar-container, der skriver logge til en delt volumen.

apiVersion: v1
kind: Pod
metadata:
  name: multi-container-pod
spec:
  volumes:
  - name: shared-log-volume
    emptyDir: {}
  containers:
  - name: web-server
    image: nginx:latest
    ports:
    - containerPort: 80
    volumeMounts:
    - name: shared-log-volume
      mountPath: /var/log/nginx
  - name: log-writer
    image: busybox:latest
    command: ["/bin/sh", "-c", "while true; do echo 'Hello from sidecar!' >> /var/log/app.log; sleep 5; done"]
    volumeMounts:
    - name: shared-log-volume
      mountPath: /var/log/app

Test din viden om Pods

Hvilket af følgende udsagn om Kubernetes-Pods er SANDT?

Opsummering: Pods – kerneenheden

Du har netop lært om Kubernetes-Pods, som er de grundlæggende byggesten i dine applikationer i en klynge.

  • Pods indkapsler en eller flere containere og giver dem delte ressourcer.
  • De tilbyder delt netværk og lager samt garanteret samplacering af relaterede containere.
  • Du definerer Pods ved hjælp af YAML og implementerer dem med kubectl apply.
  • kubectl get pods og kubectl describe pod hjælper dig med at overvåge dem.

Derefter udforsker vi flere kubectl-kommandoer til interaktion med din klynge!

Gratis at komme i gang

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 “Pods: De mindste enheder” gratis?

Ja — alle 3 lektioner i læringssporet Intensiv DevOps-uddannelse, inklusive “Pods: De mindste enheder”, 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 “Pods: De mindste enheder”?

Lær om Pods, de grundlæggende byggesten i Kubernetes, og hvordan De definerer og administrerer dem. 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 2 af 4.

Hvor lang tid tager lektionen “Pods: De mindste enheder”?

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

  1. Kubernetes-arkitektur
  2. Pods: De mindste enheder
  3. Grundlæggende kubectl-kommandoer
  4. Namespaces og labels til organisering
← Tilbage til Intensiv DevOps-uddannelse