4.2 KiB
K8s Tool
Интерактивное консольное приложение для упрощения работы с kubectl. Предоставляет удобное меню с навигацией стрелками для выполнения рутинных операций с Kubernetes.
Особенности
- 🎯 Интерактивное меню с навигацией стрелками
- 🎨 Красивый вывод с использованием Rich
- 📦 Управление namespaces, deployments, pods, ConfigMaps
- 🔄 Быстрый рестарт и масштабирование deployments
- 📝 Просмотр логов pods
- 🔍 Просмотр содержимого ConfigMaps
Требования
- Python 3.9+
- Poetry
- kubectl настроенный для работы с кластером
- Доступ к Kubernetes кластеру
Установка
- Клонируйте репозиторий:
git clone <repo-url>
cd k8s-tool
- Установите зависимости с помощью Poetry:
poetry install
- Активируйте виртуальное окружение:
poetry shell
- Установите приложение:
poetry install
Использование
Запустите приложение командой:
k8s-tool
Или через Poetry:
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 - красивый вывод в терминале с таблицами и подсветкой синтаксиса
Разработка
Для разработки:
- Установите зависимости:
poetry install
- Активируйте виртуальное окружение:
poetry shell
- Запустите приложение:
python -m k8s_tool.main
Лицензия
MIT
Автор
vy.boyko