最新历史版本 :腾讯云TKE部署帆软应用 返回文档
编辑时间: 内容长度:图片数:目录数: 修改原因:

目录:

1. 概述编辑

1.1 版本

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

1.2 应用场景

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

TKE (Tencent Kubernetes Engine) 是腾讯云提供的 Kubernetes 托管服务,用于管理、部署和运行容器化应用。

它提供了在云环境中轻松使用 Kubernetes 的能力,减少了运维负担,帮助用户更容易地构建、扩展和管理容器化应用程序。

本文简单介绍如何在TKE中部署帆软应用(FineReport、FineBI)。

1.3 步骤简介

序号步骤简介

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

除获取部分帆软镜像以外的其他操作,如有问题或需使用指导,建议查阅腾讯云帮助文档或联系腾讯云售后支持。

1准备镜像获取镜像

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

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

新建镜像仓库

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

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

推送镜像

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

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

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

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

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

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

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

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

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

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

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

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

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

2. 准备镜像编辑

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

本文以购买的腾讯云镜像仓库为例,演示镜像推送的过程。

注1:除 2.1 节需联系帆软获取镜像,本章节其他步骤如有问题,或需使用指导,建议查阅腾讯云帮助文档或联系腾讯云售后支持。

注2:用户如另有镜像仓库,请自行调整操作步骤。

2.1 获取镜像

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

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

替换帆软应用中原有的swift作为日志存储

对项目中FineReport、外接数据库、业务库和其他集群组件的请求进行采集

2.2 创建镜像仓库

1)创建命名空间

创建一个命名空间,该命名空间用于存放帆软提供的所有镜像仓库。

建议帆软所有应用涉及的组件,均存放于该命名空间中,

  1. 登录 容器镜像服务 控制台,选择左侧导航栏中的「命名空间」,选择指定实例。

  2. 单击「新建」,配置命名空间名称及访问级别。点击「确认」即可在该实例下创建一个命名空间。

详情请参见腾讯云文档:管理命名空间

2)创建镜像仓库

创建镜像仓库,用于存放帆软提供的各个镜像,如有多个镜像,需创建多个镜像仓库。

  1. 登录 容器镜像服务 控制台,选择左侧导航栏中的「镜像仓库」,选择指定实例。

  2. 单击「新建」,进行镜像仓库配置,选择上一步创建的命名空间,建议根据镜像名称设置仓库名称。

详情请参见腾讯云文档:管理镜像仓库

3)查看仓库信息

点击对应镜像仓库后的「快捷指令」,即可查询登录和推送镜像相关指令,下节推送镜像时需要使用。

2.3 推送镜像入库

1)配置访问控制

首次推送镜像请先配置实例的访问控制功能,确认镜像上传客户端可通过内网或公网稳定访问实例。

详情请参见腾讯云文档:设置访问网络控制

2)推送镜像

请根据2.1节帆软提供的组件镜像,和2.2节生成的快捷指令,将本地镜像推送到腾讯容器镜像仓库中。

详情请参见腾讯云文档:如何上传 Docker 镜像至腾讯容器镜像仓库 TCR

3)效果预览

当镜像仓库中出现对应版本的镜像信息时,说明镜像已成功推送。

3. K8S集群准备编辑

3.1 新建集群

当使用容器服务时,需要先创建集群,容器服务运行在集群中。一个集群由若干节点(云服务器)构成,可运行多个容器服务。

  1. 登录 容器服务控制台,在左侧导航栏中选择「集群」,单击「新建」。

  2. 帆软不提供相关操作和购买说明,请参考腾讯云文档按需购买:集群概述

3.2 新建命名空间

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

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

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

  1. 登录 容器服务控制台,在左侧导航栏中选择「集群」,单击目标集群 ID,进入集群详情页。

  2. 选择左侧菜单栏中的「命名空间」,单击「新建」。

  3. 在新建命名空间页面中,设置名称为「ops-test」。如下图所示:

3.3 新建Secrets

