Устали переключаться между десятками команд 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 не захочется!