Устали переключаться между десятками команд kubectl? Забываете синтаксис для просмотра логов? Хотите управлять Kubernetes кластером быстро и красиво? Познакомьтесь с k9s - терминальным UI для Kubernetes, который изменит вашу жизнь.
Что такое k9s?
k9s - это интерактивный терминальный интерфейс для управления Kubernetes кластерами. Представьте себе файловый менеджер Midnight Commander, но для Kubernetes ресурсов. Всё управление кластером в одном окне терминала с горячими клавишами.
Установка
macOS
brew install k9s
Linux (snap)
sudo snap install k9s
Скачать бинарник
# Для Linux AMD64
wget https://github.com/derailed/k9s/releases/latest/download/k9s_Linux_amd64.tar.gz
tar -xzf k9s_Linux_amd64.tar.gz
sudo mv k9s /usr/local/bin/
Проверка
k9s version
Первый запуск
Просто наберите k9s в терминале:
k9s
k9s автоматически использует текущий контекст из ~/.kube/config. Можно указать конкретный:
k9s --context production
Основные возможности
Навигация
:- командная строка (как в vim)/- поиск?- справка по горячим клавишамCtrl+a- показать все namespace0-9- переключение между namespace
Просмотр ресурсов
Наберите в командной строке:
:podsили:po- список подов:svc- сервисы:deploy- деплойменты:ns- namespace:nodes- ноды кластера:events- события
Горячие клавиши для подов
Enter- детальная информацияl- логи подаs- shell в контейнерd- describee- edit yamlCtrl+k- kill pody- yaml манифест
Фильтрация и поиск
/- поиск по текущему видуf- фильтр по labelsCtrl+/- fuzzy поиск
Логи
l- логи пода0- все контейнеры1-9- конкретный контейнерw- wrap/unwrap длинные строкиf- follow режим
Продвинутые фичи
1. Pulses (пульс кластера)
:pulses - показывает общее состояние кластера. Сразу видно проблемные ресурсы.
2. XRay
:xray - сканирование кластера на проблемы с ресурсами, устаревшие API, проблемы с правами.
3. Popeye интеграция
:popeye - запуск линтера для проверки best practices.
4. Benchmarks
:benchmark - проверка кластера на соответствие CIS Kubernetes Benchmark.
5. Port forwarding
На поде нажмите Shift+f - откроется меню port-forward.
Кастомизация
Конфиг файл
k9s хранит настройки в ~/.config/k9s/config.yml:
k9s:
refreshRate: 2
maxConnRetry: 5
enableMouse: false
headless: false
logoless: false
crumbsless: false
readOnly: false
noExitOnCtrlC: false
Алиасы
Создайте ~/.config/k9s/aliases.yml:
aliases:
pp: v1/pods
dp: apps/v1/deployments
Хоткеи
В ~/.config/k9s/hotkeys.yml:
hotKeys:
# Быстрый переход к логам
shift-l:
shortCut: Shift-L
description: Logs
command: logs
Лайфхаки
1. Быстрое переключение контекстов
:ctx - список всех контекстов, Enter для переключения.
2. Мониторинг в реальном времени
:pods + a - авто-обновление списка подов.
3. Массовые операции
Выделите несколько ресурсов пробелом, затем применяйте действия.
4. Экспорт в YAML
y на любом ресурсе сохранит yaml в буфер обмена.
5. Быстрый exec
:pods → выбрать под → s - сразу попадаете в shell.
Реальные кейсы
Дебаг падающего пода
:po- список подов/crash- найти проблемныйd- посмотреть describep- предыдущие логиe- отредактировать если нужно
Быстрая проверка деплоя
:deploy- список деплойментов- Enter на нужном - детали
r- связанные ресурсы (pods, rs, svc)
Очистка namespace
:ns- выбрать namespace:pods- список подовCtrl+d- удалить завершённые
k9s vs альтернативы
vs kubectl
- Не нужно помнить флаги
- Визуальная навигация
- Встроенный поиск
vs Lens
- Работает в терминале
- Легче и быстрее
- Не требует Electron
vs k8s Dashboard
- Не нужен браузер
- Работает через SSH
- Горячие клавиши
Итоги
k9s - это швейцарский нож для работы с Kubernetes. Особенно полезен когда:
- Нужно быстро найти проблему
- Работаете с множеством кластеров
- Любите терминал и горячие клавиши
- Устали от kubectl get pods -n …
Установка занимает минуту, а польза огромная. После недели использования возвращаться к голому kubectl не захочется!