如何在gcloud和minikube之间切换kubectl集群

Eri*_*oda 90 kubernetes google-kubernetes-engine minikube

我让Kubernetes在两个不同的环境中运行良好,即在我的本地环境(运行minikube的MacBook)以及Google的Container Engine(GCE,Google Cloud上的Kubernetes).我使用MacBook /本地环境开发和测试我的YAML文件,然后在完成后,在GCE上尝试它们.

目前我需要单独处理每个环境:我需要在本地环境中编辑YAML文件,并在准备好后,(git)将它们克隆到GCE环境,然后使用/部署它们.这是一个有点麻烦的过程.

理想情况下,我想使用Macbook中的kubectl轻松切换本地minikube或GCE Kubernetes环境,并轻松确定YAML文件的使用位置.有没有一种简单的方法来切换上下文来做到这一点?

Mar*_*ark 177

您可以从本地(minikube)切换到gcloud并返回:

kubectl config use-context CONTEXT_NAME

列出所有上下文:

kubectl config get-contexts

您可以为local和gcloud创建不同的环境,并将其放在单独的yaml文件中.

  • 如何将其添加到您的kubectl上下文中?有gcloud命令来执行此操作吗?找到了:$ gcloud容器群集get-credentials $ CLUSTER_NAME (3认同)
  • 上面没有向我显示原始上下文,但 `grep 'name:' ~/.kube/config` 却显示了。它是“minikube”,所以我可以使用“kubectl config use-context minikube”切换回它 (2认同)

Ser*_*nko 60

列出上下文

kubectl config get-contexts
Run Code Online (Sandbox Code Playgroud)

切换上下文

kubectl config set current-context MY-CONTEXT
Run Code Online (Sandbox Code Playgroud)


小智 7

获取所有上下文

C:\Users\arun>kubectl config get-contexts
Run Code Online (Sandbox Code Playgroud)

获取当前上下文

C:\Users\arun>kubectl config current-context
Run Code Online (Sandbox Code Playgroud)

切换上下文

C:\Users\arun>kubectl config use-context <any context name from above list>
Run Code Online (Sandbox Code Playgroud)


小智 5

如果您正在寻找适用于Mac的基于GUI的解决方案并安装了Docker Desktop,则可以使用Docker Menu Bar图标。在这里,您可以找到“ kubernetes”菜单,其中包含您在kubeconfig中拥有的所有上下文,并可以在它们之间轻松切换。

  • 我认为它完美地回答了这个问题。 (2认同)

Tay*_*ton 5

标准的kubectl命令的更快快捷方式是使用kubectx

  • 列出上下文: kubectx
    • 相当于 kubectl config get-contexts
  • 切换上下文(至foo): kubectx foo
    • 相当于 kubectl config use-context foo

要在macOS上安装: brew install kubectx

kubectx软件包还包括一个类似的工具,用于切换命名空间kubens

如果您定期在多个上下文和名称空间中工作,那么这两个超级方便。

更多信息:https//ahmet.im/blog/kubectx/


Swa*_*uru 5

2020 年最新答案在这里,

在 kubectl 上下文之间切换的简单方法,

kubectl top nodes **--context=**context01name

kubectl top nodes --context=context02name
Run Code Online (Sandbox Code Playgroud)

您还可以将上下文名称存储为 env,如 context01name=gke_${GOOGLE_CLOUD_PROJECT}_us-central1-a_standard-cluster-1