init
This commit is contained in:
104
k8s/README.md
Normal file
104
k8s/README.md
Normal 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/
|
||||
```
|
||||
Reference in New Issue
Block a user