Учебный Kubernetes/kind-проект. Реального запуска при подготовке не было.
Требуется отдельный Docker-хост с kind и kubectl; контекст kind-avg-k8s-demo.
Пример не содержит СУБД, секретов или постоянных данных.
Тег nginx:alpine учебный изменяемый.
Полная последовательность:

docker info
kind version
kubectl version --client

kind create cluster --name avg-k8s-demo --wait 120s
kubectl --context kind-avg-k8s-demo get nodes

kubectl --context kind-avg-k8s-demo apply --dry-run=client -f demo.yaml
kubectl --context kind-avg-k8s-demo apply -f demo.yaml
kubectl --context kind-avg-k8s-demo -n avg-k8s-demo rollout status deployment/web --timeout=120s
kubectl --context kind-avg-k8s-demo -n avg-k8s-demo get deployments,pods,services

kubectl --context kind-avg-k8s-demo -n avg-k8s-demo port-forward --address 127.0.0.1 service/web 18090:80

curl -I http://127.0.0.1:18090/

kubectl --context kind-avg-k8s-demo -n avg-k8s-demo scale deployment/web --replicas=3
kubectl --context kind-avg-k8s-demo -n avg-k8s-demo rollout status deployment/web --timeout=120s
kubectl --context kind-avg-k8s-demo -n avg-k8s-demo get pods -o wide

kubectl --context kind-avg-k8s-demo -n avg-k8s-demo get pods
kubectl --context kind-avg-k8s-demo -n avg-k8s-demo delete pod ИМЯ_ОДНОГО_УЧЕБНОГО_POD
kubectl --context kind-avg-k8s-demo -n avg-k8s-demo get pods -w

kubectl --context kind-avg-k8s-demo -n avg-k8s-demo set image deployment/web nginx=nginx:stable-alpine
kubectl --context kind-avg-k8s-demo -n avg-k8s-demo rollout status deployment/web --timeout=120s
kubectl --context kind-avg-k8s-demo -n avg-k8s-demo rollout history deployment/web

kubectl --context kind-avg-k8s-demo -n avg-k8s-demo rollout undo deployment/web
kubectl --context kind-avg-k8s-demo -n avg-k8s-demo rollout status deployment/web --timeout=120s

kubectl --context kind-avg-k8s-demo -n avg-k8s-demo describe deployment web
kubectl --context kind-avg-k8s-demo -n avg-k8s-demo get events --sort-by=.metadata.creationTimestamp
kubectl --context kind-avg-k8s-demo -n avg-k8s-demo logs deployment/web --tail=100

kubectl --context kind-avg-k8s-demo delete namespace avg-k8s-demo
kind delete cluster --name avg-k8s-demo

Строку ИМЯ_ОДНОГО_УЧЕБНОГО_POD заменить реальным именем только своего тестового Pod.
Удаление namespace/cluster выполнять только после завершения опыта.
