使用kops同时使用多个kubernetes群集

使用kops同时使用多个kubernetes群集,kubernetes,cluster-computing,devops,kubectl,kops,Kubernetes,Cluster Computing,Devops,Kubectl,Kops,我正在使用kops在AWS中创建/管理kubernetes群集 我已经创建了一个试点/中间实例来访问所有集群 我注意到,即使我们使用同一个用户创建多个SSH会话,并且如果我将上下文更改为cluster-a,它也会在其他会话中更改为cluster-a 问题是,如果我们想同时管理不同的集群,那么每次都需要切换上下文。如果有两个以上的人在使用该实例,则很难保持上下文切换 问题可能会出现,为什么我们要使用多个集群,问题是有多个并行开发的流和模块,所有这些都要同时进行测试 有没有什么方法可以让我不必切换上

我正在使用kops在AWS中创建/管理kubernetes群集

我已经创建了一个试点/中间实例来访问所有集群

我注意到,即使我们使用同一个用户创建多个SSH会话,并且如果我将上下文更改为cluster-a,它也会在其他会话中更改为cluster-a

问题是,如果我们想同时管理不同的集群,那么每次都需要切换上下文。如果有两个以上的人在使用该实例,则很难保持上下文切换

问题可能会出现,为什么我们要使用多个集群,问题是有多个并行开发的流和模块,所有这些都要同时进行测试

有没有什么方法可以让我不必切换上下文,而kops/kubectl可以自动理解集群上下文

示例:如果我正在从目录-a执行命令,那么它会自动理解集群a.k8s.local。考虑到这一点,任何其他解决方案都是受欢迎的


最后一个解决方案是为所有集群创建单独的试点实例,我试图避免这种情况,因为这些实例没有提供太多价值,只会增加成本

我使用的正是您正在搜索的解决方案:当我位于特定目录中时,我可以管理特定集群

首先,让我解释一下为什么即使在不同的SSH会话上也不能同时在多个集群上工作

当您使用kubectl config-use-context切换当前上下文时,实际上是在修改当前上下文~/.kube/config中的上下文。因此,如果您的团队成员之一正在切换上下文,这也适用于您的其他团队成员,尤其是当他们连接到同一用户时

现在,以下步骤可以帮助您解决此问题:

安装当您位于目录中时,此工具将允许您设置自定义环境变量。 在kubeconfig文件旁边,创建一个.envrc文件:

运行direnv允许 检查KUBECONFIG环境变量echo$KUBECONFIG的内容。它应该类似于/path/to/dir-a/kubeconfig:/home/user/.kube/config 将当前的~/.kube/config拆分到位于不同文件夹中的多个kubeconfig文件中:dir-a/kubeconfig、dir-b/kubeconfig等等。您还可以进入dir-a并使用您的集群名称执行kops导出kubecfg。 使用kubectl配置视图-minify检查当前上下文 转到dir-b并重复步骤2
您还可以在.envrc中设置其他环境变量,以帮助您管理这些不同的群集,可能是不同的kops状态存储。

除了公认的答案之外,最好的解决方案是创建单独的用户来访问单独的群集。这样配置文件就不会相互冲突。
path_add KUBECONFIG kubeconfig