Index
Документация по установке и использованию Kubernetes Dashboard в Kubernetes.
Оглавление
Описание
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 | |
2. Установка Kubernetes Dashboard
1 | |
Это создаст:
- Namespace tech-dashboard
- Kubernetes Dashboard deployment через Helm chart
- Service для доступа к Dashboard
3. Создание токена для доступа
1 | |
Команда создаст ServiceAccount dashboard-admin с правами cluster-admin и выведет токен для входа.
4. Доступ к Dashboard
Вариант A: через port-forward
1 | |
Затем откройте в браузере: https://localhost:8443
Вариант B: через kubectl proxy
1 | |
Затем откройте в браузере:
1 | |
5. Вход в Dashboard
- Выберите метод аутентификации "Token"
- Вставьте токен, полученный из команды
make dashboard-create-token - Нажмите "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 | |
Команды
Управление
1 2 3 4 5 6 7 8 | |
Конфигурация
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 | |
Команда автоматически:
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 | |
Важно: Токен имеет права 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 | |
Подключение
Service Endpoint
1 2 | |
Kubectl Proxy (Рекомендуется)
Этот метод рекомендуется для избежания ошибок "Http failure during parsing":
1 | |
Затем откройте в браузере:
1 | |
Преимущества: - ✅ Автоматически обрабатывает HTTP сервисы - ✅ Не требует принятия самоподписанных сертификатов - ✅ Избегает ошибок "Http failure during parsing" - ✅ Работает стабильно без Kong Gateway
Port-Forward (Альтернативный метод)
1 | |
Затем откройте в браузере: 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 | |
Проблемы с токеном
1 2 3 4 5 6 7 8 9 10 11 | |
Сервис "kubernetes-dashboard" не найден
Если вы получаете ошибку services "kubernetes-dashboard" not found:
-
Проверьте, установлен ли Dashboard:
1make dashboard-status -
Если Dashboard не установлен, установите его:
1make dashboard-install -
Проверьте имя сервиса:
1kubectl -n tech-dashboard get svcВ Dashboard 7.x без Kong используется сервис
kubernetes-dashboard-webна порту 8000. Командыdashboard-proxyиdashboard-port-forwardиспользуют этот сервис. -
Если 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 не открывается в браузере или возникает ошибка "Http failure during parsing":
- Используйте kubectl proxy (рекомендуется):
Затем откройте:
1make dashboard-proxyhttp://localhost:8001/api/v1/namespaces/tech-dashboard/services/https:kubernetes-dashboard:/proxy/
Этот метод автоматически обрабатывает HTTPS и избегает ошибок парсинга.
- Если используете port-forward, проверьте:
1kubectl -n tech-dashboard port-forward svc/kubernetes-dashboard-web 8000:8000 -
Используйте HTTP:
http://localhost:8000(Kong отключен, используется прямой доступ) -
Ошибка "Http failure during parsing":
- Эта ошибка возникает при попытке доступа через HTTP к HTTPS сервису
- Решение: Используйте
make dashboard-proxyвместо port-forward -
Или убедитесь, что используете
https://(неhttp://) при port-forward -
Проверьте 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-server не установлен, метрики не будут работать. Это не критично для работы Dashboard.
Проблемы с ресурсами
Если Dashboard потребляет слишком много ресурсов, можно уменьшить лимиты в charts/kubernetes-dashboard/values.yaml:
1 2 3 4 5 6 7 | |
Или отключить metrics-scraper:
1 2 | |
Безопасность
Рекомендации
- Ограничьте права доступа:
- Не используйте
cluster-adminдля всех пользователей -
Создайте отдельные ServiceAccount с ограниченными правами для разных ролей
-
Используйте RBAC:
- Создайте отдельные ClusterRole/Role для разных уровней доступа
-
Используйте принцип наименьших привилегий
-
Защитите токены:
- Храните токены в безопасном месте
- Регулярно ротируйте токены
-
Не коммитьте токены в Git
-
Используйте HTTPS:
- После настройки глобального балансировщика, используйте TLS сертификаты
-
Не используйте Dashboard через незащищенные соединения
-
Мониторинг:
- Мониторьте доступ к Dashboard
- Логируйте все действия пользователей
- Настройте алерты на подозрительную активность
Ссылки
- 📚 Kubernetes Dashboard Documentation
- 🐳 Kubernetes Dashboard Docker Hub
- 🔗 Kubernetes Dashboard Helm Chart
- 📖 Kubernetes Dashboard User Guide