我有几个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以允许每个帐户中的两个用户都使用?
否则,我将不得不同时切换帐户和上下文。
最佳答案
我想切换的最快方法是在〜/ .bashrc或〜/ .zshrc文件中创建别名:
alias k8s.acct1="gcloud config configurations activate acct1; kubectx context1"
alias k8s.acct2="gcloud config configurations activate acct2; kubectx context2"
另一个非常好的选择是在每个控制台窗口中设置KUBECONFIG环境变量(您甚至可以构建别名快捷方式来为每个 session 快速设置此变量)。
因此,在一个控制台窗口中运行:
export KUBECONFIG=~/acct1-kubeconfig
然后在另一个窗口中运行:
export KUBECONFIG=~/acct2-kubeconfig
然后假设您有一个OpenShift集群,您可以执行以下操作:
export KUBECONFIG=~/os-kubeconfig
这样,每个控制台 session 都可以对每个帐户和群集进行kubectl访问。
关于kubernetes - 使用gcloud和kubectl切换帐户是否有更好的工作流程?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60156757/