我正在使用联盟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
如何添加加入群集配置?谁能帮我吗?
答案 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 集群上:
获取federated01集群的API端点,例如: https://federated01.example.com/api/
获取 federated01 集群的 api 访问令牌,例如:eyYNCzwS4F57w
在主机集群上:
kubectl config set-credentials kubefed-user1 --token='eyYNCzwS4F57w'
kubectl config set-cluster kubefed-federated01 --server='https://federated01.example.com/api/'
kubectl config set-context federated01 --cluster=kubefed-federated01 --user=kubefed-user1 --namespace=default
kubectl --context federated01 获取节点
如果您会看到集群节点,则意味着您可以将 federated01 集群加入到联合中:
kubefedctl join federated01 --v=2 --host-cluster-context xxxx --kubefed-namespace=yyyy
命名空间 yyyy 是安装 kubefed 的命名空间。 如果官方文档看起来相当复杂,您可以在这个基于最新 KubeFed 版本的 tutorial 中获得更多详细信息。教程介绍了两种集群连接类型和其他一些有助于混合基础架构的细节。