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

目录:

1. 概述编辑

1.1 版本

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

1.2 应用场景

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

ACK 是阿里云提供的容器服务,基于 Kubernetes 构建。它允许用户在阿里云上轻松部署、管理和扩展容器化应用程序。

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

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_opa可选与elasticSearch组件配套安装,用于提供链路追踪功能

2.2 创建镜像仓库

1)创建命名空间

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

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

  • 登录容器镜像服务控制台。在顶部菜单栏,选择所需地域。在左侧导航栏,选择实例列表。

  • 在实例列表页面单击目标企业版实例。(若无企业版实例,可参考阿里云文档创建:使用企业版实例推送和拉取镜像。)

  • 在企业版实例管理页面选择「仓库管理>命名空间」。单击「创建命名空间」。

  • 设置命名空间名称、是否自动创建仓库、默认仓库类型。单击「确定」。即可在该实例下创建一个命名空间。

2)创建镜像仓库

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

  • 登录容器镜像服务控制台。在顶部菜单栏,选择所需地域。在左侧导航栏,选择实例列表。

  • 在实例列表页面单击目标企业版实例。选择「仓库管理>镜像仓库」。

  • 点击「创建镜像仓库」,选择上一步创建的命名空间,建议根据镜像名称设置仓库名称。

  • 点击「下一步」,选择代码源为「本地仓库」,点击「创建镜像仓库」即可。

2.3 推送镜像

点击对应镜像仓库后,即可查看仓库镜像指南相关指令。

请参考该镜像指南,将2.1节帆软提供的组件镜像推送到阿里云镜像仓库中。

详情请参见阿里云文档:使用企业版实例推送和拉取镜像

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

3. 配置集群编辑

3.1 新建集群

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

3.2 新建命名空间

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

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

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

  • 登录容器服务管理控制台单击集群名称进入集群。

  • 在左侧导航栏单击命名空间与配额,单击「创建」。

  • 在创建命名空间页面中,设置名称为「fanruan-test」。点击「确定」。

详情请参见阿里云文档:管理命名空间与配额

    3.3 新建保密字典

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

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

    在左侧导航栏选择「配置管理 > 保密字典」,选择所属命名空间后,单击右上角的创建,配置信息即可创建。

    配置项
    说明
    名称自定义名称
    类型选择「私有镜像仓库登录密钥」
    镜像仓库

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

    例如:fineops-registry.cn-hangzhou.ce.aliyuncs.com

    用户名密码登录阿里云的用户名密码

    详情请参见阿里云文档:管理保密字典

    4. 安装组件编辑

    4.1 创建存储类

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

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

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

    • 在左侧导航栏选择「存储>存储类」,在存储类页面单击「创建」。配置参数,示例名称为 data 。如下图所示:

    详情请参见阿里云文档:存储

    4.2 生成YAML

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

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

    信息说明示例
    镜像(必填)
    image

    bi6/fr/fdl镜像仓库地址

    例:fineops-registry.cn-hangzhou.ce.aliyuncs.com/fanruan_ops/fr

    2.3节推送的bi6/fr/fdl镜像仓库地址


    imageTag

    bi6/fr/fdl镜像版本

    例:11.0-20230914

    2.3节推送的bi6/fr/fdl镜像仓库中的镜像版本

    imagePullPolicy

    镜像拉取策略

    固定值:IfNotPresent

    "IfNotPresent 是一种常见的默认策略。它表示如果本地节点上已经存在所需的镜像(在容器的镜像仓库中),则不再拉取新的镜像,而是使用已经存在的本地镜像。这可以提高部署速度,因为不需要从远程镜像仓库下载镜像。但请注意,如果本地不存在所需的镜像,容器将不会启动,因为它无法找到所需的镜像。
    imagePullSecrets

    镜像拉取凭证

    例:fanruan-aliyun-repo

    3.3节生成的集群保密字典名称

    存储(必填)
    storageClass

    存储类名

    例:data

    4.1节创建的存储类名称

    storage

    存储容

    例:10Gi

    4.1节创建的存储类的存储容量

    请按需填写,如不限制可不提供

    skywalking(可选,必须要已安装 elasticsearch和 skywalking 组件
    enabled

    是否开启链路追踪

    固定值:true

    “true”表示开启 SkyWalking 链路追踪

    SkyWalking 是一个开源的应用性能监控系统,它可以用于分析和监控分布式应用程序的性能和调用链

    service

    服务名称

    例:ops-swoap.ops

    -

    filebeat(可选, 必须要已安装 elasticsearch和 filebeat 组件
    sidecar

    开启 filebeat sidecar 模式

    固定值:true

    “true”表示开启 filebeat sidecar 模式抓取服务日志
    image

    filebeat镜像仓库地址

    例:fine-image-registry.tencentcloudcr.com/fanruan/filebeat

    2.3节推送的 filebeat 镜像仓库地址

    imageTag

    filebeat镜像版本

    例:v20.0.4-8.3.3

    2.3节推送的filebeat镜像仓库中的镜像版本

    elasticSearch


    elasticSearch相关信息

    elasticSearch的主机、端口、用户名、密码、通信协

    形如:

    elasticSearch: 

           host: elasticsearch-master-headless

           port: 9200

           username: elastic

           password: elastic

           protocol: http

    4.3 YAML创建资源

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

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

    • 在左侧导航栏选择「工作负载>有状态」,选择所属命名空间。

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

    4.4 新建 Nginx Ingress

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

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

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

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

    1)安装 NginxIngress 组件(如果已经安装,可跳过)

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

    • 选择左侧菜单栏中的「运维管理>组件管理」,勾选「网络>Nginx Ingress Controller」,点击「安装」。

    2)确认阿里云ACK集群域名

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

    • 选择左侧菜单栏中的「集群信息」,在「基础信息」中查看该集群的域名,并记录下来。

    3)新建 Nginx Ingress 实例

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

    • 选择左侧菜单栏中的「网络>路由」,选择所属命名空间后,单击「创建 Ingress」,在创建 Ingress对话框配置路由。

    • 网关类型选择「Nginx」;名称自定义;域名填写上一步获取的,其中*改为组件名称;路径修改为/webroot,端口设置为8080

    详情请参见阿里云文档:创建Nginx Ingress

    4.5 访问帆软应用

    此时即可访问fr工程。

    1)获取访问路径

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

    • 选择左侧菜单栏中的「网络>路由」,选择所属命名空间。

    • 查看fr组件的规则地址,在后面拼接/decision,即为工程实际的访问地址。

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

    2)访问工程

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