跳到主要内容
版本:v1.5.5

升级指南

💡 升级之前

开始升级之前,请确保完成了以下两点事项。

💡   提示:

私有化部署所需相关文件包,请通过左侧导航栏中的 联系方式 向瑞数信息进行咨询。

CCE环境中的升级

  1. 按照 部署指南 > 1.2.1 上传模板文件包 的方法,将新版模板文件包上传到华为云部署环境。

  2. 上传完成后,在页面中单击 模板实例 标签,然后在需要升级的实例的右方单击 升级,如下图所示。

  3. 在右侧弹出的窗口中,单击 选择版本 下拉菜单,选择新版本的版本号,如下图所示(配置文件留空即可)。

    然后还需要对窗口内的 原始数据 (即老版本配置数据)和 当前数据 (即新版本配置数据)的几个配置项进行比对,确保 当前数据中的下列配置项原始数据 一致。其他配置项保持原样即可。

    • image > repository 配置

    • 各个服务的 internal > password 配置

    • smtp 服务配置

    • 各个服务的 external 配置

      💡   提示:

      仅针对采用了自有服务的场景,同时请勿忘记将新版文件中自有服务配置项下的 type 修改为 external 。没有自有服务时请忽略该配置。关于自有服务的概念,请参考 部署指南 > 2.2.1 配置服务参数并执行部署 小节中 步骤 2 的相关内容。

  4. 修改完成后,单击窗口右下角的 升级。升级过程需要持续 5 分钟左右或更长时间(取决于网络速度),请耐心等待。期间您可以单击窗口左侧导航栏中的 工作负载,查看当前各个负载的升级情况,如下图所示。

  5. 工作负载 页面的 状态 一栏中,所有负载都显示为 运行中 时,找到名为 console 的负载,单击该负载对应的操作栏中的 更多 > 重新部署,如下图所示。

    💡   提示:

    该步骤仅适用于从 1.5.4 升级到更高版本的场景。从 1.5.5 开始升级的用户请忽略该步骤。

    等待 console 进入 运行中 状态,即完成了升级操作。

私有K8s环境中的升级

💡   注意:

请首先阅读 附录 1 特殊版本升级注意事项 的内容,确定当前的基础版本是否需要按照附录内容进行操作。

  1. 准备一台安装了 Helm v3.10.0 或更高版本、以及 Kubernetes 命令行工具的 PC(安装方法请参考 Helm 官方文档Kubernetes 命令行工具官方文档),并确保两个工具能够与集群通信。

    💡   提示:

    如果 Helm 安装文件的官方下载地址速度太慢,可以尝试以下命令来下载文件:

    curl https://labfileapp.oss-cn-hangzhou.aliyuncs.com/helm-v3.9.0-linux-amd64.tar.gz -o helm-v3.9.0-linux-amd64.tar.gz

  2. 将瑞数信息提供的模板文件包(名称类似 revol-1.5.5-.tgz )保存到该 PC 上,并执行以下命令解压文件。解压后得到一个 revol 目录。

    # 请根据实际文件名修改以下命令中的文件名称
    tar -zvxf revol-1.5.5-.tgz
  3. 进入解压后生成的 revol 目录,然后修改该目录下的 values.yaml 文件。

    这里需要比对上一个版本的 values.yaml 文件,确保新版本文件中的以下配置项与旧版本的对应配置项相同。

    • image > repository 配置

    • 各个服务的 internal > password 配置

    • smtp 服务配置

    • 各个服务的 external 配置

      💡   提示:

      仅针对采用了自有服务的场景,同时请勿忘记将新版文件中自有服务配置项下的 type 修改为 external 。没有自有服务时刻忽略该配置。关于自有服务的概念,请参考 部署指南 > 2.2.1 配置服务参数并执行部署 小节中 步骤 2 的相关内容。

  4. 在当前 PC 上执行以下命令,开始升级。

    helm upgrade --install -n 命名空间 发布名称 模板文件解压后的路径 -f values.yaml

    参数解释:

    • 命名空间:您部署旧版本时所指定的命名空间,即 namespace 名称。

      💡   提示:

      执行 helm list -A,可以查看当前所有模板文件对应的命名空间。

    • 发布名称:您部署旧版本时所指定的发布名称。

      💡   提示:

      请参考 部署指南 > 2.2.1 配置服务参数并执行部署 小节中 步骤 4 的相关内容。

    • 模板文件解压后的路径:解压模板压缩文件后生成目录 revol,这里可以指定相对路径,即当前执行命令所在的位置相对于该目录所在位置的路径、或者直接指定绝对路径。

      💡   提示:

      对于相对路径来说,假设当前处于 revol 路径的相同父目录下,则相对路径为 ./revol。以此类推。

    升级过程需要持续 5 分钟左右或更长时间(取决于网络速度),请耐心等待。期间您可以不断执行以下命令查看升级情况。

    kubectl get deployment,statefulset -n 命名空间

    返回信息中显示如下图所示的组件状态,说明部署进程已完成。

  5. 后执行以下命令重启 console 负载。

    💡   提示:

    该步骤仅适用于从 1.5.4 升级到更高版本的场景。从 1.5.5 开始升级的用户请忽略该步骤。

    kubectl -n 命名空间 rollout restart deployment console

    重启过程中,同样可以不断执行以下命令查看 console 重启情况。

    kubectl get deployment,statefulset -n 命名空间

    当返回信息中 consoleREADLY 一栏中显示 1/1,即完成了升级操作。

