Files
k8s-oauth-demo-spa/k8s/README.md
2025-09-16 15:43:36 +05:00

105 lines
3.5 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 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/
```