根据目录,让`oc`跟随一个簇

时间:2018-04-27 14:32:29

标签: openshift cluster-computing

我将oc工具用于几个不同的群集。

由于我通常为我查看/修改的任何OpenShift对象保留本地yaml文件,无论是ad hoc还是由于单个群集的某些配置管理方案,我的计算机上为每个群集都有一个单独的目录(其中,转,是git中的coursed版本)。我们称他们为~/clusters/a/~/clusters/b/等。

现在。当我在本地计算机上cd时,oc命令使用全局~/.kube/config来查找我最后登录的群集。或者换句话说,oc根本不关心我所在的目录。

有没有办法让oc存储"本地"配置(即在~/clusters/a/.kube_config或类似的东西),以便当我进入~/clusters/a/目录时,我自动使用该群集而不必明确地使用oc login切换群集?

2 个答案:

答案 0 :(得分:1)

您可以设置KUBECONFIG环境变量,以便为每个群集指定不同的配置目录。您需要将环境变量设置为每个单独的终端会话窗口中的相应目录。

答案 1 :(得分:0)

为了扩展Graham的答案,KUBECONFIG可以指定一个配置文件列表,如果存在多个配置文件将被合并。设置特定值的第一个获胜,如merging rules

中所述

因此,您只需添加current-context的本地配置,例如~/clusters/a/.kube_config可能是

current-context: projecta/192-168-99-100:8443/developer

~/clusters/b/.kube_config

current-context: projectb/192-168-99-101:8443/developer

显然需要使用格式

为您的特定群集调整此值
current-context: <namespace>/<cluster>/<user>

然后使用相对路径和全局配置

设置KUBECONFIG
export KUBECONFIG=./.kube_config:~/.kube/config

请注意,如果./.kube_config不存在,则会被忽略。

current-content将被本地.kube_config中定义的那个覆盖,如果存在的话。{/ p>

我在本地测试了2个minishift集群,它似乎工作正常。尚未测试设置配置时的行为。