Есть ли лучший рабочий процесс для переключения учетных записей с gcloud и kubectl? - PullRequest
1 голос
/ 10 февраля 2020

У меня есть несколько аккаунтов gcloud и, следовательно, разные контексты kubernetes.

Я часто переключаюсь между ними, используя:

$ gcloud config configurations activate ACCOUNT
$ kubectl config set-context CONTEXT

или альтернативно

$ gcloud config configurations activate ACCOUNT
$ kubectx CONTEXT

(для kubectx см https://github.com/ahmetb/kubectx)

Это похоже на много печатать. Также кажется, что если вы переключаете учетные записи gcloud, он может интуитивно переключать контексты (каждый контекстный контекст k8s сопоставляется с учетной записью gcloud).

Мне любопытно увидеть рабочие процессы других людей. Или есть более эффективный или обычный рабочий процесс?


Причина, по которой мне нужно переключить учетную запись и контекст, заключается в том, что каждая учетная запись gcloud имеет отдельный адрес электронной почты. Поэтому я получу эту ошибку, если не переключу оба:

$ kubectl get pods          
Error from server (Forbidden): pods is forbidden: User 
"myemail@email.com" cannot list resource "pods" in API group "" in 
the namespace "default": Required "container.pods.list" permission.

Может быть, есть способ настроить gcloud, чтобы разрешить обоим пользователям в каждой учетной записи? В противном случае мне пришлось бы переключать как учетную запись, так и контексты.

1 Ответ

2 голосов
/ 10 февраля 2020

Полагаю, самый быстрый способ переключения - это создание псевдонимов в вашем файле ~ / .bashr c или ~ / .zshr c:

alias k8s.acct1="gcloud config configurations activate acct1; kubectx context1"
alias k8s.acct2="gcloud config configurations activate acct2; kubectx context2"

Еще одна отличная альтернатива - установить KUBECONFIG. Переменная окружения в каждом окне консоли (и вы даже можете создать ярлыки псевдонимов, чтобы быстро настроить это для каждого сеанса).

Итак, в одном окне консоли вы запускаете:

export KUBECONFIG=~/acct1-kubeconfig

, а в другом окне запускаете:

export KUBECONFIG=~/acct2-kubeconfig

И затем, предположим, у вас есть кластер OpenShift, вы делаете то же самое:

export KUBECONFIG=~/os-kubeconfig

Каждый сеанс консоли затем имеет доступ kubectl к каждой соответствующей учетной записи и кластеру.

...