AI-Ops Documentation

Русский English
  • Главная
  • Карта документации
0. С чего начать
  • Что это за продукт
  • Для кого он
  • Как устроена документация
  • Быстрые ссылки
  • Как начать разработку
  • Как найти нужный сервис
  • К кому идти по вопросам
1. Продукт
Обзор продукта
  • Миссия продукта
  • Ценность для бизнеса
  • Основные сценарии
  • Границы системы
Пользователи и персоны
  • Сегменты пользователей
  • Роли пользователей
  • Основные потребности
Пользовательские сценарии
  • Регистрация / логин
  • Основной пользовательский сценарий
  • Оплата / заказ / действие
  • Поддержка и сценарий восстановления
Функции продукта
Фича: Аутентификация
  • Цель
  • Пользовательская история
  • Бизнес-правила
  • Ограничения
  • Метрики успеха
  • Связанные сервисы
  • Связанные события / данные
  • Фича: Профиль
  • Фича: Организации
  • Фича: Топология
  • Фича: Вычислительные ресурсы
  • Фича: Кластеры
  • Фича: Каталог сервисов
Требования
  • Функциональные требования
  • Нефункциональные требования
  • Требования к производительности
  • Требования к безопасности
  • Конфиденциальность и соответствие
  • Доступность
Метрики
  • Ключевая метрика (North Star)
  • Продуктовые KPI
  • Метрики воронки
  • Метрики качества
  • Метрики экспериментов
2. Домены
Домен: Identity
  • Назначение
  • Основные концепции
  • Сущности
  • Бизнес-правила
  • Сервисы домена
  • Данные домена
  • Связанные фичи
  • Домен: Профиль пользователя
  • Домен: Поиск
  • Домен: Заказы / транзакции
  • Домен: Уведомления
  • Домен: Аналитика
  • Домен: Рекомендации
3. Архитектура
Обзор системы
  • Что входит в систему
  • Что не входит
  • Высокоуровневая диаграмма
C4 Model
  • Контекстная диаграмма
  • Диаграмма контейнеров
  • Диаграмма компонентов
  • Диаграмма развёртывания
Интеграционная архитектура
  • Внешние системы
  • Интеграции API
  • Webhooks
  • Сторонние провайдеры
Потоки данных
  • Онлайн-поток данных
  • Пакетный поток данных
  • Поток событий
  • Владение данными
Архитектура безопасности
  • Аутентификация
  • Авторизация
  • Управление секретами
  • Шифрование
  • Аудит и логирование
Надежность и масштабируемость
  • SLA / SLO
  • Планирование мощностей
  • Отказоустойчивость
  • Обратное давление и повторы
  • Восстановление после сбоев
Архитектурные принципы
  • Границы доменов
  • Принципы проектирования API
  • Принципы проектирования событий
  • Принципы контрактов данных
  • Диаграмма: auth микросервисы
Control plane
  • Архитектура компонентов (control plane)
  • Доменная модель v0
  • Протокол v0 (control plane)
  • Примеры (control plane)
Сервисы (control plane)
Сервис control plane
  • API
  • Модель данных
  • События
  • Модули
  • Операции
Сервис execution plane
  • API
  • Модель данных
  • События
  • Модули
  • Операции
Сервис resource catalog
  • API
  • Модель данных
  • События
  • Модули
  • Операции
4. Инженерия
Сервисы
Каталог сервисов
  • Все сервисы списком
  • Владельцы
  • Критичность
  • Уровень / домен / статус
  • Сервис аутентификации
  • Сервис аккаунтов
  • Облачный сервис
  • Сервис учётных данных
  • Herald
  • Сервис идентификации
  • API Gateway
  • Сервис токенов
Фронтенд
  • Обзор фронтенда
  • Структура приложения
  • Routing (фронтенд)
  • State management (фронтенд)
  • Design system (фронтенд)
  • UI components (фронтенд)
  • API контракты фронтенда
  • Обработка ошибок (фронтенд)
  • Performance (фронтенд)
  • Feature flags (фронтенд)
  • Тестирование фронтенда
Бэкенд
  • Обзор бэкенда
  • Паттерны сервисов
  • Рекомендации по API
  • Событийные паттерны
  • Паттерны доступа к БД
  • Кэширование
  • Асинхронные задачи и воркеры
  • Идемпотентность
  • Обработка ошибок
  • Тестирование бэкенда
Данные
  • Обзор данных
  • Системы-источники
  • Контракты данных
  • Каталог схем событий
  • Хранилище данных
  • Витрины данных
  • ETL / ELT-пайплайны
  • Качество данных
  • Происхождение данных
  • Политики хранения
  • Политики доступа
