跳转至

在线安装微服务引擎

如需安装微服务引擎,推荐通过 DCE 5.0 商业版 的安装包进行安装;通过商业版可以一次性同时安装 DCE 的所有模块。

本教程旨在补充需要手工 单独在线安装 微服务引擎模块的场景。下文出现的 skoala 是微服务引擎的内部开发代号,代指微服务引擎。

Note

本文提供了在线安装的方式,如果已部署了离线商业版,建议参考离线升级微服务引擎离线安装或升级微服务引擎。

使用商业版安装包安装

通过商业版安装微服务引擎时,需要注意商业版的版本号(点击查看最新版本)。需要针对不同版本执行不同操作。

商业版的 版本号 ≥ v0.3.29 时,默认会安装微服务引擎,但仍旧建议检查 mainfest.yaml 文件进行确认 components/skoala/enable 的值是否为 true,以及是否指定了 Helm 的版本。

商业版中默认安装的是经过测试的最新版本。如无特殊情况,不建议修改默认的 Helm 版本。

如果商业版 ≤ v0.3.28,点击查看对应操作

此注释仅适用于商业版 ≤ v0.3.28;大多数情况下您的版本都会大于此版本。

执行安装命令时,默认不会安装微服务引擎。需要对照下面的配置修改 mainfest.yaml 以允许安装微服务引擎。

修改文件:

./dce5-installer install-app -m /sample/manifest.yaml

修改后的内容:

...
components:
  skoala:
    enable: true
    helmVersion: v0.12.2 # 应该获取当前最新的版本号
    variables:
...

手动安装前检测

微服务引擎由两个组件构成,在代码中分别命名为 skoalaskoala-init。安装微服务引擎时需要同时安装这两个组件。

微服务引擎部署结构

image

左侧蓝色框内的 chart 即 skoala 组件,需要安装在控制面集群,即 DCE 5.0 的全局集群 kpanda-global-clsuter,详情可参考 DCE 5.0 的部署架构。安装 skoala 组件之后即可以在 DCE 5.0 的一级导航栏中看到微服务引擎模块。另外需要注意:安装 skoala 之前需要安装好其依赖的 common-mysql 组件用于存储资源。

右侧蓝色框内的 chart 即 skoala-init 组件,需要安装在工作集群。安装 skoala-init 组件之后即可以使用微服务引擎的各项功能,例如创建注册中心、网关实例等。另外需要注意,skoala-init 组件依赖 DCE 5.0 可观测模块的 insight-agent 组件提供指标监控和链路追踪等功能。如您需要使用该项功能,则需要事先安装好 insight-agent 组件,具体步骤可参考安装组件 insight-agent

检测微服务引擎是否已安装

查看 skoala-system 命名空间中是否有以下对应的资源。如果没有任何资源,说明目前尚未安装微服务引擎。

~ kubectl -n skoala-system get pods
NAME                                   READY   STATUS    RESTARTS        AGE
hive-8548cd9b59-948j2                  2/2     Running   2 (3h48m ago)   3h48m
sesame-5955c878c6-jz8cd                2/2     Running   0               3h48m
ui-7c9f5b7b67-9rpzc                    2/2     Running   0               3h48m

~ helm -n skoala-system list
NAME        NAMESPACE       REVISION    UPDATED                                 STATUS      CHART               APP VERSION
skoala      skoala-system   3           2022-12-16 11:17:35.187799553 +0800 CST deployed    skoala-0.13.0       0.13.0

检测依赖的存储组件

安装微服务引擎时需要用到 common-mysql 组件来存储配置,所以要确保该组件已经存在。此外,还需要查看 common-mysql 命名空间中是否有名为 skoala 的数据库。

~ kubectl -n mcamel-system get statefulset
NAME                                          READY   AGE
mcamel-common-mysql-cluster-mysql             2/2     7d23h

建议使用如下参数为微服务引擎配置数据库信息:

  • host: mcamel-common-mysql-cluster-mysql-master.mcamel-system.svc.cluster.local
  • port: 3306
  • database : skoala
  • user: skoala
  • password:

检测依赖的监控组件

微服务引擎依赖 DCE 5.0 可观测性模块的能力。如您需要监控微服务的各项指标、追踪链路,则需要在集群中安装对应的 insight-agent,具体说明可参考

image

Note

  • 如果安装 skoala-init 之前没有事先安装 insight-agent,则不会安装 service-monitor
  • 如果需要安装 service-monitor,请先安装 insight-agent,然后再安装 skoala-init

手动安装过程

一切就绪之后,就可以开始正式安装微服务引擎了。具体的流程如下:

