Как настроить удобный терминал Kubernetes

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/



2022-08-07T23:52:21
DevOps