ML / DS
  • Обзор ML/DS
  • Сценарии (ML)
  • Каталог моделей
  • Feature store
  • Training pipelines
  • Inference pipelines
  • Offline evaluation
  • Online evaluation / A-B
  • Мониторинг (ML)
  • ML runbooks
QA / Качество
  • Стратегия качества
  • Пирамида тестов
  • Тестовые окружения
  • Тестовые данные
  • Ручное тестирование
  • Автоматизированное тестирование
  • Нагрузочное тестирование
  • Тестирование безопасности
  • Критерии приёмки релиза
  • Процесс разбора багов
5. Платформа
Инфраструктура
  • Ansible
  • WireGuard
  • Kubernetes
  • Longhorn
  • Ingress
  • PostgreSQL Cluster
  • Redis
  • Kafka
  • Vault
  • MinIO
  • Authentik
  • Monitoring
  • Logging
  • Tracing
  • Nexus
  • SonarQube
  • GlitchTip
  • GitLab Runner
  • Kubernetes Dashboard
  • OLM
  • Deploy
  • Internal DNS
  • Обзор (инфраструктура)
  • Config generator
  • Пример (инфраструктура)
  • Скрипты (инфраструктура)
Окружения
  • Локальное
  • Stage
  • Pre
  • Продакшен (prod)
  • Tech
  • Облако
  • Объектное хранилище
  • CI/CD
  • Секреты и сертификаты
Наблюдаемость
  • Логирование
  • Метрики
  • Трейсинг
  • Алертинг
  • Резервное копирование и восстановление
6. Разработка
  • Быстрый старт
  • Локальная настройка
  • Карта репозиториев
  • Стандарты кода
  • Git-процесс
  • Стратегия ветвления
  • Руководство по код-ревью
  • Критерии готовности
  • Процесс релиза
  • Флаги фич
  • FAQ разработчика
  • Миграция secure auth
7. Эксплуатация
  • Дежурство
  • Управление инцидентами
  • Уровни критичности
  • Политика эскалации
  • Постмортемы
  • Ранбуки
  • Управление изменениями
  • Непрерывность бизнеса
8. Аналитика
  • План трекинга событий
  • Определения KPI
  • Каталог дашбордов
  • Словарь метрик
  • Эксперименты
  • Стандарты отчётности
9. Управление
  • Решения (ADR)
  • Политика статуса контента
  • Changelog обновлений документации
Безопасность и соответствие
  • Модель угроз
  • Безопасная разработка
  • Управление доступом
  • Конфиденциальность
  • Реагирование на инциденты
Ответственность и владельцы
  • Команды
  • Зоны ответственности команд
  • Владельцы сервисов
  • Владельцы доменов
  • Контакты
Глоссарий
  • Бизнес-термины
  • Продуктовые термины
  • Технические термины
  • Сокращения

Index

Документация по установке и использованию Kubernetes Dashboard в Kubernetes.

Оглавление

  • Описание
  • Быстрый старт
  • Архитектура
  • Команды
  • Конфигурация
  • Подключение
  • Troubleshooting

Описание

Kubernetes Dashboard - веб-интерфейс для управления Kubernetes кластером. Позволяет просматривать и управлять ресурсами кластера через удобный UI.

Возможности

  • ✅ Просмотр и управление ресурсами кластера
  • ✅ Мониторинг подов, сервисов, деплойментов
  • ✅ Просмотр логов и событий
  • ✅ Управление конфигурациями и секретами
  • ✅ Интеграция с RBAC

Текущая конфигурация

  • Namespace: tech-dashboard
  • Storage: Не требуется (stateless)
  • Placement: Поды могут размещаться на мастерах и воркерах
  • Resources: 100m-200m CPU, 128Mi-256Mi RAM
  • Kong Gateway: Отключен (будет использоваться глобальный балансировщик)
  • Ingress: Отключен (будет использоваться глобальный балансировщик)
  • Metrics Scraper: Включен (опционально)

Быстрый старт

1. Подготовка нод

Подготовка нод выполняется автоматически через Ansible playbook:

1
cd ../.. && make k8s-prepare-nodes

2. Установка Kubernetes Dashboard

1
make dashboard-install

Это создаст: - Namespace tech-dashboard - Kubernetes Dashboard deployment через Helm chart - Service для доступа к Dashboard

3. Создание токена для доступа

1
make dashboard-create-token

Команда создаст ServiceAccount dashboard-admin с правами cluster-admin и выведет токен для входа.

