docs(README): ввод о назначении проекта и краткий технический блок

This commit is contained in:
Sergey Antropoff
2026-04-05 01:22:28 +03:00
parent c49555b3b9
commit f552a517f0

View File

@@ -1,6 +1,8 @@
# Kind Clusters Dashboard — локальные кластеры Kubernetes (kind) # Kind Clusters Dashboard — локальные кластеры Kubernetes (kind)
Образ **kind-k8s-tools:local** и **Makefile** поднимают **веб-интерфейс** (FastAPI) на порту **8080** на хосте по умолчанию (или **`KIND_K8S_WEB_PORT`** в `.env`; внутри контейнера приложение слушает **6000**). Порт **6000 на хосте** не используем по умолчанию: Chrome и другие браузеры на Chromium отдают **ERR_UNSAFE_PORT**. Через браузер создаёте и удаляете кластеры, смотрите статистику и вывод `kubectl`. **kubeconfig** сохраняется в `clusters/<имя>/`. На хосте достаточно **Docker** (или Podman) и **make**; **kind** и **kubectl** — внутри контейнера. Проект сделан для тех, кому нужен **локальный Kubernetes без облака и без ручной возни в терминале**: **kind** остаётся движком, а поверх него — **единая панель в браузере** и **REST API**. В одном месте можно **создавать и удалять кластеры**, смотреть **узлы и поды**, ставить типовые вещи через **Helm** (ingress, мониторинг, metrics-server и др.), вести **журнал операций** и скачивать **kubeconfig** для работы с кластером с хоста или из других контейнеров. Удобно для **обучения DevOps/Kubernetes**, **быстрой проверки манифестов и Helm-чартов**, **демо** и **песочниц**, когда не хочется поднимать управляемый кластер и платить за API control plane.
Технически панель — это **FastAPI** в Docker-образе **`kind-k8s-tools:local`**, запуск через **`Makefile`** и **Compose** (**Docker** или **Podman**). На хосте по умолчанию интерфейс открывается на порту **8080** (переменная **`KIND_K8S_WEB_PORT`** в **`.env`**); **внутри контейнера** приложение слушает **6000**. Порт **6000 наружу по умолчанию не пробрасываем**: в Chrome и других браузерах на Chromium он считается небезопасным (**ERR_UNSAFE_PORT**). **kind**, **kubectl** и **Helm** ставятся в образ — на машине достаточно контейнерной среды и **make**. Данные кластеров и **kubeconfig** лежат на хосте в **`clusters/<имя>/`**.
## Документация ## Документация
@@ -22,7 +24,7 @@
## Зачем это нужно ## Зачем это нужно
- Быстро получить Kubernetes без облака (интеграционные тесты, манифесты, обучение). - Быстро получить Kubernetes **локально** (интеграционные тесты, манифесты, обучение) — см. ввод о назначении проекта выше.
- Версия кластера и число worker-нод задаются **в веб-UI** (или через REST API / скрипты в контейнере). - Версия кластера и число worker-нод задаются **в веб-UI** (или через REST API / скрипты в контейнере).
- Количество кластеров **не ограничено** кодом (ограничения — ресурсы хоста и Docker). - Количество кластеров **не ограничено** кодом (ограничения — ресурсы хоста и Docker).
- Артефакты на хосте: `clusters/<имя>/` — том для `kubeconfig` (доступен в контейнере как `/work/clusters/<имя>/`). - Артефакты на хосте: `clusters/<имя>/` — том для `kubeconfig` (доступен в контейнере как `/work/clusters/<имя>/`).