Nasazení aplikací pomocí Kubernetes zahrnuje několik klíčových kroků, aby byla vaše aplikace správně nakonfigurována, nasazena a spravována v Kubernetes clusteru. Níže je uveden přehled a krok za krokem návod, který vám pomůže pochopit tento proces.
kubeadm
nebo minikube
.kubectl
, příkazový nástroj Kubernetes, pro interakci s vaším clusterem.Ujistěte se, že je vaše aplikace kontejnerizována. Obvykle vytvoříte Docker image vaší aplikace.
# Vytvořte Dockerfile pro vaši aplikaci
FROM nginx:alpine
COPY . /usr/share/nginx/html
# Vytvořte Docker image
docker build -t your-image-name:tag .
# Nahrajte image do kontejnerového registru (např. Docker Hub, Google Container Registry, AWS ECR)
docker tag your-image-name:tag your-docker-hub-username/your-image-name:tag
docker push your-docker-hub-username/your-image-name:tag
Kubernetes používá YAML soubory k definování požadovaného stavu vaší aplikace. Mezi běžné manifesty patří Deployment, Service a ConfigMap.
Definuje, jak je vaše aplikace nasazena, včetně počtu replik, kontejnerového image a dalších konfigurací.
apiVersion: apps/v1
kind: Deployment
metadata:
name: my-app-deployment
spec:
replicas: 3
selector:
matchLabels:
app: my-app
template:
metadata:
labels:
app: my-app
spec:
containers:
- name: my-app
image: your-image-name:tag
ports:
- containerPort: 80
Exponuje vaši aplikaci na síti, buď interně v rámci clusteru, nebo externě.
apiVersion: v1
kind: Service
metadata:
name: my-app-service
spec:
selector:
app: my-app
ports:
- protocol: TCP
port: 80
targetPort: 80
type: LoadBalancer
Použijte kubectl
pro aplikaci těchto manifestů do vašeho Kubernetes clusteru.
kubectl apply -f deployment.yaml
kubectl apply -f service.yaml
Zkontrolujte stav vašeho nasazení a služeb, abyste se ujistili, že vše běží správně.
kubectl get deployments
kubectl get services
kubectl get pods
Škálování: Upravte počet replik změnou pole replicas
v manifestu Deployment nebo pomocí příkazu kubectl scale
.
kubectl scale deployment my-app-deployment --replicas=5
Aktualizace: Aktualizujte vaši aplikaci provedením změn v manifestech a jejich opětovným použitím pomocí kubectl apply
.
Pro odstranění zdrojů můžete použít kubectl delete
.
kubectl delete -f deployment.yaml
kubectl delete -f service.yaml
Pojďme si projít příklad:
FROM nginx:alpine
COPY . /usr/share/nginx/html
docker build -t my-nginx-app:v1 .
docker tag my-nginx-app:v1 your-docker-hub-username/my-nginx-app:v1
docker push your-docker-hub-username/my-nginx-app:v1
apiVersion: apps/v1
kind: Deployment
metadata:
name: nginx-deployment
spec:
replicas: 3
selector:
matchLabels:
app: nginx
template:
metadata:
labels:
app: nginx
spec:
containers:
- name: nginx
image: your-docker-hub-username/my-nginx-app:v1
ports:
- containerPort: 80
apiVersion: v1
kind: Service
metadata:
name: nginx-service
spec:
selector:
app: nginx
ports:
- protocol: TCP
port: 80
targetPort: 80
type: LoadBalancer
kubectl apply -f deployment.yaml
kubectl apply -f service.yaml
kubectl get deployments
kubectl get services
kubectl get pods
Dodržováním těchto kroků můžete úspěšně nasadit svou aplikaci pomocí Kubernetes.