KubeSphere管理多tke集群

KubeSphere是在 Kubernetes 之上构建的开源的企业级容器平台,提供简单易用的操作界面以及向导式操作方式,在降低用户使用容器调度平台学习成本的同时,极大减轻开发、测试、运维的日常工作的复杂度,旨在解决 Kubernetes 本身存在的存储、网络、安全和易用性等痛点。除此之外,平台已经整合并优化了多个适用于容器场景的功能模块,以完整的解决方案帮助企业轻松应对敏捷开发与自动化运维、微服务治理、多租户管理、工作负载和集群管理、服务与网络管理、应用编排与管理、镜像仓库管理和存储管理等业务场景。

如今,各种组织跨不同的云厂商或者在不同的基础设施上运行和管理多个 Kubernetes 集群的做法非常普遍。由于每个 Kubernetes 集群都是一个相对独立的单元,上游社区正在艰难地研究和开发多集群管理解决方案。即便如此,Kubernetes 集群联邦(Kubernetes Cluster Federation,简称KubeFed)可能是其中一种可行的方法。

KubeSphere的多集群管理架构如下,只能有一个 H 集群存在,而多个 M 集群可以同时存在。在多集群架构中,H 集群和 M 集群之间的网络可以直接连接,或者通过代理连接。M 集群之间的网络可以设置在完全隔离的环境中。

下面我们来实践下KubeSphere来管理多个tke集群。

1. 部署文件准备

wget https://github.com/kubesphere/ks-installer/releases/download/v3.1.1/kubesphere-installer.yaml
wget https://github.com/kubesphere/ks-installer/releases/download/v3.1.1/cluster-configuration.yaml
wget https://raw.githubusercontent.com/kubesphere/ks-installer/release-3.1/scripts/kubesphere-delete.sh

上面文件分别为KubeSphere的部署yaml,KubeSphere在不同集群配置yaml和卸载KubeSphere的脚本

2. 部署KubeSphere到Host集群

选择一个tke集群作为host集群部署KubeSphere,安装kubesphere-installer

kubectl apply -f kubesphere-installer.yaml
   
kubectl logs -n kubesphere-system $(kubectl get pod -n kubesphere-system -l app=ks-install -o jsonpath='{.items[0].metadata.name}') -f

可以用上面日志查看kubesphere-installer安装日志,如果日志打印如下信息,则说明安装成功

接下来,我们修改cluster-configuration.yaml的配置,设置集群角色,yaml中将clusterrole设置为host

multicluster:
  clusterRole: host

修改后保存,然后直接创建ClusterConfiguration这个配置

kubectl apply -f cluster-configuration.yaml

如果需要修改已有集群的角色类型,用命令修改角色配置

kubectl edit cc ks-installer -n kubesphere-system

通过Host 集群管理 Member 集群,您需要使它们之间的jwtSecret相同。因此,您首先需要在Host 集群中执行以下命令来获取它,后面再配置member集群需要用到。

kubectl -n kubesphere-system get cm kubesphere-config -o yaml | grep -v "apiVersion" | grep jwtSecret

会输出如下结果

    jwtSecret: "rxvJvRxRU1dTtBtBdgcimQR0oMojqyh9"

3. 部署KubeSphere到member集群

选择tke集群作为member集群部署KubeSphere,安装kubesphere-installer,安装kubesphere-installer的步骤和在host集群部署一样,这里就不重复了。参考host集群部署KubeSphere即可。

下面我们需要修改下member集群的cluster-configuration.yaml,将jwtSecret所对应的值填写为我们在host中获取的,并将clusterRole的值修改为member。

authentication:
  jwtSecret: rxvJvRxRU1dTtBtBdgcimQR0oMojqyh9

multicluster:
  clusterRole: member

然后直接创建ClusterConfiguration这个配置

kubectl apply -f cluster-configuration.yaml

查看安装日志,出现了KubeSphere的登录信息,则说明安装成功

4. KubeSphere控制台添加member集群

我们登录host集群的KubeSphere控制台,根据日志提供的登录账号密码登录,会显示有一个默认的host集群

点击添加集群,并填写集群的相关信息

配置集群的kubeconfig文件,点击创建,显示了集群相关信息说明关联成功。

后续如果还有其他集群需要通过KubeSphere来进行管理,只需重复第三和第四步即可。

本站文章资源均来源自网络,除非特别声明,否则均不代表站方观点,并仅供查阅,不作为任何参考依据!
如有侵权请及时跟我们联系,本站将及时删除!
如遇版权问题,请查看 本站版权声明
THE END
分享
二维码
海报
KubeSphere管理多tke集群
KubeSphere是在 Kubernetes 之上构建的开源的企业级容器平台,提供简单易用的操作界面以及向导式操作方式,在降低用户使用容器调度平台学习成本的同...
<<上一篇
下一篇>>