我有Kubernetes在两个不同的环境中工作得很好,即在我的本地环境(MacBook运行minikube)和谷歌的容器引擎(GCE, Kubernetes在谷歌云上)。我使用MacBook/local环境来开发和测试我的YAML文件,然后,完成后,在GCE上尝试它们。

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

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


当前回答

你可以从本地(minikube)切换到gcloud,然后返回:

kubectl config use-context CONTEXT_NAME

列出所有上下文:

Kubectl配置get-contexts

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

其他回答

如果你正在寻找一个基于gui的Mac解决方案,并且已经安装了Docker桌面,你可以使用Docker菜单栏图标。在这里,你可以找到“Kubernetes”菜单,其中包含了你在kubecconfig中拥有的所有上下文,并且可以轻松地在它们之间切换。

上下文列表

kubectl config get-contexts

上下文切换

kubectl config set current-context MY-CONTEXT

你可以从本地(minikube)切换到gcloud,然后返回:

kubectl config use-context CONTEXT_NAME

列出所有上下文:

Kubectl配置get-contexts

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

是的,我想这就是你要问的问题。要查看当前配置,请使用kubectl配置视图。Kubectl从以下位置加载并合并配置(按顺序)

--kubeconfig=/path/to/.kube/config command line flag
KUBECONFIG=/path/to/.kube/config env variable
$HOME/.kube/config  - The DEFAULT

我使用——kubecconfig,因为我经常在多个集群之间切换。它有点麻烦,但它工作得很好。

更多信息请看这些。 https://kubernetes.io/docs/tasks/administer-cluster/share-configuration/和https://kubernetes.io/docs/concepts/cluster-administration/authenticate-across-clusters-kubeconfig/

我厌倦了一遍又一遍地输入这个,所以我写了一个简单的bash实用程序来切换上下文

你可以在这里找到它https://github.com/josefkorbel/kube-switch