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

目录:

1. 概述编辑


2. 准备镜像编辑

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

2.1 使用前提

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

2.2 获取镜像

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

注:FineBI中自带FineReport、FineDataLink功能点,FineReport中自带FineDataLink功能点。

所需镜像
是否必需说明
bi6/fr/fdl
必需FineBI/FineReport/FineDataLink的工程节点组件,其中不带任何的demo数据
elasticsearch可选

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

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

filebeat可选与elasticSearch组件配套安装,用于抓取工程日志到elasticSearch
skywalking_opa可选与elasticSearch组件配套安装,用于提供链路追踪功能

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. 配置集群编辑

3.1 使用前提

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

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

3.2 创建命名空间

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

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

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

1)创建项目

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

2)创建命名空间

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

3.3 生成YAML

在 Kubernetes 中,用户可以使用 YAML 文件来定义和创建各种资源。

本节提供必要的信息清单,请参考下表逐项对照收集。收集后的信息请提供给帆软技术同学,协助生成正式的 YAML 文件。

信息
说明示例
镜像

image

imageTag

2.3节上传的镜像仓库地址和版本

例如:fr:11.0-20230914

imagePullSecrets(可选)

镜像拉取凭证

应用名fullnameOverride

待创建的应用名称,自定义

例如:fr

存储(二选一)data.volumeClaimTemplates.storageclass

1)选择使用动态存储

2)准备一个 storageclass 名称,作为帆软应用的存储,自定义

例如:data

3)按需准备 storage 大小,可不填

data.volumeClaim.claimName

1)选择使用静态存储

2)volumeClaimTemplates.enabled值为false

3)准备一个claimName ,作为帆软应用的存储,自定义

例如:data

用户serviceAccount.create
serviceAccount.name
建议使用默认配置,创建一个应用同名用户
服务service.enabled建议使用默认配置,创建一个应用同名服务
ingress(可选)

ingress.enable

ingress.className

1) 选择创建一个ingress

ingress.enable=true

准备一个ingress.className,自定义,例如:fr

2)选择不创建ingress

ingress.enable=false,后续也可手动创建






3.3 创建工作负载

StatefulSet是为了适应有状态应用程序而设计的,通过为每个Pod提供唯一的标识和有序的部署,它提供了更好的稳定性和可维护性。

1)创建Headless服务

StatefulSets通过Headless服务为每个Pod提供了唯一的网络标识。这对于需要节点间通信的应用程序非常有用。

选择左侧「服务」,点击「创建」,创建一个「Headless」服务。

选择3.2节创建的命名空间「fanruan-test」,自定义服务名称为「fine-nginx」,设置服务端口,点击「创建」即可。

2)创建statefulset工作负载

StatefulSet适用于需要持久化存储和唯一网络标识的有状态应用程序,推荐使用。

在 Kubernetes 中,用户可以使用 YAML 文件来定义和创建各种资源。

本节提供必要的信息清单,请参考下表逐项对照收集。收集后的信息请提供给帆软技术同学,协助生成正式的 YAML 文件。

信息
说明示例
镜像

imagebi6/fr/fdl镜像仓库地址
imageTag

bi6/fr/fdl镜像版本


imagePullSecrets

镜像拉取凭证


工作负载

namespace命名空间名称
headless

headless服务信息,包括:

服务名称、目标端口、协议类型


StatefulSet

工作负载信息,包括:

负载名称、容器名称、容器端口


存储


存储卷名称

持久卷声明