本帖最后由 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.tgz
复制代码helm 会输出安装的结果
也可以通过 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 服务,服务于活字格的日志模块。
当看到咱们熟悉的管理控制台登录界面时,说明咱们得安装已经顺利完成!接下来,就让我们了解一下活字格在 k8s 下的负载策略吧~
|