Rancher部署帆软应用

  • 最後修改時間:2023-12-20
  • 1. 概述

    1.1 版本

    运维平台版本
    功能变更
    V1.10.0-

    1.2 应用场景

    Kubernetes 是一个开源的容器编排平台,被广泛用于容器化工作负载的管理,支持多云、多区域的部署,有助于实现高可用性和弹性。

    Rancher 是一个 Kubernetes 管理工具,可以创建来自 Kubernetes 托管服务提供商的集群,创建节点并安装 Kubernetes,或者导入在任何地方运行的现有 Kubernetes 集群。

    本文简单介绍如何在Rancher的K8S集群中部署帆软应用(FineReport、FineBI、FineDataLink)。

    1.3 步骤简介

    序号步骤简介

    此部分均为准备操作,旨在准备好容器安装所需的镜像和空间。

    除获取部分帆软镜像以外的其他操作,如有问题或需使用指导,建议查阅Rancher帮助文档。

    1准备镜像获取镜像

    联系帆软获取帆软相关组件的镜像包和版本号

    自行准备mysql/redis/minio相关镜像包

    新建镜像仓库

    创建一个命名空间,创建每个组件的镜像仓库

    建议帆软应用所需的所有组件镜像,均存储在同一命名空间下的镜像仓库中

    推送镜像

    将本地镜像推送到镜像仓库

    2配置集群新建集群创建一个K8S集群,容器服务运行在集群中
    新建命名空间

    创建一个命名空间,该命名空间用于安装存储该帆软应用下的所有组件

    建议同一帆软应用下的所有组件,安装在同一K8S集群的同一命名空间下,且该命名空间中不再安装其他组件,实现多应用之间的资源隔离

    新建保密字典创建该命名空间的保密字典,用于存储密码、令牌、密钥等敏感信息,降低直接对外暴露的风险
    创建存储创建存储,用于保存bi6/fr/fdl组件的业务数据
    3自行提前安装组件

    先自行部署相关组件,确保工程启动所依赖的组件均完备

    elasticsearch可选,用作日志存储,即logdb

    mysql可选,强烈建议准备。作为工程配置库,存储工程相关配置信息

    redis/minio作为集群状态服务器和文件服务器,集群必备,单机无需

    此部分进入正式部署容器环节
    3安装组件修改YAML

    根据自身配置信息,修改 yaml 文

    本文提供文件示例和修改方案,用户可自行修改或联系帆软协助

    YAML 创建资源使用生成的 yaml 文件,在K8S集群中创建资源
    新建 Nginx Ingress 实例创建一个 Nginx Ingress 实例,用于提供进入 Kubernetes 集群的外部流量管理和路由功能
    访问帆软应用访问bi6/fr/fdl工程,正式使用

    2. 准备镜像

    在容器化部署中,镜像仓库用于管理、存储和共享容器镜像,因此在正式部署之前,用户需要先将镜像推送到镜像仓库中。

    2.1 使用前提

    用户在进行本节操作之前,需自行准备好镜像仓库,用于存储帆软应用镜像。

    2.2 获取镜像

    如需部署帆软应用,请联系帆软技术支持,获取以下容器镜像和镜像版本号。

    所需镜像
    是否必需说明
    bi6/fr/fdl
    必需FineBI/FineReport/FineDataLink的工程节点组件,其中不带任何的demo数据
    app-init必需执行初始化任务,预加载数据,设置文件权限、从外部获取配置信息等,确保帆软应用在启动时处于一个良好的状态
    elasticsearch可选替换帆软应用中原有的swift作为日志存储

    对帆软应用、配置库、业务库和其他集群组件的请求进行采集

    2.3 推送镜像

    请将获取的镜像包上传到镜像仓库中。请记住镜像最终的存储地址和版本号。本文演示常见的镜像推送步骤。

    1)登录到镜像仓库

    使用 docker login 命令登录到你的镜像仓库。你需要提供用户名、密码和仓库地址。

    docker login <registry_address>

    2)标记镜像

    使用 docker tag 命令标记你的镜像,将其命名为包含仓库地址的完整名称。

    docker tag <image_name:tag> <registry_address>/<image_name:tag>

    例如:docker tag fr:11.0 fr/fr:v11.0.19

    3)上传镜像

    使用 docker push 命令将标记的镜像上传到镜像仓库。

    docker push <registry_address>/<image_name:tag>

    例如:docker push fr/fr:v11.0.19

    3. K8S集群准备

    3.1 创建K8S集群

    用户在进行本节操作之前,需自行使用 Rancher 创建好 Kubernetes 集群。

    本节所有操作,均在已创建好的K8S集群中进行。

    3.2 创建命名空间

    一个 Kubernetes 集群支持设置多个命名空间(Namespace),每个命名空间相当于一个相对独立的虚拟空间,不同空间的资源相互隔离互不干扰。

    建议同一帆软应用下的所有组件,安装在同一K8S集群的同一命名空间下,且该命名空间中不再安装其他组件,实现多应用之间的资源隔离。

    本节演示,在K8S集群中,新建一个名叫 fanruan-test 的命名空间(如果已有命名空间,可跳过本节)。

    1)创建项目

    进入集群,点击「集群>项目/命名空间」,点击「创建项目」,创建一个名叫「fanruan-ops」的项目。

    2)创建命名空间

    「fanruan-ops」项目中,点击「创建命名空间」,创建一个名叫「fanruan-test」的命名空间。

    3.3 查看存储类名称

    K8S集群的存储,是保存业务数据的重要组件。请查看存储类名称,后续需要使用

    4. 自行准备组件

    在执行下文创建帆软应用操作前,请先自行部署相关组件,确保工程启动所依赖的组件均完备。

    组件可部署在3.2节创建的命名空间中,也可自行安装在其他服务器空间中,只需确保和该命名空间可内网联通即可。

    组件
    镜像说明
    配置数据库自行准备

    组件作用:作为工程的外接配置库(即finedb)。存储系统相关配置信息,包括:平台目录、定时任务、用户权限等

    是否必需:可选,强烈建议安装

    建议准备 MySQL8 类型数据库

    支持的数据库类型包括:MySQL5、MySQL8、Oracle

    信息准备:

    请记录下数据库表空间的URL、模式、用户密码等信息

    状态服务器自行准备

    组件作用:作为集群的状态服务器

    是否必需:单机无需,集群必需

    支持的状态服务器类型包括:Redis单机、Redis集群

    信息准备:

    请记录下Redis的IP、端口、密码等信息

    文件服务器
    自行准备

    组件作用:作为集群的文件服务器

    是否必需:单机无需,集群必需

    支持的文件服务器类型包括:SFTP、FTP、共享外部目录

    信息准备:

    请记录下文件服务器的访问信息

    elasticsearch帆软提供组件作用:作为帆软应用的日志存储(即logdb)。对工程、外接数据库、业务库和其他集群组件的请求进行采集

    是否必需:可选,集群强烈建议安装

    如安装,则取代帆软应用中原有的swift,作为日志存储

    如不安装,将启用帆软应用中原有的swift(logdb)进行日志存储

    信息准备:

    请记录下elasticsearchIP、端口、用户密码等信息

    5. 创建帆软应用

    5.1 修改YAML

    点击下载并解压,获取示例YAML文件:demo_example.zip

    请根据自身情况,修改以下内容:

    配置项
    说明
    namespace

    请修改namespace值为3.2节选的的命名空间名称

    文件中有多处,请逐一修改

    datasource

    若未准备配置数据库,请修改enabled值为false

    若准备了配置数据库请修改相关配置信息

    enabled: 是否启用配置数据库

    password: 数据库密码

    schema: 数据库模式

    type: 数据库类型

    url: 数据库访问URL

    username: 数据库用户名

    elasticSearch

    若未准备elasticSearch,请修改enabled值为false

    若准备了elasticSearch请修改相关配置信息

    enabled: 是否启用elasticSearch组件

    ip: elasticSearch所在服务器IP

    password: elasticSearch用户的密码

    port: elasticSearch占用端口

    user: elasticSearch用户名称

    fileService

    单机工程,请修改enabled值为false

    集群工程,请修改为文件服务器相关配置信息

    config: 文件服务器信息

    enabled: 是否启用文件服务器

    type: 文件服务器类型

    redis

    单机工程,请修改enabled值为false

    集群工程,请修改为状态服务器相关配置信息

    enabled: 是否启用状态服务器

    nodes: 状态服务器IP和端口

    password: 状态服务器密码

    type: 状态服务器类型

    image

    请修改image为2.3节的镜像信息

    如果镜像拉取需要密钥,也需要写进来

    storageClassName

    请修改storageClassName值为3.3节存储类名称

    5.2 YAML创建资源

    使用上节修改后的YAML文件,在3.2节选定的命名空间中,创建应用。

    5.3 确认创建成功

    导入成功后,会提示已应用资源,如下图所示:

    进入「工作负载>StatefulSet」,等待fr工程状态转为「running」,则工程即可直接访问

    5.4 创建ingress服务(可选)

    用户可以为 Kubernetes 集群创建一个流量管理器,用于处理从外部进入集群的所有请求。

    • 点击「服务发现>Ingresses」,点击「创建」。

    • 选择指定命名空间,自定义名称,设置路径,选择目标服务。

    如下图所示:

    5.5 访问帆软应用

    此时即可访问帆软应用。工程访问地址为http://ip:port/webroot/decision

    其中的端口为上节创建的ingress占用端口。



    附件列表


    主題: 部署新项目
    已經是第一篇
    已經是最後一篇
    • 有幫助
    • 沒幫助
    • 只是瀏覽