使用多个kubernetes集群在使用KOPS同时

问题描述 投票:0回答:1

我使用KOPS创建/管理AWS kubernetes集群。

我创建了一个飞行员/中间实例来访问所有的集群。

我注意到,即使我们建立多个SSH会话(使用相同的用户),如果我改变上下文的Cluster-A,它就会改变的Cluster-A在其他会话。

问题是,我们需要在每次切换背景下,如果我们要同时管理不同的集群。这是非常难以维护方面有两个以上的人正在使用该实例的切换。

问题可能出现的,我们为什么要使用多个集群,这个事情是有多个数据流和模块并行开发,并全部转到在同一时间测试。

有什么办法,我没有上下文切换和kops / kubectl可以自动理解集群环境?

例如:如果我从directory-a执行命令,则它自动理解集群a.k8s.local。只是在想这一点,任何其他解决方案表示欢迎。

最后的解决方案是为所有的集群,而我试图避免那些情况下不提供更多的价值,只是增加成本创建单独的试点情况。

kubernetes cluster-computing devops kubectl kops
1个回答
2
投票

我使用的正是你所寻找的解决方案:我可以管理一个特定的集群时,我位于特定目录中。

首先,让我解释一下为什么你可以在多个群集在同一时间甚至在不同的SSH会话无法正常工作。

当你做一个kubectl config use-context切换当前情况下,你实际上是在current-context: your-context modifiying ~/.kube/config。所以,如果你的团队成员之一切换的背景下,这也适用于你的团队的其他成员,特别是如果他们连接到同一个用户。

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

  • 安装direnv。当你位于一个目录中该工具将允许用户设置自定义的env瓦尔。
  • 旁边的kubeconfig文件,创建一个.envrc文件: path_add KUBECONFIG kubeconfig
  • 运行direnv allow
  • 检查KUBECONFIG的环境变量(echo $KUBECONFIG)的内容。它应该看起来像/path/to/dir-a/kubeconfig:/home/user/.kube/config
  • 分裂您当前~/.kube/config在位于不同的文件夹中的多个文件kubeconfigdir-a/kubeconfigdir-b/kubeconfig等。您还可以进入DIR-a和做kops export kubecfg your-cluster-name
  • 请与kubectl config view --minify当前上下文
  • 转到dir-b并重复步骤2

你也可以设置其他ENV在.envrc瓦尔,可以帮助你管理这些不同的集群(可能是不同的KOPS状态存储)。

© www.soinside.com 2019 - 2024. All rights reserved.