Комментарии 16
Чем kubectx не подошел?
Я после того, как случайно забыл переключить контекст, теперь всегда добавляю ключ --context к kubectl. Да, возможно, громоздко, но в большинстве случаев помогает контролировать, что команда выполнится там, где надо. Ну а в плане экономии времени для разных манипуляций с ресурсами очень выручает OpenLens.
Попробуйте kubie https://github.com/sbstp/kubie
Почему бы не проще:
#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 и переключать контексты оказалось намного проще, чем подменять конфиги. Я потратил немного времени на то, чтобы разобраться в устройстве конфига и собрать один конфиг из нескольких. Единственная мысль появилась, что было бы хорошо иметь возможность из нескольких конфигов собрать один автоматизированно. Я ещё не искал, решена ли эта задача, но она требуется очень уж нечасто
Может когда кластеров много (8+) и иногда создаешь тестовые. Создал файл, потом удалил.
По своему опыту добавлю, что вместо привычки все время проверять контекст куба любым алиасом/плагином перед выполнением kubectl команды, сильно лучше помогает декоратор терминала типа powerlevel10k с подсвечиванием k8s контекста. Глазами всегда видно где ты находишься.
KubEnv — простое управление конфигами Kubernetes