This commit is contained in:
2025-09-16 15:43:36 +05:00
commit 111cc834dd
17 changed files with 2078 additions and 0 deletions

104
k8s/README.md Normal file
View File

@ -0,0 +1,104 @@
# 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. Подготовка образа
```bash
# Сборка образа
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
```bash
# Применение всех манифестов
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. Проверка развертывания
```bash
# Проверка подов
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 провайдер
## Мониторинг
```bash
# Проверка health check
curl https://demo-spa.example.com/health
# Проверка аутентификации
curl -I https://demo-spa.example.com/
```