Коротко: минимальный Python‑сервис с Docker-образом и манифестами для Kubernetes (Deployment, Service, Pod).
- Python (uv/pyproject)
- Docker
- Kubernetes (Deployment/Service/Pod)
main.py— входная точка приложенияpyproject.toml,uv.lock— зависимости и конфигурация PythonDockerfile— сборка контейнераdeploy.yaml— манифест Deploymentservice.yaml— манифест Servicepod.yaml— отдельный Pod (для тестов/отладки)
- Установите Python 3.11+
- Установите зависимости:
- Если используете uv:
uv sync - Либо через pip:
pip install -r <экспорт зависимостей>
- Если используете uv:
- Запуск:
python main.py
# Сборка образа
docker build -t k8-app:latest .
# Локальный запуск
docker run --rm -p 8000:8000 k8-app:latestПри необходимости скорректируйте порт экспонирования в Dockerfile/коде.
Предполагается, что у вас настроен kubectl и выбран нужный контекст кластера.
# Применить Deployment и Service
kubectl apply -f deploy.yaml
kubectl apply -f service.yaml
# (Опционально) Под для отладки
kubectl apply -f pod.yaml
# Проверить состояние
kubectl get pods,svc,deployСоветы:
- Перед деплоем опубликуйте образ в реестр и обновите image в манифестах.
- Проверьте ресурсы/пробы readiness/liveness при необходимости.
- Параметры (порты, переменные окружения) задавайте через манифесты Kubernetes или переменные среды при запуске контейнера.
- Python 3.11+
- Docker 24+
- kubectl 1.27+ (или совместимая версия с вашим кластером)
# Просмотр логов пода
kubectl logs -l app=k8-app -f
# Переход в контейнер
kubectl exec -it deploy/k8-app -- sh
# Удаление ресурсов
kubectl delete -f service.yaml -f deploy.yaml -f pod.yaml