Простое использование контекстов kubeconfig

#amazon-web-services #azure #kubernetes #google-cloud-platform

#amazon-веб-службы #azure #kubernetes #google-облачная платформа

Вопрос:

Теперь мне нужно использовать несколько кластеров, в настоящее время я просто поместил все настройки kubeconfig в .kube папку и в любое время обновлял файл конфигурации кластером, который мне нужен, например

mv config cluserone
vi config вставьте новую конфигурацию kubeconfig в config файл и начните работать с новым кластером, скажем, внутри /Users/i033346/.kube У меня есть все файлы kubeconfig один за другим.

есть ли способ использовать их в качестве контекстов без создания нового файла, который содержит их все.

Я также пытаюсь использовать kubectx, однако, когда я использую:

 export KUBECONFIG=/Users/i033346/.kube/trial
  

и

 export KUBECONFIG=/Users/i033346/.kube/prod
  

и используйте kubectx Я всегда получаю последний и не получаю список определенных контекстов, есть идеи?

Ответ №1:

KUBECONFIG env var поддерживает несколько файлов, разделенных запятыми:

 export KUBECONFIG="/Users/i033346/.kube/trial,/Users/i033346/.kube/prod"
  

Этого должно быть достаточно, чтобы увидеть их все kubectx .

Вы даже можете объединить все конфигурации в 1 файл:

 export KUBECONFIG="/Users/i033346/.kube/trial,/Users/i033346/.kube/prod"
kubectl config view --flatten > ~/.kube/config
  

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

1. Спасибо, возможно, я что-то упускаю, как когда я это делал export KUBECONFIG=/Users/i033346/.kube/trial,/Users/i033346/.kube/prod и запускаю после kubectx получения ошибки: W0831 10:42:42.959625 15947 loader.go:223] Config not found: Users/i033346/.kube/trial,Users/i033346/.kube/prod , есть идеи, чего может не хватать?

2. Я могу видеть файлы (пробная версия / prod) в ~/.kube папке

Ответ №2:

В этом сценарии я использовал для создания нескольких псевдонимов, указывающих на разные файлы конфигурации.

например

в вашем .bashrc /.zshrc

отредактировано in your ~/.bashrc or your ~/.zshrc

 alias k-cluster1="kubectl --kubeconfig /my_path/config_cluster1"
alias k-cluster2="kubectl --kubeconfig /my_path/config_cluster2"
  

после загрузки терминала k-cluster1 get pods или k-cluster2 get pods должен работать

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

1. Я использую Mac, я не нахожу этот путь, попробуйте: cd ~/.bashrc/.zshrc ошибка такого файла или каталога отсутствует

2. Извините, я имел в виду файлы ~ /.bashrc или ~ /.zshrc в зависимости от конфигурации вашего терминала, вы можете проверить это для получения дополнительной информации об этих файлах scriptingosx.com/2017/04/about-bash_profile-and-bashrc-on-macos