4. Доступ к Dashboard

Вариант A: через port-forward

1
make dashboard-port-forward

Затем откройте в браузере: https://localhost:8443

Вариант B: через kubectl proxy

1
kubectl proxy

Затем откройте в браузере:

1
http://localhost:8001/api/v1/namespaces/tech-dashboard/services/https:kubernetes-dashboard:/proxy/

5. Вход в Dashboard

  1. Выберите метод аутентификации "Token"
  2. Вставьте токен, полученный из команды make dashboard-create-token
  3. Нажмите "Sign in"

Архитектура

Компоненты

Компонент Namespace Расположение Описание
Dashboard Web tech-dashboard Любые ноды Веб-интерфейс Dashboard
Dashboard API tech-dashboard Любые ноды API сервер Dashboard
Dashboard Auth tech-dashboard Любые ноды Сервис аутентификации
Metrics Scraper tech-dashboard Любые ноды Сбор метрик (опционально)
Kong Gateway - - Отключен (не используется)

Схема подключений

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
┌─────────────────────────────────────┐
│  tech-dashboard                     │
├─────────────────────────────────────┤
│  kubernetes-dashboard-web (Pod)     │
│  ├── Dashboard Web UI               │
│  └── Service: 8000/TCP              │
│                                      │
│  kubernetes-dashboard-api (Pod)     │
│  ├── Dashboard API                  │
│  └── Service: 8000/TCP              │
│                                      │
│  kubernetes-dashboard-auth (Pod)    │
│  ├── Authentication Service         │
│  └── Service: 8000/TCP              │
│                                      │
│  dashboard-metrics-scraper (Pod)    │
│  ├── Metrics Scraper                │
│  └── Service: 8000/TCP              │
│                                      │
│  Note: Kong Gateway отключен        │
│  Доступ напрямую к компонентам      │
└─────────────────────────────────────┘

Команды

Управление

1
2
3
4
5
6
7
8
make dashboard-help              # Справка по Dashboard командам
make dashboard-add-repo          # Добавить Helm репозиторий
make dashboard-install          # Установить Kubernetes Dashboard
make dashboard-status            # Статус Dashboard
make dashboard-create-token      # Создать токен для доступа
make dashboard-port-forward      # Port-forward к localhost:8443
make dashboard-connect           # Инструкции по подключению
make dashboard-uninstall         # Удалить Dashboard

Конфигурация

Helm Values

Основные настройки в charts/kubernetes-dashboard/values.yaml:

  • Image: kubernetesui/dashboard:v2.7.0 (Dashboard 6.x)
  • Kong Gateway: Отключен (kong.enabled: false) - будет использоваться глобальный балансировщик
  • Resources: 100m-200m CPU, 128Mi-256Mi RAM
  • Services:
  • kubernetes-dashboard-web: 8000/TCP (веб-интерфейс)
  • kubernetes-dashboard-api: 8000/TCP (API)
  • kubernetes-dashboard-auth: 8000/TCP (аутентификация)
  • Tolerations: Разрешено размещение на control-plane нодах
  • Node Selector: Пустой (разрешено размещение везде)
  • Ingress: Отключен (будет использоваться глобальный балансировщик)
  • Metrics Scraper: Включен (опционально, можно отключить для экономии ресурсов)

Создание токена доступа

Вариант A: через Makefile (рекомендуется)

1
make dashboard-create-token

Команда автоматически: 1. Создаст ServiceAccount dashboard-admin в namespace tech-dashboard 2. Создаст ClusterRoleBinding с правами cluster-admin 3. Получит и выведет токен для входа

Вариант B: вручную через kubectl

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
# Создать ServiceAccount
kubectl -n tech-dashboard create serviceaccount dashboard-admin

# Создать ClusterRoleBinding
kubectl create clusterrolebinding dashboard-admin \
  --clusterrole=cluster-admin \
  --serviceaccount=tech-dashboard:dashboard-admin

# Получить токен
kubectl -n tech-dashboard get secret \
  $(kubectl -n tech-dashboard get sa dashboard-admin -o jsonpath='{.secrets[0].name}') \
  -o jsonpath='{.data.token}' | base64 -d

Важно: Токен имеет права cluster-admin. Для production рекомендуется создать более ограниченные права.

Создание ограниченных прав (опционально)

Для production окружения рекомендуется создать более ограниченные права:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
  name: dashboard-readonly
rules:
- apiGroups: [""]
  resources: ["*"]
  verbs: ["get", "list", "watch"]
