Kubernetes поставляется в комплекте с выдающимся CLI.
Для основных операций это работает чудесно.
Увы, когда нужно что-то сделать быстро, сложность возрастает.
Сообщество Kubernetes создало все виды веб-инструментов для мониторинга вашего кластера – kube ops, grafana и т. д.
Однако наличие полностью настроенного терминала быстро сократит время, необходимое для поиска причины проблемы.
Это основная часть вашего швейцарского армейского ножа.
Ниже приведен очень короткий список инструментов с открытым исходным кодом, которые можно применить в своем терминале.
При совместном использовании они позволяют управлять кластером kubernetes, быстро устранять неполадки и отслеживать поведение.
Предпосылки
Прежде чем приступить к изучению этих инструментов, я настоятельно рекомендую установить zsh.
Это выдающаяся оболочка с открытым исходным кодом для стандартного терминала OSX.
Он более многофункциональный и интуитивно понятный, а плагины, которые вы можете установить, просто фантастические.
Некоторые из перечисленных инструментов предполагают, что у вас установлен ZSH.
Лучшие инструменты для управления Kubernetes
k9s
Я начинаю с самого мощного.
K9s – это основа CLI для кластера kubernetes.
Вы можете проваливаться по SSH прямо в поды одним нажатием клавиши, просматривать журналы, удалять ресурсы и многое другое.
Он обеспечивает выдающийся доступ к наиболее распространенным операциям, которые вы будете выполнять.
Это основной продукт для любого инженера, использующего kubernetes.
kubectx
Очень редко у нас будет только один кластер.
Переключение между ними можно так же просто осуществлять:
kubectl config use-context my-context
Но при этом есть некоторые предпосылки:
- Вам нужно знать имя кластера, прежде чем запускать команду.
- Есть другая, похожая команда set-context, которая может сбить вас с толку.
kubectx представляет более простую альтернативу этому варианту.
Если вы запустите kubectx самостоятельно, он перечислит все контексты в вашем файле .kube/config.
Затем вы можете указать название интересующего вас контекста:
kubectx my-context
Не нужно запоминать все контексты, не нужно вручную проверять файлы и нет возможности ввести неправильную команду.
Красиво и просто.
В сочетании с K9s, этот набор обеспечивает классную навигацию из вашего CLI с минимальными нажатиями клавиш.
kubens
Как только вы переключаетесь между контекстами, вы можете долго копаться в определенном пространстве имен.
Еще раз, очень часто в вашем кластере имеется несколько пространств имен.
Короче, в двух словах это то же самое, что kubectx, только для пространств имен.
kubens kube-system
Теперь все ваши команды по умолчанию выполняются в пространстве имен системы kube-system.
Вы также можете запустить Kubens без флагов, чтобы увидеть список ваших пространств имен.
kube-ps1
Таким образом, вы можете переключаться между контекстами и пространствами имен.
Но как узнать, на кого вы сейчас нацелены?
Каждый раз постоянно это проверять?
На данный момент, чтобы узнать, вам нужно запустить:
kubens
kubectx
kubectl <my-command>
Чтобы не делать этого, ps1 является плагином zsh, который автоматически покажет вам ваш текущий контекст и пространство имен:
Теперь вы можете увидеть, на какое пространство имен и контекст вы указываете, не выполняя ни одной команды.
Он также очень настраиваемый – вы можете отключить пространство имен или контекст, если вас интересует только что-то одно из них, или вы можете использовать kubeoff, чтобы полностью отключить все это.
popeye
Popeye запускает автоматическое сканирование ресурсов в вашем хранилище и выявляет очевидные проблемы.
Это новый инструмент, который я нашел очень полезным.
Если вы затеяли генеральную уборку в кластере, начните с popeye, и вы получите четкие указания о том, что нужно исправить.
Stern
Вы когда-нибудь использовали логи kubectl?
Заметили, что вы можете следить только за журналами с одного пода одновременно?
Не беспокойтесь больше об этом!
Stern – это инструмент, который позволяет вам извлекать логи из нескольких подов, основываясь на очень гибком запросе.
Источник: https://itisgood.ru/2020/01/22/kak-nastroit-udobnyj-terminal-kubernetes/