附录 1 特殊版本升级注意事项

  1. 1.5.4-ca6686e 升级时,如果需要保留历史数据,请首先执行以下操作。

    • 从该版本升级到 1.5.4 的其他子版本,需要首先执行以下命令安装补丁。

      kubectl patch configmap clickhouse-config -p '{"metadata":{"annotations":{"helm.sh/resource-policy":"keep"}}}'

      kubectl patch configmap redis-config -p '{"metadata":{"annotations":{"helm.sh/resource-policy":"keep"}}}'

      kubectl patch statefulsets clickhouse -p '{"metadata":{"annotations":{"helm.sh/resource-policy":"keep"}}}'

      kubectl patch statefulsets kafka -p '{"metadata":{"annotations":{"helm.sh/resource-policy":"keep"}}}'

      kubectl patch statefulsets minio -p '{"metadata":{"annotations":{"helm.sh/resource-policy":"keep"}}}'

      kubectl patch statefulsets postgresql -p '{"metadata":{"annotations":{"helm.sh/resource-policy":"keep"}}}'

      kubectl patch statefulsets redis -p '{"metadata":{"annotations":{"helm.sh/resource-policy":"keep"}}}'

      kubectl patch service clickhouse -p '{"metadata":{"annotations":{"helm.sh/resource-policy":"keep"}}}'

      kubectl patch service kafka -p '{"metadata":{"annotations":{"helm.sh/resource-policy":"keep"}}}'

      kubectl patch service minio -p '{"metadata":{"annotations":{"helm.sh/resource-policy":"keep"}}}'

      kubectl patch service postgresql -p '{"metadata":{"annotations":{"helm.sh/resource-policy":"keep"}}}'

      kubectl patch service redis -p '{"metadata":{"annotations":{"helm.sh/resource-policy":"keep"}}}'

      然后确保新版模板文件中的 values.yaml 文件内,以下服务的 typeexternal

      minio:
      type: external

      redis:
      type: external

      postgresql:
      type: external

      kafka:
      type: external

      clickhouse:
      type: external
    • 从该版本升级到 1.5.5 版本,除了上面的补丁安装和 type 修改,还需要执行以下操作。

      将新版模板文件解压后,revol/initdb.d/clickhouse/format_schemas 目录下的所有文件,复制到自建的 clickhouse 服务的 format_schemas 路径下。

  2. 1.5.4 其他子版本升级到任意版本,且 clickhouse 服务采用 external 部署方式,则仅需要执行以下操作。

    💡   提示:

    clickhouse 服务采用 internal 部署方式时,请忽略该操作。

    将新版模板文件解压后,revol/initdb.d/clickhouse/format_schemas 目录下的所有文件,复制到自建的 clickhouse 服务的 format_schema 路径下。

