找回密码
 立即注册

QQ登录

只需一步,快速开始

Gerald.Zhang
超级版主   /  发表于:2024-3-13 18:22  /   查看:393  /  回复:0
本帖最后由 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 目录如下:
iShot_2024-03-28_18.07.13.png

- 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文件,活字格服务的配置说明如下:
  1. image:
  2.   repository: forguncy-server-image-repository  #活字格 server 的镜像仓库地址
  3.   tag: 20240327_082604_k8s_loadbalance  #活字格 server镜像的tag
  4. influximage:
  5.   repository: forguncy-influx-image-repository  #influxDb的镜像仓库地址
  6.   tag: 20240327_082507_k8s_influx  #influxDb镜像的tag
  7. persistentVolume:
  8.   storage: "10Gi" #存储数据大小
  9.   nfs_atach:
  10.     path: "/fgc-k8s-lbroot/ForguncyAttach"  #附件存储路径
  11.     server: "198.19.249.12"  #共享存储服务器路径
  12.   nfs_log:
  13.     path: "/fgc-k8s-lbroot/ForguncyLogs"  #日志存储路径
  14.     server: "198.19.249.12"  #共享存储服务器路径
  15.   nfs_restore:
  16.     path: "/fgc-k8s-lbroot/ForguncyRestore"  #备份存储路径
  17.     server: "198.19.249.12"  #共享存储服务器路径
  18.   nfs_site:
  19.     path: "/fgc-k8s-lbroot/ForguncySites"  #网站存储路径
  20.     server: "198.19.249.12"  #共享存储服务器路径
  21.   nfs_bin:
  22.     path: "/fgc-k8s-lbroot/ForguncySitesBin"  #网站可执行文件存储路径
  23.     server: "198.19.249.12"  #共享存储服务器路径   
复制代码

需要留意,除非您需要自定义模板配置,否则 value.yaml 中的 key 值请不要更改,只修改对应的 value 即可。

打包并安装

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

之后运行 helm install 命令,将 活字格服务对应的 chart 进行 k8s 安装。
  1. # 将 test-k8s-server这个活字格服务 chart 进行安装,对应的名称为 fgc-chart-test1
  2. helm install fgc-chart-test1 test-k8s-server-1.1.0.tgz
复制代码
helm 会输出安装的结果
helm 安装.png

也可以通过 helm list 命令查看安装的服务
iShot_2024-03-29_14.51.49.png

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

iShot_2024-03-29_14.52.51.png

服务说明

我们会创建 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 对外暴露的端口。
管理控制台.png

当看到咱们熟悉的管理控制台登录界面时,说明咱们得安装已经顺利完成!接下来,就让我们了解一下活字格在 k8s 下的负载策略吧~

0 个回复

您需要登录后才可以回帖 登录 | 立即注册
返回顶部