Kubernetes манифесты для Demo SPA App
Структура манифестов
k8s/
├── namespace.yaml # Namespace для приложения
├── deployment.yaml # React SPA приложение
├── service.yaml # Внутренний сервис
├── dex-authenticator.yaml # DexAuthenticator для аутентификации
├── ingress.yaml # Внешний доступ с SSL
└── kustomization.yaml # Kustomize конфигурация
Развертывание
1. Подготовка образа
# Сборка образа
docker build -t demo-spa-app:latest .
# Размещение в registry (замените на ваш registry)
docker tag demo-spa-app:latest your-registry.com/demo-spa-app:latest
docker push your-registry.com/demo-spa-app:latest
2. Настройка конфигурации
Перед развертыванием обновите следующие параметры:
- Домен:
demo-spa.example.com→ ваш домен - SSL сертификат: убедитесь что cert-manager настроен
- Dex: должен быть развернут в кластере (обычно в namespace
d8-user-authn)
3. Развертывание в Kubernetes
# Применение всех манифестов
kubectl apply -k k8s/
# Или по отдельности
kubectl apply -f k8s/namespace.yaml
kubectl apply -f k8s/deployment.yaml
kubectl apply -f k8s/service.yaml
kubectl apply -f k8s/dex-authenticator.yaml
kubectl apply -f k8s/ingress.yaml
4. Проверка развертывания
# Проверка подов
kubectl get pods -n demo-spa
# Проверка сервисов
kubectl get svc -n demo-spa
# Проверка ingress
kubectl get ingress -n demo-spa
# Логи приложения
kubectl logs -f deployment/demo-spa-app -n demo-spa
# Логи DexAuthenticator
kubectl logs -f deployment/demo-spa-auth -n demo-spa
Конфигурация DexAuthenticator
Настройка Dex
DexAuthenticator автоматически интегрируется с Dex, развернутым в кластере. Дополнительная настройка OAuth2 клиентов не требуется - Deckhouse управляет этим автоматически.
Основные параметры DexAuthenticator
- applicationDomain: домен вашего приложения
- sendAuthorizationHeader: отправка заголовков авторизации в приложение
- keepUsersLoggedInFor: время жизни сессии (по умолчанию 24h)
- allowedGroups: список разрешенных групп (пустой = все группы)
- cookieConfig: настройки безопасности куки
Архитектура
Internet → Ingress → DexAuthenticator → React SPA
↓
Dex (аутентификация)
- Ingress: Внешний доступ с SSL
- DexAuthenticator: Нативная аутентификация через Dex
- React SPA: Основное приложение
- Dex: OIDC провайдер
Мониторинг
# Проверка health check
curl https://demo-spa.example.com/health
# Проверка аутентификации
curl -I https://demo-spa.example.com/