按照当前的基础版本完成以上相应的操作后,再遵循前面的升级步骤依次执行即可。

附录 2 手动上传情报库

💡   仅针对符合以下前提的用户:

  1. 当前部署环境无法通过访问公网来更新情报库。

  2. 当前部署的服务中,minio 服务采用 internal 的部署方式,即该服务 并非 您自行创建的服务。关于自有服务的概念,请参考 部署指南 > 2.2.1 配置服务参数并执行部署 小节中 步骤 2 的相关内容。

  1. 在一台 PC 上解压瑞数信息提供的 离线情报库上传.zip 文件,解压后的目录内包含路径 backup,该路径下即保存了将要上传的情报库数据。

  2. 获取 minio 服务的 access-keysecret-key

    • 针对华为 CCE 部署环境

      登录后进入 CCE 集群界面,然后按照下图所示,依次单击 配置项与密钥 > 密钥 > minio,将弹出窗口中的 access-keysecret-key 记录下来。

    • 针对自有 K8s 部署环境

      在安装了 kubectl 工具的 PC 上执行以下命令(注意指定命令空间)。

      kubectl get secrets minio -o json -n 部署的命名空间 | jq -r '.data["access-key"]' | base64 -d

      kubectl get secrets minio -o json -n 部署的命名空间 | jq -r '.data["secret-key"]' | base64 -d

      第一条命令将返回 access-key,第二条命令将返回 secret-key。将它们记录下来。

  3. 在命令行界面中执行命令创建 minio console 服务。

    • 针对华为 CCE 部署环境

      登录后进入 CCE 集群界面,然后在页面顶部的集群名称旁边,单击如下图所示的图标,打开 CloudShell 命令行界面。

    • 针对自有 K8s 部署环境

      在安装了 kubectl 工具的 PC 上进入终端命令行界面。

    在命令界面中,执行以下命令。

    💡   注意:

    以下命令为单条命令,并非多条命令。请一次性复制所有的行,并指定命名空间,然后粘贴到命令行界面中执行。

    kubectl apply -f -<<EOF
    apiVersion: v1
    kind: Service
    metadata:
    name: minio-console
    namespace: 部署的命名空间
    spec:
    ports:
    - name: console
    port: 9001
    protocol: TCP
    targetPort: 9001
    selector:
    app: minio
    type: NodePort
    EOF

    执行成功将返回 service/minio-console created

  4. 在命令行界面中执行以下命令获取 minio console 服务的端口号,并记录下来。

    kubectl get services minio-console -n 部署的命名空间
  5. 在命令行界面中执行以下命令获取节点 IP。

    执行以下命令获取节点名称。

    kubectl get nodes

    然后将返回的任意节点的名称放入以下命令并执行。

    kubectl describe nodes 节点名称

    在返回信息中,找到 InternalIPExternalIP,并记录下来。如下图所示。

    💡   提示:

    如果返回信息中没有包含 ExternalIP,是由于集群未配置公网 IP 映射,这时可以选择 InternalIP,即内网私有 IP 在后续步骤中使用。

  6. 在之前解压情报库文件的 PC 上通过浏览器访问 InternalIP + minio console 端口ExternalIP + minio console 端口,打开以下登录页面。

    💡   注意:

    请确保 PC 能够访问其中一个 IP 地址。

    Username 文本框输入之前记录的 access-key,在 Password 文本框中输入 secret-key,然后单击 login

  7. 登录后,在页面中单击 credit-bucket,如下图所示。

    然后选择右方的 Upload > Upload Folder,指定情报库文件解压目录内的文件夹 backup,开始上传。

  8. 上传完成后,在安装了 kubectl 工具的 PC 上(或华为云 CloudShell 命令行界面中)执行以下命令重启 intelligence 服务

    kubectl rollout restart deployment intelligence-worker -n 部署的命名空间

    重启完成后即可生效。