Развертывание примерного приложения
На этом шаге вы узнаете, как создавать и развертывать простое приложение Kubernetes с использованием манифестов YAML. Мы создадим как под (Pod), так и развертывание (Deployment), чтобы продемонстрировать различные способы развертывания приложений.
Сначала создайте каталог для ваших манифестов Kubernetes:
mkdir -p ~/project/k8s-manifests
cd ~/project/k8s-manifests
Создайте простой манифест пода (Pod) для NGINX:
nano nginx-pod.yaml
Добавьте следующее содержимое:
apiVersion: v1
kind: Pod
metadata:
name: nginx-pod
labels:
app: nginx
spec:
containers:
- name: nginx
image: nginx:latest
ports:
- containerPort: 80
Нажмите Ctrl+X
, затем Y
и Enter
, чтобы сохранить и выйти.
Теперь создайте манифест развертывания (Deployment):
nano nginx-deployment.yaml
Добавьте следующее содержимое:
apiVersion: apps/v1
kind: Deployment
metadata:
name: 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: 80
Примените манифесты для создания ресурсов:
kubectl apply -f nginx-pod.yaml
kubectl apply -f nginx-deployment.yaml
Пример вывода:
pod/nginx-pod created
deployment.apps/nginx-deployment created
Проверьте созданные ресурсы:
kubectl get pods
kubectl get deployments
Пример вывода:
NAME READY STATUS RESTARTS AGE
nginx-pod 1/1 Running 0 1m
nginx-deployment-xxx-yyy 1/1 Running 0 1m
nginx-deployment-xxx-zzz 1/1 Running 0 1m
nginx-deployment-xxx-www 1/1 Running 0 1m
NAME READY UP-TO-DATE AVAILABLE AGE
nginx-deployment 3/3 3 3 1m
Подождите, пока развертывание создаст реплики. В столбце READY
должно отображаться 3/3
, когда все реплики будут готовы.
Основные различия между подом (Pod) и развертыванием (Deployment):
- Под (Pod): Одиночный экземпляр приложения.
- Развертывание (Deployment): Управляет несколькими репликами и обеспечивает самоподдержку.