132 lines
4.2 KiB
Markdown
132 lines
4.2 KiB
Markdown
# K8s Tool
|
||
|
||
Интерактивное консольное приложение для упрощения работы с kubectl. Предоставляет удобное меню с навигацией стрелками для выполнения рутинных операций с Kubernetes.
|
||
|
||
## Особенности
|
||
|
||
- 🎯 Интерактивное меню с навигацией стрелками
|
||
- 🎨 Красивый вывод с использованием Rich
|
||
- 📦 Управление namespaces, deployments, pods, ConfigMaps
|
||
- 🔄 Быстрый рестарт и масштабирование deployments
|
||
- 📝 Просмотр логов pods
|
||
- 🔍 Просмотр содержимого ConfigMaps
|
||
|
||
## Требования
|
||
|
||
- Python 3.9+
|
||
- Poetry
|
||
- kubectl настроенный для работы с кластером
|
||
- Доступ к Kubernetes кластеру
|
||
|
||
## Установка
|
||
|
||
1. Клонируйте репозиторий:
|
||
```bash
|
||
git clone <repo-url>
|
||
cd k8s-tool
|
||
```
|
||
|
||
2. Установите зависимости с помощью Poetry:
|
||
```bash
|
||
poetry install
|
||
```
|
||
|
||
3. Активируйте виртуальное окружение:
|
||
```bash
|
||
poetry shell
|
||
```
|
||
|
||
4. Установите приложение:
|
||
```bash
|
||
poetry install
|
||
```
|
||
|
||
## Использование
|
||
|
||
Запустите приложение командой:
|
||
```bash
|
||
k8s-tool
|
||
```
|
||
|
||
Или через Poetry:
|
||
```bash
|
||
poetry run k8s-tool
|
||
```
|
||
|
||
### Основные функции
|
||
|
||
#### Выбор Namespace
|
||
Выберите namespace для работы. Все последующие операции будут выполняться в выбранном namespace.
|
||
|
||
#### Список Deployments
|
||
Отображает все deployments в текущем namespace с информацией о:
|
||
- Имени deployment
|
||
- Количестве реплик
|
||
- Доступных репликах
|
||
- Готовых репликах
|
||
|
||
Можно также просмотреть список pods для конкретного deployment.
|
||
|
||
#### Рестарт Deployment
|
||
Перезапускает выбранный deployment путём обновления аннотации `kubectl.kubernetes.io/restartedAt`.
|
||
|
||
#### Масштабирование Deployment
|
||
Изменяет количество реплик deployment. Введите желаемое количество реплик, и приложение выполнит масштабирование.
|
||
|
||
#### Просмотр ConfigMaps
|
||
Отображает список всех ConfigMaps в namespace с:
|
||
- Именем ConfigMap
|
||
- Списком ключей данных
|
||
- Возрастом ConfigMap
|
||
|
||
Можно выбрать ConfigMap для просмотра его содержимого с подсветкой синтаксиса.
|
||
|
||
#### Просмотр логов Pod
|
||
Выберите pod и контейнер (если их несколько) для просмотра логов. Можно указать количество строк для отображения (по умолчанию 100).
|
||
|
||
## Навигация
|
||
|
||
- Используйте стрелки ↑/↓ для перемещения по меню
|
||
- Enter для выбора опции
|
||
- Ctrl+C для выхода из приложения
|
||
|
||
## Архитектура
|
||
|
||
Проект состоит из двух основных модулей:
|
||
|
||
- `k8s_client.py` - обёртка над Kubernetes Python API для работы с кластером
|
||
- `main.py` - главное приложение с интерактивным меню
|
||
|
||
### Технологии
|
||
|
||
- **questionary** - интерактивные промпты с навигацией стрелками
|
||
- **kubernetes** - Python client для Kubernetes API
|
||
- **rich** - красивый вывод в терминале с таблицами и подсветкой синтаксиса
|
||
|
||
## Разработка
|
||
|
||
Для разработки:
|
||
|
||
1. Установите зависимости:
|
||
```bash
|
||
poetry install
|
||
```
|
||
|
||
2. Активируйте виртуальное окружение:
|
||
```bash
|
||
poetry shell
|
||
```
|
||
|
||
3. Запустите приложение:
|
||
```bash
|
||
python -m k8s_tool.main
|
||
```
|
||
|
||
## Лицензия
|
||
|
||
MIT
|
||
|
||
## Автор
|
||
|
||
vy.boyko
|