Kubernetes w akcji – deployowanie i zarządzanie aplikacją krok po kroku
Jeżeli masz już podstawową wiedzę o Kubernetes i chcesz przejść do praktycznego wdrażania aplikacji, to ten artykuł jest właśnie dla Ciebie. Pokażemy Ci, jak krok po kroku zbudować, wdrożyć i zarządzać aplikacją webową z wykorzystaniem manifestów YAML, narzędzia kubectl oraz zaawansowanych funkcji Kubernetes, takich jak readinessProbe, livenessProbe, autoskalowanie (HPA), rolling update i rollback.
W Spark Academy stawiamy na praktykę. Ten artykuł jest tylko przykładem tego, jak wygląda nauka na naszych kursach, w tym na kursie „Pierwsze kroki w Linuxie”, gdzie dotykamy również podstaw konteneryzacji i Kubernetes. Jeśli naprawdę chcesz zwiększyć swoje kompetencje w IT, dołącz do naszych kursów prowadzonych przez doświadczonych praktyków.
Krok 1: Tworzenie manifestu YAML i Service
Podstawą wdrożenia aplikacji w Kubernetes jest manifest YAML. Opisujemy w nim, jak aplikacja ma działać i jakie zasoby są jej potrzebne.
Przykładowy manifest dla aplikacji webowej (plik app-deployment.yaml
):
Po utworzeniu Deploymentu potrzebujemy Service, aby aplikacja była dostępna dla użytkowników:
apiVersion: apps/v1
kind: Deployment
metadata:
name: web-app
labels:
app: web-app
spec:
replicas: 2
selector:
matchLabels:
app: web-app
template:
metadata:
labels:
app: web-app
spec:
containers:
- name: web-app
image: myregistry/web-app:v1
ports:
- containerPort: 80
readinessProbe:
httpGet:
path:
port: 80
initialDelaySeconds: 10
periodSeconds: 5
livenessProbe:
httpGet:
path: /
port: 80
initialDelaySeconds: 15
periodSeconds: 20
Po utworzeniu Deploymentu potrzebujemy Service, aby aplikacja była dostępna dla użytkowników:
apiVersion: v1
kind: Service
metadata:
name: web-app-service
spec:
type: NodePort
selector:
app: web-app
ports:
- protocol: TCP
port: 80
targetPort: 80
nodePort: 30080
Krok 2: Wdrożenie aplikacji – kubectl apply
Wdrożymy teraz oba pliki manifestów:
kubectl apply -f app-deployment.yaml
kubectl apply -f web-app-service.yaml
Sprawdź stan wdrożenia:
kubectl get deployments
kubectl get pods
kubectl get services
kubectl describe deployment web-app
kubectl logs <pod-name>
Krok 3: Autoskalowanie aplikacji (Horizontal Pod Autoscaler)
Utwórz HPA dla aplikacji:
kubectl autoscale deployment web-app --min=2 --max=5 --cpu-percent=50
Monitorowanie działania skalowania:
kubectl get hpa
Krok 4: Rolling update – aktualizacja aplikacji bez przestojów
Aktualizacja aplikacji przy użyciu rolling update:
kubectl set image deployment/web-app web-app=myregistry/web-app:v2
Monitorowanie postępu:
kubectl rollout status deployment/web-app
Na kursie „Pierwsze kroki w Linuxie” uczymy podstawowych technik zarządzania aplikacjami w środowisku Linux, co jest solidnym fundamentem do dalszego rozwoju w kierunku Kubernetes.
Krok 5: Rollback – powrót do poprzedniej wersji
Jeśli coś pójdzie nie tak, wróć do poprzedniej wersji:
kubectl rollout undo deployment/web-app
Sprawdź historię wdrożeń:
kubectl rollout history deployment/web-app
Zrób kolejny krok: Linux i kontenery czekają.
Właśnie przeszedłeś cały proces wdrażania, autoskalowania, aktualizacji i wycofywania aplikacji w Kubernetes. W Spark Academy oferujemy praktyczne kursy IT, które dadzą Ci solidne podstawy pracy z Linuxem i konteneryzacją. Kurs „Pierwsze kroki w Linuxie” to doskonały start dla każdego, kto chce rozpocząć karierę w IT, zyskać solidne podstawy administracji Linux oraz zaznajomić się z konteneryzacją.
Nie czekaj rozwijaj swoją karierę już dziś z Spark Academy! Zapisz się na kurs „Pierwsze kroki w Linuxie” i zacznij działać jak profesjonalista IT!