kubernetes - 使用gcloud和kubectl切换帐户是否有更好的工作流程?

标签 kubernetes google-cloud-platform gcloud kubectl

我有几个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/

相关文章:

node.js - 用于负载均衡器类型服务的 Kubernetes SSL

kubernetes - 在kubernetes中获取多次重启的pod列表

ssl - 如何为 GKE 上的 Kubernetes Ingress 强制使用 SSL

python-3.x - Google Cloud Storage get_blob 调用导致套接字连接失效

google-cloud-platform - 有没有办法在 GCP 部署管理器中设置项目元数据

google-cloud-platform - 如何配置多个 gcloud 项目

azure - Azure kubernetes 上的 PVC 卷安装需要一个多小时

kubernetes - Istio 1.5 cors 不工作 - 对预检请求的响应未通过访问控制检查

google-cloud-platform - 如何使用特定服务帐户在 Dataproc 集群上提交作业?

google-cloud-platform - 需要获取关于实例上次在 gcp 中停止的时间数据