No description
  • HTML 87.1%
  • Go 6.6%
  • Python 5.5%
  • Dockerfile 0.8%
Find a file
2026-06-16 12:49:38 +07:00
app k8s demo 2026-03-03 21:58:59 +00:00
dashboard k8s demo 2026-03-03 21:58:59 +00:00
k8s k8s demo 2026-03-03 21:58:59 +00:00
README.md Обновить README.md 2026-06-16 12:49:16 +07:00

Структура проекта

k8s-demo/
├── app/
│   ├── main.go          # Go-сервис с CPU-нагрузкой
│   ├── go.mod
│   └── Dockerfile       # Multi-stage build
├── k8s/
│   ├── deployment.yaml  # Deployment с resource limits
│   ├── service.yaml     # NodePort Service
│   └── hpa.yaml         # HorizontalPodAutoscaler
├── dashboard/
│   ├── index.html       # Веб-дашборд для нагрузочного тестирования
│   └── server.py        # HTTP-сервер с проксированием K8s API
└── README.md

Инструменты

  • minikube v1.38.1
  • kubectl v1.35.1
  • Docker v27.4.0

Быстрый старт

1. Сборка образа

cd app
docker build -t demo-app:1.0 .

2. Демо: Docker с ограничениями

docker run -d --name demo-app -p 8080:8080 --cpus=0.2 --memory=128m demo-app:1.0

# Открыть дашборд (работает и для Docker-режима)
cd dashboard && python3 server.py
# http://localhost:3000 → ввести http://localhost:8080 → START

docker rm -f demo-app

3. Демо: Kubernetes с автоскейлингом

minikube start
minikube addons enable metrics-server
minikube image load demo-app:1.0

kubectl apply -f k8s/deployment.yaml -f k8s/service.yaml -f k8s/hpa.yaml
minikube service demo-app --url  # получить URL

# Запустить kubectl proxy + дашборд
kubectl proxy --port=8001 &
cd dashboard && python3 server.py
# http://localhost:3000 → ввести URL сервиса → START

4. Наблюдение за автоскейлингом

kubectl get hpa -w          # следить за HPA
kubectl get pods -w         # следить за подами
kubectl top pods            # CPU/Memory