文章目录
- 一、设置主集群
- 方式一:使用 Web 控制台
- 方式二:使用 Kubectl命令
- 二、在主集群中设置代理服务地址
- 方式一:使用 Web 控制台
- 方式二:使用 Kubectl命令
- 三、登录控制台验证
- 四、准备成员集群
- 方式一:使用 Web 控制台
- 方式二:使用 Kubectl命令
- 五、导入成员集群
- 六、参考资料
一、设置主集群
如果已经安装了独立的 KubeSphere 集群,可以编辑集群配置,将 clusterRole 的值设置为 host。
方式一:使用 Web 控制台
使用 admin 帐户登录控制台,然后进入集群管理页面上的定制资源定义,输入关键字 ClusterConfiguration,然后转到其详情页面。编辑 ks-installer 的 YAML 文件。
方式二:使用 Kubectl命令
kubectl edit cc ks-installer -n kubesphere-system
multicluster:clusterRole: hosthostClusterName: kubesphere-master
PS:
hostClusterName: kubesphere-master集群名称需要跟主机名保存一致!!!

[root@kubesphere-master ~]# kubectl edit cc ks-installer -n kubesphere-system
clusterconfiguration.installer.kubesphere.io/ks-installer edited
在 kubectl 中执行以下命令查看安装过程:
kubectl logs -n kubesphere-system $(kubectl get pod -n kubesphere-system -l 'app in (ks-install, ks-installer)' -o jsonpath='{.items[0].metadata.name}') -f

二、在主集群中设置代理服务地址
- 执行以下命令来检查服务。
kubectl -n kubesphere-system get svc
[root@kubesphere-master ~]# kubectl -n kubesphere-system get svc
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
ks-apiserver ClusterIP 10.233.57.31 <none> 80/TCP 126m
ks-console NodePort 10.233.47.149 <none> 80:30880/TCP 126m
ks-controller-manager ClusterIP 10.233.42.244 <none> 443/TCP 126m
minio ClusterIP 10.233.16.144 <none> 9000/TCP 78m
tower LoadBalancer 10.233.7.51 <pending> 8080:31899/TCP 4m10s
由于 EXTERNAL-IP 处于 pending 状态,需要手动设置代理地址。例如,如果公有 IP 地址为 139.198.120.120,则需要将公网 IP 的端口,如30721 转发到 NodeIP:NodePort。
将 proxyPublishAddress 的值添加到 ks-installer 的配置文件中,并按如下所示输入公有 IP 地址(此处示例 139.198.120.120)和端口号。
方式一:使用 Web 控制台
使用 admin 帐户登录控制台,然后进入集群管理页面上的定制资源定义,输入关键字 ClusterConfiguration,然后转到其详情页面。编辑 ks-installer 的 YAML 文件。
方式二:使用 Kubectl命令
[root@kubesphere-master ~]# kubectl -n kubesphere-system edit clusterconfiguration ks-installer
clusterconfiguration.installer.kubesphere.io/ks-installer edited

在 kubectl 中执行以下命令查看安装过程:
kubectl logs -n kubesphere-system $(kubectl get pod -n kubesphere-system -l 'app in (ks-install, ks-installer)' -o jsonpath='{.items[0].metadata.name}') -f

三、登录控制台验证
发现,此时该KubeSphere集群已成为主集群。


四、准备成员集群
为了通过主集群管理成员集群,需要使它们之间的 jwtSecret 相同。因此,首先需要在主集群中执行以下命令来获取它。
kubectl -n kubesphere-system get cm kubesphere-config -o yaml | grep -v "apiVersion" | grep jwtSecret
命令输出结果如下所示:
jwtSecret: "93ObvPBzq1F1EEUZEydp6eJK8Cn0TqeZ"
如果已经安装了独立的 KubeSphere 集群,可以编辑集群配置,将 clusterRole 的值设置为 member。
方式一:使用 Web 控制台
使用 admin 帐户登录控制台,然后进入集群管理页面上的定制资源定义,输入关键字 ClusterConfiguration,然后转到其详情页面。编辑 ks-installer 的 YAML 文件。
方式二:使用 Kubectl命令
kubectl edit cc ks-installer -n kubesphere-system
- 在
ks-installer的 YAML 文件中对应输入上面所示的jwtSecret:
authentication:jwtSecret: 93ObvPBzq1F1EEUZEydp6eJK8Cn0TqeZ

- 向下滚动并将
clusterRole的值设置为member,然后点击确定(如果使用 Web 控制台)使其生效:
multicluster:clusterRole: member

按:wq保存退出。
kubectl edit cc ks-installer -n kubesphere-system
clusterconfiguration.installer.kubesphere.io/ks-installer edited
在 kubectl 中执行以下命令查看安装过程:
kubectl logs -n kubesphere-system $(kubectl get pod -n kubesphere-system -l 'app in (ks-install, ks-installer)' -o jsonpath='{.items[0].metadata.name}') -f
使用 kubectl 来获取安装日志以验证状态。运行以下命令,稍等片刻,如果成员集群已准备就绪,将看到成功的日志返回。

五、导入成员集群
以
admin身份登录 KubeSphere 控制台,转到集群管理页面点击添加集群。


在导入集群页面输入要导入的集群的基本信息。您也可以点击右上角的编辑模式以 YAML 格式查看并编辑基本信息。编辑完成后,点击下一步。
apiVersion: cluster.kubesphere.io/v1alpha1
kind: Cluster
spec:provider: Amazon EKSconnection:type: proxykubeconfig: ''joinFederation: true
metadata:name: xybeks-clusterannotations:kubesphere.io/alias-name: xybeks-clusterkubesphere.io/description: xybeks-clusterlabels:cluster.kubesphere.io/group: demo

在连接方式,选择集群连接代理,然后点击创建。主集群为代理部署 (Deployment) 生成的 YAML 配置文件会显示在控制台上。

根据指示在成员集群中创建一个 agent.yaml 文件,然后将代理部署复制并粘贴到该文件中。在该节点上执行 kubectl create -f agent.yaml 然后等待代理启动并运行。请确保成员集群可以访问代理地址。

[root@awseksec2 ~]# vim agent.yaml
[root@awseksec2 ~]# kubectl create -f agent.yaml
deployment.apps/cluster-agent created
待集群代理启动并运行,会看到成员集群已经导入主集群。





六、参考资料
🕹️ 导入 AWS EKS 集群 (kubesphere.io)