- apiGroups: ["apps"]
  resources: ["*"]
  verbs: ["get", "list", "watch"]
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
  name: dashboard-readonly
roleRef:
  apiGroup: rbac.authorization.k8s.io
  kind: ClusterRole
  name: dashboard-readonly
subjects:
- kind: ServiceAccount
  name: dashboard-readonly
  namespace: tech-dashboard

Подключение

Service Endpoint

1
2
# Основной веб-интерфейс (Kong отключен)
kubernetes-dashboard-web.tech-dashboard.svc.cluster.local:8000

Kubectl Proxy (Рекомендуется)

Этот метод рекомендуется для избежания ошибок "Http failure during parsing":

1
make dashboard-proxy

Затем откройте в браузере:

1
http://localhost:8001/api/v1/namespaces/tech-dashboard/services/http:kubernetes-dashboard-web:/proxy/

Преимущества: - ✅ Автоматически обрабатывает HTTP сервисы - ✅ Не требует принятия самоподписанных сертификатов - ✅ Избегает ошибок "Http failure during parsing" - ✅ Работает стабильно без Kong Gateway

Port-Forward (Альтернативный метод)

1
make dashboard-port-forward

Затем откройте в браузере: http://localhost:8000

Примечание: - Используется HTTP (не HTTPS), так как Kong отключен - Порт изменен на 8000 (вместо 8443) - Если возникает ошибка, используйте make dashboard-proxy

Доступ через глобальный балансировщик (будущее)

После настройки глобального балансировщика, Dashboard будет доступен через внешний URL. Настройка Ingress будет добавлена позже.

Troubleshooting

Dashboard pod не запускается

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
# Проверить логи
kubectl -n tech-dashboard logs -l k8s-app=kubernetes-dashboard

# Проверить статус пода
kubectl -n tech-dashboard get pods -o wide

# Проверить события
kubectl -n tech-dashboard get events --sort-by='.lastTimestamp'

# Проверить описание пода
kubectl -n tech-dashboard describe pod -l k8s-app=kubernetes-dashboard

Проблемы с токеном

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
# Проверить ServiceAccount
kubectl -n tech-dashboard get sa dashboard-admin

# Проверить ClusterRoleBinding
kubectl get clusterrolebinding dashboard-admin

# Проверить секрет
kubectl -n tech-dashboard get secrets | grep dashboard-admin

# Пересоздать токен
make dashboard-create-token

Сервис "kubernetes-dashboard" не найден

Если вы получаете ошибку services "kubernetes-dashboard" not found:

  1. Проверьте, установлен ли Dashboard:

    1
    make dashboard-status
    

  2. Если Dashboard не установлен, установите его:

    1
    make dashboard-install
    

  3. Проверьте имя сервиса:

    1
    kubectl -n tech-dashboard get svc
    

    В Dashboard 7.x без Kong используется сервис kubernetes-dashboard-web на порту 8000. Команды dashboard-proxy и dashboard-port-forward используют этот сервис.

  4. Если Dashboard установлен, но сервис не найден:

    1
    2
    3
    4
    5
    # Проверить Helm release
    helm list -n tech-dashboard
    
    # Проверить все ресурсы в namespace
    kubectl -n tech-dashboard get all
    

Dashboard не отвечает

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
# Проверить статус Dashboard
make dashboard-status

# Проверить статус сервиса
kubectl -n tech-dashboard get svc

# Проверить endpoints
kubectl -n tech-dashboard get endpoints

# Проверить ресурсы
kubectl -n tech-dashboard top pod

# Проверить limits
kubectl -n tech-dashboard describe pod -l app.kubernetes.io/name=kubernetes-dashboard | grep -A 5 "Limits\|Requests"

Проблемы с доступом через браузер

Если Dashboard не открывается в браузере или возникает ошибка "Http failure during parsing":

  1. Используйте kubectl proxy (рекомендуется):
    1
    make dashboard-proxy
    
    Затем откройте: http://localhost:8001/api/v1/namespaces/tech-dashboard/services/https:kubernetes-dashboard:/proxy/

Этот метод автоматически обрабатывает HTTPS и избегает ошибок парсинга.

  1. Если используете port-forward, проверьте:
    1
    kubectl -n tech-dashboard port-forward svc/kubernetes-dashboard-web 8000:8000
    
  2. Используйте HTTP: http://localhost:8000 (Kong отключен, используется прямой доступ)

  3. Ошибка "Http failure during parsing":

  4. Эта ошибка возникает при попытке доступа через HTTP к HTTPS сервису
  5. Решение: Используйте make dashboard-proxy вместо port-forward
  6. Или убедитесь, что используете https:// (не http://) при port-forward

  7. Проверьте firewall:

    1
    2
    3
    4
    5
    6
    # Windows
    netsh advfirewall firewall show rule name="Port 8443"
    netsh advfirewall firewall show rule name="Port 8001"
    
    # Linux
    sudo ufw status
    

