kubesphere多集群管理,实现kubernetes多集群同时应用部署


测试kubesphere多集群管理功能,至少需要两套kubesphere集群环境。

一、kubesphere集群部署

1、准备环境

执行以下命令,集群的节点都需要执行。

yum install socat
yum install conntrack
yum install ebtables
yum install ipset
export KKZONE=cn

2、下载kubesphere安装工具KubeKey

这里我先下载好安装工具,在部署操作系统上进行解压,解压出来就具有了 kk 命令。如果没有执行权限,执行如下命令。

chmod 755 kk

在这里插入图片描述

3、准备集群部署配置文件

建议安装的时候将配置文件保留下来,后续集群升级可能会编辑配置文件。

使用如下的命令,先生成集群配置文件。

./kk create config --with-kubesphere v3.3.2 --with-kubernetes v1.22.12 -f config-kubesphere.yaml

按照需求修改配置文件即可,如果只需要安装最简易的集群,只需要配置hosts和roleGroups部分即可。


spec:
  hosts:
  - {
    
    name: master, address: 192.168.0.2, internalAddress: 192.168.0.2, user: ubuntu, password: Testing123}
  - {
    
    name: node1, address: 192.168.0.3, internalAddress: 192.168.0.3, user: ubuntu, password: Testing123}
  - {
    
    name: node2, address: 192.168.0.4, internalAddress: 192.168.0.4, user: ubuntu, password: Testing123}
  roleGroups:
    etcd:
    - master
    control-plane:
    - master
    worker:
    - node1
    - node2
  controlPlaneEndpoint:
    domain: lb.kubesphere.local
    address: ""
    port: 6443

4、安装集群

./kk create cluster -f config-kubesphere.yaml

整个安装过程可能需要 10 到 20 分钟,具体取决于您的计算机和网络环境。
安装过程中,可以通过一下命令查看安装的进度日志

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

5、验证安装

安装完成后,您会看到如下内容:

扫描二维码关注公众号,回复: 17006693 查看本文章
#####################################################
###              Welcome to KubeSphere!           ###
#####################################################

Console: http://192.168.0.2:30880
Account: admin
Password: P@88w0rd

NOTES:
  1. After you log into the console, please check the
     monitoring status of service components in
     the "Cluster Management". If any service is not
     ready, please wait patiently until all components
     are up and running.
  2. Please change the default password after login.

#####################################################
https://kubesphere.io             20xx-xx-xx xx:xx:xx
#####################################################

现在,您可以通过 <NodeIP:30880 使用默认帐户和密码 (admin/P@88w0rd) 访问 KubeSphere 的 Web 控制台。

二、配置多集群

1、打开集群tower服务的nodeport端口

这个需要在管理集群中进行操作。

在这里插入图片描述
如图所示,将Tower服务的端口进行nodeport映射,映射出的端口下文中会用到。

2、修改主集群(管理用)

使用 admin 帐户登录控制台,然后进入集群管理页面上的 “定制资源定义” 菜单,输入关键字 ClusterConfiguration,然后转到其详情页面。
在这里插入图片描述
编辑 ks-installer 的 YAML 文件,将 clusterRole 的值设置为 host,proxyPublishAddress配置成 http://< IP>:31989。

  multicluster:
    clusterRole: host
    proxyPublishAddress: 'http://192.168.54.55:31989'

点击确定即可,这里需要点时间,可以通过以下命令查看集群更新的进度日志。

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

集群更新完毕,重新登录就会发现,页面中就有了集群管理的功能菜单
在这里插入图片描述

3、获取控制集群的jwtSecret

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

在这里插入图片描述

4、配置即将加入的集群

使用 admin 帐户登录控制台,然后进入集群管理页面上的 “定制资源定义” 功能菜单,输入关键字 ClusterConfiguration,然后转到其详情页面。编辑 ks-installer 的 YAML 文件, 设置jwtSecret,并且将 clusterRole 的值设置为member。

spec:
  alerting:
    enabled: false
  auditing:
    enabled: false
  authentication:
    jwtSecret: UC8rmYlHpDn4dhIMf9c1T2lxguv58zlt
 ........
 ........  //此处略去一万字
 ........
  multicluster:
    clusterRole: member

三、导入集群

以 admin 身份登录 KubeSphere 主集群控制台,转到集群管理页面点击添加集群。

在导入集群页面输入要导入的集群的基本信息。您也可以点击右上角的编辑模式以 YAML 格式查看并编辑基本信息。编辑完成后,点击下一步。

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

根据指示在成员集群中创建一个 agent.yaml 文件,然后将代理部署复制并粘贴到该文件中。在该节点上执行 kubectl create -f agent.yaml 然后等待代理启动并运行。请确保成员集群可以访问代理地址。
在这里插入图片描述
填写集群名称,标签和提供商可以不填。选择 “集群连接代理” 。
在这里插入图片描述
看到这个页面,按照页面提示,在即将加入的集群中执行以上操作,稍作等待(我测试不到1分钟时间),集群即可加入成功,刷新主集群页面,即可看到已经加入的集群。

在这里插入图片描述

总结

  执行到这一步,多集群测试就已经验证,在后续企业工作空间创建中,可以使用多集群进行创建,工作负载的创建也可以是在多集群环境下构建,如果多集群环境下构建,相当于一个工作负载,会在多集群环境中进行分别创建。

猜你喜欢

转载自blog.csdn.net/bacawa/article/details/131184038