Secret 可用于存储密码、令牌、密钥等敏感信息,降低直接对外暴露的风险。在下文 yaml 文件中需要用到。

  1. 登录 容器服务控制台,在左侧导航栏中选择「集群」,单击目标集群 ID,进入集群详情页。


  2. 选择左侧导航栏中的「配置管理 > Secret」,配置 Secret 信息即可创建。

配置项
说明
名称自定义名称
Secret类型选择「Dockercfg」
生效范围指定命名空间,选择3.3节新建的命名空间
镜像仓库域名

手动填写2.2节创建的镜像仓库地址前

例如:

仓库地址为fine-image-registry.tencentcloudcr.com/fanruan/fr

则仓库域名为fine-image-registry.tencentcloudcr.com

用户名密码登录腾讯云的用户名密码

详情请参见腾讯云文档:Secret 管理

3.4 创建存储

集群的存储管理是保存业务数据的重要组件,如果已有可用存储,可跳过本节内容。

本节演示,在腾讯云集群中,新建一个名叫 data 的 storageclass 作为帆软应用的存储。

  1. 登录 容器服务控制台,在左侧导航栏中选择「集群」,单击目标集群 ID,进入集群详情页。

  2. 选择左侧菜单栏中的「存储 > StorageClass」,在 StorageClass 页面单击「新建」。

  3. 在新建 StorageClass 页面中,配置 StorageClass 参数,示例名称为 data 。如下图所示:

详情请参见腾讯云文档:存储

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节的的镜像信息和3.3节的Secrets

storageClassName

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

5.2 YAML创建资源

使用 YAML 文件创建资源的主要作用是定义和配置 Kubernetes 集群中的各种资源。这些资源可以包括应用程序的部署、服务、持久卷声明、配置映射、Ingress规则等等。

  1. 登录 容器服务控制台,在左侧导航栏中选择「集群」,单击目标集群 ID,进入集群详情页。

  2. 单击右上方「YAML 创建资源」按钮,将上节生成的 YAML 文件内容拷贝进来,点击「完成」即可。

5.3 新建 Ingress

此时工程其实已经创建成功。

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

用户需要同时配置 NginxIngress 组件和创建适当的 Nginx Ingress 实例来实现流量控制和路由。

  • Nginx Ingress 实例告诉 NginxIngress 组件如何处理流量

  • NginxIngress 组件则负责实际处理流量并执行规则

1)新建 NginxIngress 组件

  1. 登录 容器服务控制台,在左侧导航栏中选择「集群」,单击目标集群 ID,进入集群详情页。

  2. 选择左侧菜单栏中的「组件管理」,单击「新建」。勾选「网络>NginxIngress」,点击「完成」。

2)新增 Nginx Ingress 实例

  1. 登录 容器服务控制台,在左侧导航栏中选择「集群」,单击目标集群 ID,进入集群详情页。

  2. 选择左侧菜单栏中的「服务与路由>NginxIngress」,单击「新增 Nginx Ingress 实例」。

  3. 本示例创建一个叫「fine-nginx」的实例。


3)新建Ingress实例

  1. 登录 容器服务控制台,在左侧导航栏中选择「集群」,单击目标集群 ID,进入集群详情页。

  2. 选择左侧菜单栏中的「服务与路由>Ingress」,单击「新建」。

  3. 在新建 Ingress 页面中,配置参数,如下图所示:

  • Ingress 名称:fr

  • 命名空间:3.2节创建的「ops-test」

  • Ingress 类型:Nginx Ingress Controller

  • class:上一步创建的「fine-nginx」实例

  • 转发配置:工程的通信协议(http)、访问路径(/webroot)、后端服务(fr-headless)、服务端口(8080)

5.4 访问帆软应用

此时即可访问fr工程。

1)获取访问路径

  1. 登录 容器服务控制台,在左侧导航栏中选择「集群」,单击目标集群 ID,进入集群详情页。

  2. 选择左侧菜单栏中的「服务与路由>Ingress」。

  3. 查看fr组件的后端服务地址,在后面拼接/decision,即为工程实际的访问地址。

  • 例如后端服务地址为http://ip:port/webroot,则工程访问地址为http://ip:port/webroot/decision

2)访问工程

根据上一步得到的工程访问地址,即可登录帆软工程进行访问。