Files
2025-09-16 15:43:36 +05:00
..
2025-09-16 15:43:36 +05:00
2025-09-16 15:43:36 +05:00
2025-09-16 15:43:36 +05:00
2025-09-16 15:43:36 +05:00
2025-09-16 15:43:36 +05:00
2025-09-16 15:43:36 +05:00

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/