Kubernetes在Windows上使用KUBECONFIG变量访问多个集群

时间:2020-01-02 15:40:18

标签: kubernetes

我是kubernetes集群的新手,因此这可能是一个简单的问题。因此,我在本地计算机上安装了minikube,它在$ HOME / .kube / config中创建了一个配置文件。当我在Power Shell上运行 kubectl config view 命令时,我可以查看凭据。我已经设置了KUBECONFIG env变量,路径为$HOME/.kube/config.

所以问题是,在我们公司中,我们有一个本地kubernetes集群,每个集群有2个不同的kubeconfig文件。 (一个用于生产的第一阶段)。将这些kubeconfig文件定义为访问这些集群的env变量的最佳方法是什么?

我尝试将这些文件放入$HOME/.kube目录中,目前有三个文件,例如 config,c1.kubeconfig,c2.kubeconfig 然后更新了我的环境变量喜欢 $HOME/.kube/config:$HOME/.kube/c1.kubeconfig:$HOME/.kube/c2.kubeconfig。但是通过这种方式,我无法访问c1或c2集群。

2 个答案:

答案 0 :(得分:2)

使用KUBECONFIG环境变量时,只能将其指向一个kubeconfig文件,而不能指向一系列kubeconfig文件。您需要将所有单个kubeconfig文件合并到一个kubeconfig文件中,并将其存储为$ HOME / .kube / config,然后使用kubectl的上下文标志选择一个集群。

cp $HOME/.kube/config $HOME/.kube/config.backup.$(date +%Y-%m-%d.%H:%M:%S)
KUBECONFIG=$HOME/.kube/config:file2:file3 kubectl config view --merge --flatten > \
~/.kube/merged_kubeconfig && mv ~/.kube/merged_kubeconfig ~/.kube/config
kubectl get pods --context=cluster-1
kubectl get pods --context=cluster-2

official docs here

答案 1 :(得分:0)

还探索kubectxwin强大的工具,以便在Windows上更好更快地进行上下文切换

Git链接,如下所示

https://github.com/thomasliddledba/kubectxwin

(这是功能强大的工具kubectx https://github.com/ahmetb/kubectx#installation的Windows版本)

从此link

下载Exe

在Power shell中使用

PS C:\Users\DT> .\kubectxwin.exe ls
* kubernetes-admin@kubernetes

PS C:\Users\DT> .\kubectxwin.exe set kubernetes-admin@kubernetes
Switched to context "kubernetes-admin@kubernetes".

示例:使用实用程序重命名上下文

PS C:\Users\DT> .\kubectxwin.exe rn kubernetes-admin@kubernetes kubeadmin
Context "kubernetes-admin@kubernetes" renamed to "kubeadmin".

PS C:\Users\DT> .\kubectxwin.exe ls
* kubeadmin

相关问题