Note

  • 如果安装的是 skoala-release/skoala v0.17.1 以下的版本,则需要手动初始化数据库表。

  • 如果安装的是 skoala-release/skoala v0.17.1 或更高版本,系统会自动初始化数据库表,无需手动进行。

如果初始化失败,请检查 skoala 数据库内是否有下方 3 张数据表以及对应的 SQL 是否全部生效。
mysql> desc api;
+------------------+-----------------+------+-----+-------------------+-----------------------------------------------+
| Field            | Type            | Null | Key | Default           | Extra                                         |
+------------------+-----------------+------+-----+-------------------+-----------------------------------------------+
| id               | bigint unsigned | NO   | PRI | NULL              | auto_increment                                |
| is_hosted        | tinyint         | YES  |     | 0                 |                                               |
| registry         | varchar(50)     | NO   | MUL | NULL              |                                               |
| service_name     | varchar(200)    | NO   |     | NULL              |                                               |
| nacos_namespace  | varchar(200)    | NO   |     | NULL              |                                               |
| nacos_group_name | varchar(200)    | NO   |     | NULL              |                                               |
| data_type        | varchar(100)    | NO   |     | NULL              |                                               |
| detail           | mediumtext      | NO   |     | NULL              |                                               |
| deleted_at       | timestamp       | YES  |     | NULL              |                                               |
| created_at       | timestamp       | NO   |     | CURRENT_TIMESTAMP | DEFAULT_GENERATED                             |
| updated_at       | timestamp       | NO   |     | CURRENT_TIMESTAMP | DEFAULT_GENERATED on update CURRENT_TIMESTAMP |
+------------------+-----------------+------+-----+-------------------+-----------------------------------------------+

mysql> desc book;
+-------------+------------------+------+-----+-------------------+-----------------------------------------------+
| Field       | Type             | Null | Key | Default           | Extra                                         |
+-------------+------------------+------+-----+-------------------+-----------------------------------------------+
| id          | bigint unsigned  | NO   | PRI | NULL              | auto_increment                                |
| uid         | varchar(32)      | YES  | UNI | NULL              |                                               |
| name        | varchar(50)      | NO   | UNI | NULL              |                                               |
| author      | varchar(32)      | NO   |     | NULL              |                                               |
| status      | int              | YES  |     | 1                 |                                               |
| isPublished | tinyint unsigned | NO   |     | 1                 |                                               |
| publishedAt | timestamp        | YES  |     | NULL              |                                               |
| deleted_at  | timestamp        | YES  |     | NULL              |                                               |
| createdAt   | timestamp        | NO   |     | CURRENT_TIMESTAMP | DEFAULT_GENERATED                             |
| updatedAt   | timestamp        | NO   |     | CURRENT_TIMESTAMP | DEFAULT_GENERATED on update CURRENT_TIMESTAMP |
+-------------+------------------+------+-----+-------------------+-----------------------------------------------+
10 rows in set (0.00 sec)

mysql> desc registry;
+--------------+-----------------+------+-----+-------------------+-----------------------------------------------+
| Field        | Type            | Null | Key | Default           | Extra                                         |
+--------------+-----------------+------+-----+-------------------+-----------------------------------------------+
| id           | bigint unsigned | NO   | PRI | NULL              | auto_increment                                |
| uid          | varchar(32)     | YES  | UNI | NULL              |                                               |
| workspace_id | varchar(50)     | NO   |     | default           |                                               |
| ext_id       | varchar(50)     | YES  |     | NULL              |                                               |
| name         | varchar(50)     | NO   | MUL | NULL              |                                               |
| type         | varchar(50)     | NO   |     | NULL              |                                               |
| addresses    | varchar(1000)   | NO   |     | NULL              |                                               |
| namespaces   | varchar(2000)   | NO   |     | NULL              |                                               |
| is_hosted    | tinyint         | NO   |     | 0                 |                                               |
| deleted_at   | timestamp       | YES  |     | NULL              |                                               |
| created_at   | timestamp       | NO   |     | CURRENT_TIMESTAMP | DEFAULT_GENERATED                             |
| updated_at   | timestamp       | NO   |     | CURRENT_TIMESTAMP | DEFAULT_GENERATED on update CURRENT_TIMESTAMP |
+--------------+-----------------+------+-----+-------------------+-----------------------------------------------+
12 rows in set (0.00 sec)

配置 skoala helm repo

配置好 skoala 仓库,即可查看和获取到 skoala 的应用 chart

~ helm repo add skoala-release https://release.daocloud.io/chartrepo/skoala
~ helm repo update

