我是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集群。
答案 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
答案 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