Проблемы с метриками

Если метрики не отображаются:

1
2
3
4
5
6
7
8
# Проверить metrics-scraper pod
kubectl -n tech-dashboard get pods -l k8s-app=dashboard-metrics-scraper

# Проверить логи metrics-scraper
kubectl -n tech-dashboard logs -l k8s-app=dashboard-metrics-scraper

# Проверить, включен ли metrics-server в кластере
kubectl get deployment metrics-server -n kube-system

Если metrics-server не установлен, метрики не будут работать. Это не критично для работы Dashboard.

Проблемы с ресурсами

Если Dashboard потребляет слишком много ресурсов, можно уменьшить лимиты в charts/kubernetes-dashboard/values.yaml:

1
2
3
4
5
6
7
resources:
  limits:
    cpu: 100m
    memory: 128Mi
  requests:
    cpu: 50m
    memory: 64Mi

Или отключить metrics-scraper:

1
2
metricsScraper:
  enabled: false

Безопасность

Рекомендации

  1. Ограничьте права доступа:
  2. Не используйте cluster-admin для всех пользователей
  3. Создайте отдельные ServiceAccount с ограниченными правами для разных ролей

  4. Используйте RBAC:

  5. Создайте отдельные ClusterRole/Role для разных уровней доступа
  6. Используйте принцип наименьших привилегий

  7. Защитите токены:

  8. Храните токены в безопасном месте
  9. Регулярно ротируйте токены
  10. Не коммитьте токены в Git

  11. Используйте HTTPS:

  12. После настройки глобального балансировщика, используйте TLS сертификаты
  13. Не используйте Dashboard через незащищенные соединения

  14. Мониторинг:

  15. Мониторьте доступ к Dashboard
  16. Логируйте все действия пользователей
  17. Настройте алерты на подозрительную активность

Ссылки

  • 📚 Kubernetes Dashboard Documentation
  • 🐳 Kubernetes Dashboard Docker Hub
  • 🔗 Kubernetes Dashboard Helm Chart
  • 📖 Kubernetes Dashboard User Guide

← Назад к главной документации

Меню
Главная Карта документации
0. С чего начать
С чего начать Что это за продукт Для кого он Как устроена документация Быстрые ссылки Как начать разработку Как найти нужный сервис К кому идти по вопросам
1. Продукт
Продукт
2. Домены
Домены Домен: Профиль пользователя Домен: Поиск Домен: Заказы / транзакции Домен: Уведомления Домен: Аналитика Домен: Рекомендации
3. Архитектура
Архитектура Диаграмма: auth микросервисы
4. Инженерия
Инженерия
5. Платформа
Платформа Облако Объектное хранилище CI/CD Секреты и сертификаты Резервное копирование и восстановление
6. Разработка
Разработка Быстрый старт Локальная настройка Карта репозиториев Стандарты кода Git-процесс Стратегия ветвления Руководство по код-ревью Критерии готовности Процесс релиза Флаги фич FAQ разработчика Миграция secure auth
7. Эксплуатация
Эксплуатация Дежурство Управление инцидентами Уровни критичности Политика эскалации Постмортемы Ранбуки Управление изменениями Непрерывность бизнеса
8. Аналитика
Аналитика План трекинга событий Определения KPI Каталог дашбордов Словарь метрик Эксперименты Стандарты отчётности
9. Управление
Управление Решения (ADR) Политика статуса контента Changelog обновлений документации

На странице

Оглавление Описание Возможности Текущая конфигурация Быстрый старт 1. Подготовка нод 2. Установка Kubernetes Dashboard 3. Создание токена для доступа 4. Доступ к Dashboard 5. Вход в Dashboard Архитектура Компоненты Схема подключений Команды Управление Конфигурация Helm Values Создание токена доступа Создание ограниченных прав (опционально) Подключение Service Endpoint Kubectl Proxy (Рекомендуется) Port-Forward (Альтернативный метод) Доступ через глобальный балансировщик (будущее) Troubleshooting Dashboard pod не запускается Проблемы с токеном Сервис "kubernetes-dashboard" не найден Dashboard не отвечает Проблемы с доступом через браузер Проблемы с метриками Проблемы с ресурсами Безопасность Рекомендации Ссылки