Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lære Opsætning og Igangsættelse af Kubernetes-Udrulning | CI/CD og Automatisering
Introduktion til DevOps

bookOpsætning og Igangsættelse af Kubernetes-Udrulning

Nu hvor din applikation kører problemfrit i containere, er den næste udfordring at orkestrere og administrere disse containere i stor skala. Her kommer Kubernetes ind i billedet for at hjælpe.

For at komme i gang defineres applikationens ønskede tilstand ved hjælp af YAML-filer. Én fil beskriver en Deployment, som håndterer opdateringer og skalering, mens en anden definerer en Service, der eksponerer applikationen til netværket og gør den tilgængelig for brugere.

Note
Læs Mere

YAML (YAML Ain't Markup Language) er et menneskelæsbart format til konfigurationsfiler. Det bruges ofte til at beskrive infrastruktur, automatisere processer og gemme applikationsindstillinger.

En Deployment sikrer, at det ønskede antal applikationsinstanser (Pods) altid kører og gør det nemt at udrulle opdateringer eller rulle tilbage til tidligere versioner. En Service eksponerer disse containere til netværket og fordeler indgående trafik mellem dem.

Kørsel af Minikube

Note
Definition

Minikube er et letvægtsværktøj, der giver dig mulighed for at køre en lokal Kubernetes-klynge på din computer. Det opretter et virtuelt miljø, hvor du kan teste og udforske Kubernetes uden at skulle bruge cloud-tjenester.

Når du har installeret Minikube og tilføjet det til din system-PATH, skal du åbne PowerShell (eller din foretrukne terminal) og køre:

Denne kommando kontrollerer, om Minikube er tilgængelig, og viser den installerede version.

Når du har bekræftet, at Minikube er installeret, start dit lokale Kubernetes-klynge med:

Denne kommando opretter og starter en lokal Kubernetes-klynge på din maskine. Den downloader nødvendige komponenter og starter kontrolplanet og arbejdsknuderne.

Deployment: Udrulning af applikation

Start med at oprette filen deployment.yaml. En Deployment i Kubernetes sikrer, at et bestemt antal Pods (applikationsinstanser) altid kører og kan opdateres eller rulles tilbage uden nedetid.

deployment.yaml

deployment.yaml

copy

I dette manifest angiver parameteren replicas, hvor mange Pod-instanser der skal køre samtidigt — i dette tilfælde to. For at vide, hvilke Pods der skal administreres, bruger Deployment en kombination af selector og labels: selector fungerer som et filter til at finde Pods med et bestemt label, og Pod-skabelonen definerer dette label. Når labels matcher, betragter Deployment disse Pods som sine egne og sørger for at opretholde deres antal, opdatere dem og genstarte dem om nødvendigt.

Alle Pods kører på port 3000. De kan alle bruge den samme port, fordi hver Pod opererer i sit eget isolerede netværksrum, så der opstår ingen konflikt mellem dem.

Service: Netværksadgang til applikationen

Når Deployment er på plads, er en Service nødvendig for at give netværksadgang og load balancing mellem Pods. Opret filen service.yaml:

service.yaml

service.yaml

copy

Dette manifest definerer en Service med navnet my-app-service, som dirigerer trafik til Pods med mærket app: my-app. Den lytter eksternt på port 80 og videresender forespørgsler til port 3000 inde i Pods.

Typen LoadBalancer er vigtig, da den eksponerer applikationen eksternt og fordeler trafikken på tværs af Pods.

Udrulning af applikationen i Kubernetes

Når YAML-filerne er klar, kan de anvendes på klyngen:

kubectl apply -f deployment.yaml
kubectl apply -f service.yaml

Kommandoen kubectl apply -f opretter eller opdaterer ressourcer i klyngen baseret på indholdet af YAML-filerne.

Kontrol af status

Efter at have anvendt konfigurationsfilerne er det vigtigt at bekræfte, at alt er blevet udrullet som forventet. Da Pods og Services tager et øjeblik at starte, begynd med at liste de kørende Pods:

Hvis deployment.yaml-filen angiver replicas: 2, bør to Pods fremgå af outputtet.

For at bekræfte at Service kører og er tilgængelig:

Dette vil vise Service’s IP-adresse og de porte, hvorigennem applikationen kan tilgås.

Hent Service-URL

For at få adgang til din applikation, kør følgende kommando i PowerShell eller din terminal:

Denne kommando beder Minikube om at returnere den URL, hvor din applikation er tilgængelig. Minikube kontrollerer den Service, du har oprettet (my-app-service), og giver et link, du kan åbne i din browser.

Skalering af applikationen

Kubernetes gør det nemt at justere antallet af kørende Pods uden at stoppe applikationen.

For eksempel, for at skalere fra 2 til 4 replikaer:

Når du kører kubectl get pods igen, vil der nu blive vist fire aktive Pods.

Kubernetes tilbyder avancerede værktøjer til håndtering af containeriserede applikationer i enhver skala. En Deployment sikrer, at det korrekte antal Pods kører og kan nemt opdateres eller rulles tilbage. En Service eksponerer applikationen til netværket og balancerer indgående trafik. YAML-konfigurationsfiler gør opsætningen overskuelig og læsbar, mens kubectl-kommandoer muliggør, at disse konfigurationer kan anvendes og administreres i realtid.

1. Hvad er hovedformålet med en Deployment i Kubernetes?

2. Hvorfor kan flere Pods køre på det samme portnummer (f.eks. 3000) uden konflikter?

question mark

Hvad er hovedformålet med en Deployment i Kubernetes?

Select the correct answer

question mark

Hvorfor kan flere Pods køre på det samme portnummer (f.eks. 3000) uden konflikter?

Select the correct answer

Var alt klart?

Hvordan kan vi forbedre det?

Tak for dine kommentarer!

Sektion 2. Kapitel 9

Spørg AI

expand

Spørg AI

ChatGPT

Spørg om hvad som helst eller prøv et af de foreslåede spørgsmål for at starte vores chat

Awesome!

Completion rate improved to 3.7

bookOpsætning og Igangsættelse af Kubernetes-Udrulning

Stryg for at vise menuen

Nu hvor din applikation kører problemfrit i containere, er den næste udfordring at orkestrere og administrere disse containere i stor skala. Her kommer Kubernetes ind i billedet for at hjælpe.

For at komme i gang defineres applikationens ønskede tilstand ved hjælp af YAML-filer. Én fil beskriver en Deployment, som håndterer opdateringer og skalering, mens en anden definerer en Service, der eksponerer applikationen til netværket og gør den tilgængelig for brugere.

Note
Læs Mere

YAML (YAML Ain't Markup Language) er et menneskelæsbart format til konfigurationsfiler. Det bruges ofte til at beskrive infrastruktur, automatisere processer og gemme applikationsindstillinger.

En Deployment sikrer, at det ønskede antal applikationsinstanser (Pods) altid kører og gør det nemt at udrulle opdateringer eller rulle tilbage til tidligere versioner. En Service eksponerer disse containere til netværket og fordeler indgående trafik mellem dem.

Kørsel af Minikube

Note
Definition

Minikube er et letvægtsværktøj, der giver dig mulighed for at køre en lokal Kubernetes-klynge på din computer. Det opretter et virtuelt miljø, hvor du kan teste og udforske Kubernetes uden at skulle bruge cloud-tjenester.

Når du har installeret Minikube og tilføjet det til din system-PATH, skal du åbne PowerShell (eller din foretrukne terminal) og køre:

Denne kommando kontrollerer, om Minikube er tilgængelig, og viser den installerede version.

Når du har bekræftet, at Minikube er installeret, start dit lokale Kubernetes-klynge med:

Denne kommando opretter og starter en lokal Kubernetes-klynge på din maskine. Den downloader nødvendige komponenter og starter kontrolplanet og arbejdsknuderne.

Deployment: Udrulning af applikation

Start med at oprette filen deployment.yaml. En Deployment i Kubernetes sikrer, at et bestemt antal Pods (applikationsinstanser) altid kører og kan opdateres eller rulles tilbage uden nedetid.

deployment.yaml

deployment.yaml

copy

I dette manifest angiver parameteren replicas, hvor mange Pod-instanser der skal køre samtidigt — i dette tilfælde to. For at vide, hvilke Pods der skal administreres, bruger Deployment en kombination af selector og labels: selector fungerer som et filter til at finde Pods med et bestemt label, og Pod-skabelonen definerer dette label. Når labels matcher, betragter Deployment disse Pods som sine egne og sørger for at opretholde deres antal, opdatere dem og genstarte dem om nødvendigt.

Alle Pods kører på port 3000. De kan alle bruge den samme port, fordi hver Pod opererer i sit eget isolerede netværksrum, så der opstår ingen konflikt mellem dem.

Service: Netværksadgang til applikationen

Når Deployment er på plads, er en Service nødvendig for at give netværksadgang og load balancing mellem Pods. Opret filen service.yaml:

service.yaml

service.yaml

copy

Dette manifest definerer en Service med navnet my-app-service, som dirigerer trafik til Pods med mærket app: my-app. Den lytter eksternt på port 80 og videresender forespørgsler til port 3000 inde i Pods.

Typen LoadBalancer er vigtig, da den eksponerer applikationen eksternt og fordeler trafikken på tværs af Pods.

Udrulning af applikationen i Kubernetes

Når YAML-filerne er klar, kan de anvendes på klyngen:

kubectl apply -f deployment.yaml
kubectl apply -f service.yaml

Kommandoen kubectl apply -f opretter eller opdaterer ressourcer i klyngen baseret på indholdet af YAML-filerne.

Kontrol af status

Efter at have anvendt konfigurationsfilerne er det vigtigt at bekræfte, at alt er blevet udrullet som forventet. Da Pods og Services tager et øjeblik at starte, begynd med at liste de kørende Pods:

Hvis deployment.yaml-filen angiver replicas: 2, bør to Pods fremgå af outputtet.

For at bekræfte at Service kører og er tilgængelig:

Dette vil vise Service’s IP-adresse og de porte, hvorigennem applikationen kan tilgås.

Hent Service-URL

For at få adgang til din applikation, kør følgende kommando i PowerShell eller din terminal:

Denne kommando beder Minikube om at returnere den URL, hvor din applikation er tilgængelig. Minikube kontrollerer den Service, du har oprettet (my-app-service), og giver et link, du kan åbne i din browser.

Skalering af applikationen

Kubernetes gør det nemt at justere antallet af kørende Pods uden at stoppe applikationen.

For eksempel, for at skalere fra 2 til 4 replikaer:

Når du kører kubectl get pods igen, vil der nu blive vist fire aktive Pods.

Kubernetes tilbyder avancerede værktøjer til håndtering af containeriserede applikationer i enhver skala. En Deployment sikrer, at det korrekte antal Pods kører og kan nemt opdateres eller rulles tilbage. En Service eksponerer applikationen til netværket og balancerer indgående trafik. YAML-konfigurationsfiler gør opsætningen overskuelig og læsbar, mens kubectl-kommandoer muliggør, at disse konfigurationer kan anvendes og administreres i realtid.

1. Hvad er hovedformålet med en Deployment i Kubernetes?

2. Hvorfor kan flere Pods køre på det samme portnummer (f.eks. 3000) uden konflikter?

question mark

Hvad er hovedformålet med en Deployment i Kubernetes?

Select the correct answer

question mark

Hvorfor kan flere Pods køre på det samme portnummer (f.eks. 3000) uden konflikter?

Select the correct answer

Var alt klart?

Hvordan kan vi forbedre det?

Tak for dine kommentarer!

Sektion 2. Kapitel 9
some-alt