下面将cluster01和cluster02这两个成员集群注册至KubeFed,需要先下载和安装kubefedctl CLI。

$ curl -LO https://github.com/kubernetes-sigs/kubefed/releases/download/v0.5.0/kubefedctl-0.5.0-linux-amd64.tgz
$ tar -zxvf kubefedctl-*.tgz
$ chmod +x kubefedctl
$ mv kubefedctl /usr/local/bin/

在使用kubefedctl join命令接入新集群之前,需要将cluster01和cluster02集群信息配置在本地kubeconfig文件中。使用Kubernetes原生的kubectl config命令配置kubeconfig文件。

设置KUBECONFIG环境变量并查看cluster01和cluster02的context信息。

$export KUBECONFIG=/root/.kube/config_all
$ kubectl config get-contexts
CURRENT   NAME        CLUSTER     AUTHINFO          NAMESPACE
*         cluster01   cluster01   cluster01-admin
          cluster02   cluster02   cluster02-admin

使用kubefedctl join命令依次将context为cluster01和cluster02的集群注册至KubeFed。

$ kubefedctl join cluster01 --cluster-context=cluster01 --host-cluster-context cluster01 --v=2
$ kubefedctl join cluster02 --cluster-context=cluster02 --host-cluster-context cluster01 --v=2

在kube-federation-system命名空间下可以查看注册成功的成员集群及状态。

$ kubectl -n kube-federation-system get kubefedclusters
NAME        AGE   READY
cluster01   94s   True
cluster02   21s   True

如果想从集群联邦中移除某个成员集群,可以使用kubefedctl unjoin命令,例如执行如下命令可以从集群联邦中移除cluster02。

$ kubefedctl unjoin cluster02 --cluster-context=cluster02 --host-cluster-  context cluster01 --v=2