1. 概述编辑
1.1 版本
运维平台版本 | 功能变更 |
---|---|
V1.10.0 | - |
1.2 应用场景
Kubernetes 是一个开源的容器编排平台,被广泛用于容器化工作负载的管理,支持多云、多区域的部署,有助于实现高可用性和弹性。
TKE (Tencent Kubernetes Engine) 是腾讯云提供的 Kubernetes 托管服务,用于管理、部署和运行容器化应用。
它提供了在云环境中轻松使用 Kubernetes 的能力,减少了运维负担,帮助用户更容易地构建、扩展和管理容器化应用程序。
本文简单介绍如何在TKE中部署帆软应用(FineReport、FineBI)。
1.3 安装顺序
单节点工程组件安装顺序:elasticsearch->filebeat->skywalking->mysql->bi6/fr/fdl
多节点集群组件安装顺序:elasticsearch->filebeat->skywalking->mysql/redis/minio->bi6/fr/fdl->nginx
bi6、fr、fdl组件由帆软提供,请按需索要
elasticsearch和filebeat可选但需配套安装,用于替换帆软应用中原有的swift作为日志存储
elasticsearch和skywalking可选但需配套安装,用于后续使用FineOps对帆软应用进行链路追踪
mysql/redis/minio请用户自行准备镜像并安装,作为工程外接数据库、集群状态服务器、集群文件服务器
本文仅介绍bi6/fr/fdl组件的安装流程,其他组件的安装方法基本完全一致,请按顺序安装即可。
建议同一帆软应用下的所有组件,安装在同一腾讯云集群的同一命名空间(3.3节)下,且该命名空间中不再安装其他组件,实现多应用之间的资源隔离。
序号 | 步骤 | 简介 | |
---|---|---|---|
此部分均为准备操作,旨在准备好容器安装所需的镜像和空间。 除获取部分帆软镜像以外的其他操作,如有问题或需使用指导,建议查阅腾讯云帮助文档或联系腾讯云售后支持 | |||
1 | 准备镜像 | 获取镜像 | 联系帆软获取帆软相关组件(bi6/fr/fdl、elasticsearch、filebeat、skywalking)的镜像包和版本号 自行准备mysql/redis/minio相关镜像包 |
新建镜像仓库 | 创建一个命名空间,创建每个组件的镜像仓库 建议帆软应用所需的所有组件,均存储在同一命名空间下的镜像仓库中 | ||
推送镜像 | 将本地镜像推送到镜像仓库仓库 | ||
2 | 配置集群 | 新建集群 | 创建一个集群,容器服务运行在集群中 |
新建命名空间 | 创建一个命名空间,该命名空间用于安装存储该帆软应用下的所有组件 建议同一帆软应用下的所有组件,安装在同一腾讯云集群的同一命名空间下,且该命名空间中不再安装其他组件,实现多应用之间的资源隔离 | ||
新建 secrets | 创建该命名空间 Secret,用于存储密码、令牌、密钥等敏感信息,降低直接对外暴露的风险 | ||
新建 Nginx Ingress 实例 | 创建一个 Nginx Ingress 实例 | ||
此部分进入正式部署容器环节。部分组件存在依赖关系。 安装顺序:
组件作用:
本文仅介绍bi6/fr/fdl组件的安装流程,其他组件的安装方法基本完全一致,请按顺序安装即可。 | |||
3 | 安装组件 | 创建存储 | 创建存储,保存bi6/fr/fdl组件的业务数据 |
生成 YAML | 使用 helm 工具生成 yaml 文件 本节提供文件示例和必要信息收集,用户可自行生成或联系帆软协助生成 | ||
YAML 创建资源 | 使用生成的 yaml 文件,在腾讯云集群中创建资源 | ||
新建 ingress | 创建 ingress 访问服务 | ||
访问帆软应用 | 访问bi6/fr/fdl工程,正式使用 |
2. 准备镜像编辑
在容器化部署中,镜像仓库用于管理、存储和共享容器镜像,因此在正式部署之前,用户需要先将镜像推送到镜像仓库中。
本文以购买的腾讯云镜像仓库为例,演示镜像推送的过程。
注1:除 2.1 节需联系帆软获取镜像,本章节其他步骤如有问题,或需使用指导,建议查阅腾讯云帮助文档或联系腾讯云售后支持。
注2:用户如另有镜像仓库,请自行调整操作步骤。
2.1 获取镜像
如需部署帆软应用,请联系帆软技术支持,获取以下容器镜像和镜像版本号。
注:FineBI中自带FineReport、FineDataLink功能点,FineReport中自带FineDataLink功能点。
所需镜像 | 是否必需 | 说明 |
---|---|---|
bi6/fr/fdl | 必需 | FineBI/FineReport/FineDataLink的工程节点组件,其中不带任何的demo数据 |
elasticsearch | 可选 | 替换帆软应用中原有的swift作为日志存储 对项目中FineReport、外接数据库、业务库和其他集群组件的请求进行采集 |
filebeat | 可选 | 与elasticSearch组件配套安装,用于抓取工程日志到elasticSearch |
skywalking | 可选 |
2.2 创建镜像仓库
1)创建命名空间
创建一个命名空间,该命名空间用于存放帆软提供的所有镜像仓库。
建议帆软所有应用涉及的组件,均存放于该命名空间中,
登录 容器镜像服务 控制台,选择左侧导航栏中的「命名空间」,选择指定实例。
单击「新建」,配置命名空间名称及访问级别。点击「确认」即可在该实例下创建一个命名空间。
详情请参见腾讯云文档:管理命名空间
2)创建镜像仓库
创建镜像仓库,用于存放帆软提供的各个镜像,如有多个镜像,需创建多个镜像仓库。
登录 容器镜像服务 控制台,选择左侧导航栏中的「镜像仓库」,选择指定实例。
单击「新建」,进行镜像仓库配置,选择上一步创建的命名空间,建议根据镜像名称设置仓库名称。
详情请参见腾讯云文档:管理镜像仓库
3)查看仓库信息
点击对应镜像仓库后的「快捷指令」,即可查询登录和推送镜像相关指令,下节推送镜像时需要使用。
2.3 推送镜像入库
1)配置访问控制
首次推送镜像请先配置实例的访问控制功能,确认镜像上传客户端可通过内网或公网稳定访问实例。
详情请参见腾讯云文档:设置访问网络控制
2)推送镜像
请根据2.1节帆软提供的组件镜像,和2.2节生成的快捷指令,将本地镜像推送到腾讯容器镜像仓库中。
详情请参见腾讯云文档:如何上传 Docker 镜像至腾讯容器镜像仓库 TCR
3)效果预览
当镜像仓库中出现对应版本的镜像信息时,说明镜像已成功推送。
3. 配置集群编辑
3.1 新建集群
当使用容器服务时,需要先创建集群,容器服务运行在集群中。一个集群由若干节点(云服务器)构成,可运行多个容器服务。
建议购买的集群至少满足以下要求:
缺少材料
3.2 新建命名空间
一个 Kubernetes 集群支持设置多个命名空间(Namespace),每个命名空间相当于一个相对独立的虚拟空间,不同空间的资源相互隔离互不干扰。
建议同一帆软应用下的所有组件,安装在同一腾讯云集群的同一命名空间下,且该命名空间中不再安装其他组件,实现多应用之间的资源隔离。
本节演示,在腾讯云集群中,新建一个名叫 ops-test 的 命名空间(如果已有命名空间,可跳过本节)。
登录 容器服务控制台,在左侧导航栏中选择「集群」,单击目标集群 ID,进入集群详情页。
选择左侧菜单栏中的「命名空间」,单击「新建」。
在新建命名空间页面中,设置名称为「ops-test」。如下图所示:
3.3 新建Secrets
Secret 可用于存储密码、令牌、密钥等敏感信息,降低直接对外暴露的风险。在下文 yam文件中需要用到。
登录 容器服务控制台,在左侧导航栏中选择「集群」,单击目标集群 ID,进入集群详情页。
选择左侧导航栏中的「配置管理 > Secret」,配置 Secret 信息即可创建。
配置项 | 说明 |
---|---|
名称 | 自定义名称 |
Secret类型 | 选择「Dockercfg」 |
生效范围 | 指定命名空间,选择3.3节新建的命名空间 |
镜像仓库域名 | 手动填写2.2节创建的镜像仓库地址前缀 例如: 仓库地址为fine-image-registry.tencentcloudcr.com/fanruan/fr 则仓库域名为fine-image-registry.tencentcloudcr.com |
用户名密码 | 登录腾讯云的用户名密码 |
详情请参见腾讯云文档:Secret 管理
3.4 新建 Nginx Ingress 实例
4. 安装组件编辑
4.1 创建存储
集群的存储管理是保存业务数据的重要组件,如果已有可用存储,可跳过本节内容。
本节演示,在腾讯云集群中,新建一个名叫 data 的 storageclass 作为帆软应用的存储。
登录 容器服务控制台,在左侧导航栏中选择「集群」,单击目标集群 ID,进入集群详情页。
选择左侧菜单栏中的「存储 > StorageClass」,在 StorageClass 页面单击「新建」。
在新建 StorageClass 页面中,配置 StorageClass 参数,示例名称为 data 。如下图所示:
详情请参见腾讯云文档:存储
4.2 生成YAML
信息 | 说明 | 示例 |
---|---|---|
镜像(必填) | ||
image | bi6/fr/fdl镜像仓库地址 例:fine-image-registry.tencentcloudcr.com/fanruan/fr | 2.3节推送的bi6/fr/fdl镜像仓库地址 |
imageTag | bi6/fr/fdl镜像版本 例:11.0-20230914 | 2.3节推送的bi6/fr/fdl镜像仓库中的镜像版本 |
imagePullPolicy | 镜像拉取策略 固定值:IfNotPresent | "IfNotPresent 是一种常见的默认策略。它表示如果本地节点上已经存在所需的镜像(在容器的镜像仓库中),则不再拉取新的镜像,而是使用已经存在的本地镜像。这可以提高部署速度,因为不需要从远程镜像仓库下载镜像。但请注意,如果本地不存在所需的镜像,容器将不会启动,因为它无法找到所需的镜像。 |
imagePullSecrets | 镜像拉取凭证 例:fine-image-secret | 3.4节生成的集群Secrets名称 |
存储(必填) | ||
storageClass | 存储类名称 例:data | 3.2节创建的storageclass名称 |
storage | 存储容量 例:10Gi | 3.2节创建的storageclass的存储容量 请按需填写,如不限制可不提供 |
skywalking | (可选,必须要已安装 elasticsearch和 skywalking 组件) | |
enabled | 开启 | |
filebeat | (可选, 必须要已安装 elasticsearch和 filebeat 组件) | |
sidecar | 开启 filebeat sidecar 模式 固定值:true | “true”表示开启 filebeat sidecar 模式抓取服务日志 |
image | filebeat镜像仓库地址 例:fine-image-registry.tencentcloudcr.com/fanruan/filebeat | 2.3节推送的filebeat镜像仓库地址 |
imageTag | filebeat镜像版本 例:11.0-20230914 | 2.3节推送的filebeat镜像仓库中的镜像版本 |
elasticSearch | ||