我将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
切换群集?
答案 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集群,它似乎工作正常。尚未测试设置配置时的行为。