k8s-tool/README.md
2025-10-25 21:11:59 +03:00

5.3 KiB
Raw Blame History

K8s Tool

Интерактивное консольное приложение для упрощения работы с kubectl. Предоставляет удобное меню с навигацией стрелками для выполнения рутинных операций с Kubernetes.

Особенности

  • 🎯 Интерактивное меню с навигацией стрелками
  • Избранные namespaces для быстрого доступа
  • 🎨 Красивый вывод с использованием Rich
  • 📦 Управление namespaces, deployments, pods, ConfigMaps
  • 🔄 Быстрый рестарт и масштабирование deployments
  • 📝 Просмотр логов pods
  • 🔍 Просмотр содержимого ConfigMaps
  • 💾 Сохранение настроек в ~/.config/k8s-tool/k8s-tool.cfg

Требования

  • Python 3.9+
  • Poetry
  • kubectl настроенный для работы с кластером
  • Доступ к Kubernetes кластеру

Установка

  1. Клонируйте репозиторий:
git clone <repo-url>
cd k8s-tool
  1. Установите зависимости с помощью Poetry:
poetry install
  1. Активируйте виртуальное окружение:
poetry shell
  1. Установите приложение:
poetry install

Использование

Запустите приложение командой:

k8s-tool

Или через Poetry:

poetry run k8s-tool

Основные функции

Выбор Namespace

Выберите namespace для работы. Все последующие операции будут выполняться в выбранном namespace.

Избранные namespaces отображаются в начале списка с пометкой для быстрого доступа. Список избранных сохраняется между запусками приложения.

Управление избранными

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

  • Добавить/удалить текущий namespace в/из избранного
  • Просмотр всех избранных namespaces
  • Добавление любого namespace в избранное из полного списка
  • Удаление namespace из избранного
  • Очистка всех избранных

Конфигурация сохраняется в файле ~/.config/k8s-tool/k8s-tool.cfg.

Список 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 для работы с кластером
  • config.py - менеджер конфигурации для управления избранными namespaces
  • main.py - главное приложение с интерактивным меню

Технологии

  • questionary - интерактивные промпты с навигацией стрелками
  • kubernetes - Python client для Kubernetes API
  • rich - красивый вывод в терминале с таблицами и подсветкой синтаксиса

Разработка

Для разработки:

  1. Установите зависимости:
poetry install
  1. Активируйте виртуальное окружение:
poetry shell
  1. Запустите приложение:
python -m k8s_tool.main

Лицензия

MIT

Автор

vy.boyko