将集群加入联盟v2之前该如何处理?

时间:2019-04-20 14:08:24

标签: kubernetes federation

我正在使用联盟v2。我安装了联合控制平面,并将主机群集加入了联合。 当我使用以下代码加入第二个集群时

kubefed2 join federated01 --cluster-context federated01 --host-cluster-context xxxx --add-to-registry --v=2

我知道了

I0420 22:05:19.420250   24789 join.go:184] Failed to get joining cluster config: context "federated01" does not exist
F0420 22:05:19.420269   24789 join.go:133] Error: context "federated01" does not exist

如何添加加入群集配置?谁能帮我吗?

2 个答案:

答案 0 :(得分:0)

我假定您必须向联合控制平面提供集群,上下文和身份验证详细信息,才能加入新成员:

  

此外,联合控制平面需要   加入集群以对其进行操作。这些凭证已获得   从本地kubeconfig kubefed连接使用群集名称   指定为在集群中查找集群上下文的参数   本地kubeconfig如果找不到匹配的上下文,则退出   错误。

您也许可以在要加入命令的集群上检查kubeconfig

kubectl config view

接下来,您可以手动将足够的群集信息注入主机群集kubeconfig

kubectl config set-cluster

kubectl config set-context

kubectl config set-credentials

在相关官方documentation中找到有关多群集访问的更多信息。

答案 1 :(得分:0)

很明显,配置文件中没有上下文federated01~/.kube/config。上下文需要将一些其他参数添加到配置中。并且当上下文正确创建后,您将能够从主机建立到集群的连接并将它们加入联盟。

让我们详细看看如何将提到的信息注入配置。 最普遍、最普遍的适用方式是通过 API 端点在集群之间建立连接。

在 federated01 集群上:

  1. 获取federated01集群的API端点,例如: https://federated01.example.com/api/

  2. 获取 federated01 集群的 api 访问令牌,例如:eyYNCzwS4F57w

在主机集群上:

  1. 创建用户,例如kubefed-user1 并将令牌添加到配置文件中:

kubectl config set-credentials kubefed-user1 --token='eyYNCzwS4F57w'

  1. 将集群记录添加到配置并将 API 端点映射到它:

kubectl config set-cluster kubefed-federated01 --server='https://federated01.example.com/api/'

  1. 最后,描述您的案例中遗漏的上下文federated01

kubectl config set-context federated01 --cluster=kubefed-federated01 --user=kubefed-user1 --namespace=default

  1. 检查是否可以从主机集群访问 federated01 集群:

kubectl --context federated01 获取节点

如果您会看到集群节点,则意味着您可以将 federated01 集群加入到联合中:

kubefedctl join federated01 --v=2 --host-cluster-context xxxx --kubefed-namespace=yyyy

命名空间 yyyy 是安装 kubefed 的命名空间。 如果官方文档看起来相当复杂,您可以在这个基于最新 KubeFed 版本的 tutorial 中获得更多详细信息。教程介绍了两种集群连接类型和其他一些有助于混合基础架构的细节。