需要事先安装 Helm

注意:添加 Skoala-release 仓库之后,通常需要关注的有 2 个 Chart:

  • Skoala 是 微服务引擎 的控制端的服务,
    • 安装完成后,可以在 DCE 5.0 平台看到微服务引擎的入口
    • 包含 3 个组件 skoala-ui、hive、sesame
    • 需要安装在全局管理集群
  • Skoala-init 是 微服务引擎 所有的组件 Operator
    • 仅安装到工作集群即可
    • 包含组件有:skoala-agent, nacos, contour, sentinel
    • 未安装时,创建注册中心和网关时会提示缺少组件

默认情况下,安装完成 skoala 到 kpanda-global-cluster(全局管理集群),就可以在侧边栏看到对应的微服务引擎的入口了。

查看微服务引擎最新版本

在全局管理集群,查看 Skoala 的最新版本,直接通过 helm 命令获取版本信息;

~ helm repo update skoala-release
~ helm search repo skoala-release/skoala --versions
NAME                        CHART VERSION   APP VERSION DESCRIPTION
skoala-release/skoala       0.13.0          0.13.0      The helm chart for Skoala
skoala-release/skoala       0.12.2          0.12.2      The helm chart for Skoala
skoala-release/skoala       0.12.1          0.12.1      The helm chart for Skoala
skoala-release/skoala       0.12.0          0.12.0      The helm chart for Skoala
......

在工作集群,查看 skoala-init 的最新版本,直接通过 helm repo 来更新获取最新的

~ helm repo update skoala-release
~ helm search repo skoala-release/skoala-init --versions
NAME                        CHART VERSION   APP VERSION DESCRIPTION
skoala-release/skoala-init  0.13.0          0.13.0      A Helm Chart for Skoala init, it includes Skoal...
skoala-release/skoala-init  0.12.2          0.12.2      A Helm Chart for Skoala init, it includes Skoal...
skoala-release/skoala-init  0.12.1          0.12.1      A Helm Chart for Skoala init, it includes Skoal...
skoala-release/skoala-init  0.12.0          0.12.0      A Helm Chart for Skoala init, it includes Skoal...
......

执行部署(同样适用于升级)

直接执行命令即可,注意对应的版本号

~ helm upgrade --install skoala --create-namespace -n skoala-system --cleanup-on-fail \
    --set ui.image.tag=v0.17.0 \
    --set hive.configMap.database[0].driver="mysql" \
    --set hive.configMap.database[0].dsn="skoala:xxx@tcp(mcamel-common-mysql-cluster-mysql-master.mcamel-system.svc.cluster.local:3306)/skoala?charset=utf8&parseTime=true&loc=Local&timeout=10s" \
    skoala-release/skoala \ 
    --version 0.24.2

查看 Pod 是否启动成功

~ kubectl -n skoala-system get pods
NAME                                   READY   STATUS    RESTARTS        AGE
hive-8548cd9b59-948j2                  2/2     Running   2 (3h48m ago)   3h48m
sesame-5955c878c6-jz8cd                2/2     Running   0               3h48m
skoala-ui-7c9f5b7b67-9rpzc             2/2     Running   0               3h48m

安装 skoala-init 到工作集群

由于 Skoala 涉及的组件较多,我们将这些组件打包到同一个 Chart 内,也就是 skoala-init,所以我们应该在用到微服务引擎的工作集群安装好 skoala-init。此安装命令也可用于更新该组件。

~  helm search repo skoala-release/skoala-init --versions
NAME                        CHART VERSION   APP VERSION DESCRIPTION
skoala-release/skoala-init  0.24.2          0.24.2      A Helm Chart for Skoala init, it includes Skoal...
skoala-release/skoala-init  0.24.1          0.24.1      A Helm Chart for Skoala init, it includes Skoal...
skoala-release/skoala-init  0.24.0          0.24.0      A Helm Chart for Skoala init, it includes Skoal...
skoala-release/skoala-init  0.23.0          0.23.0      A Helm Chart for Skoala init, it includes Skoal...
......

确认所有 Pod 启动成功:

~ helm upgrade --install skoala-init --create-namespace -n skoala-system --cleanup-on-fail \
    skoala-release/skoala-init \
    --version 0.24.2

除了通过终端安装,也可以在 容器管理->Helm 应用 内找到 skoala-init 进行安装。

image

更新微服务引擎

支持离线升级和在线升级两种方式,具体可参考离线升级在线升级

卸载微服务引擎

~ helm uninstall skoala-init -n skoala-system
~ helm uninstall skoala -n skoala-system

评论