Gerald.Zhang 发表于 2024-3-13 18:22:21

活字格10.0新功能解密:三十七、活字格服务器的 k8s 安装

本帖最后由 Gerald.Zhang 于 2024-4-7 17:54 编辑

咱们在上一章已经在 k8s-server上安装了 Helm 这个 k8s 的包管理工具。接下来,活字格的服务及其依赖的安装都会通过 Helm 进行。

ps:本章的内容会涉及到 k8s 与 Helm 中的许多概念,如果您感觉吃力,请访问对应的官网文档进行基础学习。

Chart 及目录说明

Helm 使用的包格式称为 chart。chart 就是一个描述 k8s 相关资源的文件集合。我们可以将活字格服务的所有 k8s 配置通过 Helm 打包成为一个 chart,然后直接安装即可。
chart 通过文件目录来进行聚合。目录名称就是 chart 名称。本示例的活字格服务 chart 目录如下:

- fgc-chart 是 chart 的根目录,也是 chart 最终打包后的名称。
- Chart.yaml 文件是 chart 必须的配置文件,维护了 chart 本身的版本与配置属性。
- values.yaml 则维护了当前 chart 所对应的服务所需要的自定义配置,服务全局变量,也可以覆盖 chart.yaml 本身的一些属性。咱们活字格服务的镜像,以及持久卷都会定义在当前文件中。
- template 目录存放的是服务真正的 k8s 配置模板,包括 deployment、service 以及 pv 与 pvc 的具体配置。模板可以通过预定义的 Values 对象访问到 values.yaml文件中的数据片段。
从 Chart 目录可知,template 中的配置与 value.yaml是我们关注的重点。一般情况下,template 的配置项无需修改,只修改 value.yaml 中的变量值即可。
活字格服务的values

对于 value.yaml文件,活字格服务的配置说明如下:
image:
repository: forguncy-server-image-repository#活字格 server 的镜像仓库地址
tag: 20240327_082604_k8s_loadbalance#活字格 server镜像的tag
influximage:
repository: forguncy-influx-image-repository#influxDb的镜像仓库地址
tag: 20240327_082507_k8s_influx#influxDb镜像的tag
persistentVolume:
storage: "10Gi" #存储数据大小
nfs_atach:
    path: "/fgc-k8s-lbroot/ForguncyAttach"#附件存储路径
    server: "198.19.249.12"#共享存储服务器路径
nfs_log:
    path: "/fgc-k8s-lbroot/ForguncyLogs"#日志存储路径
    server: "198.19.249.12"#共享存储服务器路径
nfs_restore:
    path: "/fgc-k8s-lbroot/ForguncyRestore"#备份存储路径
    server: "198.19.249.12"#共享存储服务器路径
nfs_site:
    path: "/fgc-k8s-lbroot/ForguncySites"#网站存储路径
    server: "198.19.249.12"#共享存储服务器路径
nfs_bin:
    path: "/fgc-k8s-lbroot/ForguncySitesBin"#网站可执行文件存储路径
    server: "198.19.249.12"#共享存储服务器路径   
需要留意,除非您需要自定义模板配置,否则 value.yaml 中的 key 值请不要更改,只修改对应的 value 即可。

打包并安装

配置完成后,在 chart 所在的根目录上,直接运行 helm package your-chart-name 即可将咱们的 k8s 配置打包成一个后缀为 tgz 的标准的 chart 文件。

之后运行 helm install 命令,将 活字格服务对应的 chart 进行 k8s 安装。
# 将 test-k8s-server这个活字格服务 chart 进行安装,对应的名称为 fgc-chart-test1
helm install fgc-chart-test1 test-k8s-server-1.1.0.tgzhelm 会输出安装的结果
也可以通过 helm list 命令查看安装的服务

至此,活字格服务已经成功安装在 k8s 集群上,我们可以通过 kubectl 命令来查看活字格服务的状态:


服务说明
我们会创建 3 个 deployment,分别是forguncy-pod,redis-pod,influx-pod:
- forguncy-pod:活字格服务的 pod集 声明,运行活字格的所有服务,包括控制台以及咱们发布的业务应用。
- redis-pod:redis 服务的 pod 集声明,运行 redis 服务,用于活字格应用负载均衡时的状态共享。功能性上和原有的负载均衡策略的 redis 类似。
- influx-pod:influxDB 服务的 pod 集声明,运行 influxDB 服务,服务于活字格的日志模块。
同时,针对于对应的 deployment,会创建相应的 service。服务会通过 service 暴露的端口进行提供。外部可以通过任何一个 k8s 节点 IP 加端口号的方式访问到活字格的服务,例如访问活字格管理控制台的访问地址为:http://198.19.249.12:32666/UserService/AdminPortal/。其中,198.19.249.12 是 k8s-server 的 IP,32666 是 forguncy-service 对外暴露的端口。
当看到咱们熟悉的管理控制台登录界面时,说明咱们得安装已经顺利完成!接下来,就让我们了解一下活字格在 k8s 下的负载策略吧~
页: [1]
查看完整版本: 活字格10.0新功能解密:三十七、活字格服务器的 k8s 安装