Как стать автором
Обновить

Комментарии 16

Тем, что я про него не знал и не нагуглил( Сейчас попробовал, он работает в рамках одного конфига, в принципе, можно слить все конфиги в один и переключаться между контекстами, но пока подход с файлами мне кажется более удобным, так как нет необходимости лезть в сам конфиг

Тем, что перезаписывает файлы, и одному юзеру на одной машине не получится одновременно рулить разными кластерами. Kubech в этом смысле много лучше. И гигантский конфиг готовить не нужно, он умеет кушать из отдельных файлов.

Я после того, как случайно забыл переключить контекст, теперь всегда добавляю ключ --context к kubectl. Да, возможно, громоздко, но в большинстве случаев помогает контролировать, что команда выполнится там, где надо. Ну а в плане экономии времени для разных манипуляций с ресурсами очень выручает OpenLens.

Еще есть вариант ставить название кластера в приглашение, можно даже в теории менять цвет prod кластеров.

Почему бы не проще:

#cat ~/.bash_profile
alias kkdev="kubectl --kubeconfig /Users/admin/.kube/config.dev "
alias kkstage="kubectl --kubeconfig /Users/admin/.kube/config.stage "
alias kkprod="kubectl --kubeconfig /Users/admin/.kube/config.prod "

раз уж все равно используете k9s, то в нем можно делать:ctx

Что только люди не делают, лишь бы не

kubectl config use-context dev

Кстати,

export KUBECONFIG=/path/to/kubecfg1:/path/to/kubecfg2

Тоже работает.

Даже если не брать во внимание kubectx, то переключение между конфигами можно забить в алиасы. Я пользовался и тем, и другим. Не вижу, чтобы было дольше создать конфиг руками, закинуть в алиас контекст и вызывать нужный лёгким движением руки.

Да, список не под рукой, но у меня блок алиасов для k8s в .bashrc вынесен отдельно, поэтому grep'ом удобно посмотреть. (При желании и это тоже можно запихать в алиас, некоторые коллеги так и делают).

@Ryder95 Спасибо за статью!

В моём случае также несколько кластеров, но при этом настройки подключения ко всем хранятся в одном ~/.kube/config. Переключение: kubectl config use-context development.
Упомянутый выше https://github.com/ahmetb/kubectx делает то же самое, просто меньше набирать текста. Алиасы (в моём случае - функции для PowerShell в файле profile.ps1) тоже решают эту же задачу.

А какую задачу решает несколько файлов kubeconfig?

Сходу вижу недостаток этого: большинство инструментов для работы с k8s считают, что файл ~/.kube/config - один, и не поддерживают коллекцию. А какие плюсы (иметь несколько файлов по сравнению с одним стандартным)?

На самом деле после использования программы я увидел проблему, как минимум я пользуюсь k9s и переключать контексты оказалось намного проще, чем подменять конфиги. Я потратил немного времени на то, чтобы разобраться в устройстве конфига и собрать один конфиг из нескольких. Единственная мысль появилась, что было бы хорошо иметь возможность из нескольких конфигов собрать один автоматизированно. Я ещё не искал, решена ли эта задача, но она требуется очень уж нечасто

Вроде как не нужно, можно KUBECONFIG задать со списком.
Кстати, меняя KUBECONFIG можно легко переключаться между конфигами тоже

Может когда кластеров много (8+) и иногда создаешь тестовые. Создал файл, потом удалил.

По своему опыту добавлю, что вместо привычки все время проверять контекст куба любым алиасом/плагином перед выполнением kubectl команды, сильно лучше помогает декоратор терминала типа powerlevel10k с подсвечиванием k8s контекста. Глазами всегда видно где ты находишься.

Я вначале поставил такое что-то скопировав у коллеги, но скептически. А теперь очень помогает, сразу видно в каком окне терминала какой

Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации

Истории