[]
活字格负载均衡仅支持Linux下的K8S服务器。
当前版本的活字格负载均衡配置不兼容以前的版本,不能从以前的版本直接进行升级。
活字格负载均衡基于会话保持功能,请保证链路中的转发都支持会话保持(粘性会话)功能。
本安装脚本可能在多数的已有K8S系统中无法直接安装,请修改相应的配置文件。
活字格负载均衡镜像不支持TLS1.1及以下的协议。一些外部服务如数据库等需要至少支持TLS1.2。
负载均衡下,活字格的日志服务暂不支持多个副本进行负载均衡。
负载均衡下,服务器重启并不会导致客户端退出登录,页面操作重启只有操作的人会自动登出,其他人不会自动登出。
需要准备一个共享文件服务器,如NAS、NFS等,如果使用其他协议的共享文件服务器,需要修改yaml文件中的对应设置(本文以NFS协议的NFS Server为文件服务器做介绍,IP地址为:10.32.5.215)。
需要有K8S环境(本文不介绍K8S的安装,如有需要请参考相关的技术文档安装K8S,本文的Master主机为:10.32.5.215)。
如果可以访问公网,华为云可以通过以下命令获取最新版本的活字格官方镜像:
docker pull swr.cn-east-3.myhuaweicloud.com/grapecity-software/hzg-k8s:10.0.5.0
如果不能访问公网,则需要准备一个镜像仓库,可以使用阿里云、华为云、Docker Hub等免费的镜像仓库,或者自己安装一个镜像仓库。
操作步骤
1.创建共享文件存储目录。
在文件服务器上创建一个共享文件的存储目录,如:/FgcK8sLBRoot,并设置相应的权限,K8S挂载后需要有读写权限。
在这个共享文件夹下创建5个子目录:ForguncyAttach,ForguncyLogs,ForguncyRestore,ForguncySites,ForguncySitesBin。
上面的5个目录也可以分别创建在不同的文件服务器上,或者不同的目录下,根据实际情况创建即可,如下图。
共享文件的用途请参考第四十九章 负载均衡。
相关的参考命令(需要根据实际情况进行修改):
sudo mkdir -p /FgcK8sLBRoot/ForguncyAttach
sudo mkdir -p /FgcK8sLBRoot/ForguncyLogs
sudo mkdir -p /FgcK8sLBRoot/ForguncyRestore
sudo mkdir -p /FgcK8sLBRoot/ForguncySites
sudo mkdir -p /FgcK8sLBRoot/ForguncySitesBin
sudo chown nobody:nogroup /FgcK8sLBRoot/*
sudo chmod -R 777 /FgcK8sLBRoot/*
2.导出共享目录,以便其他服务器进行挂载。
编辑/etc/exports文件,增加一行:
/FgcK8sLBRoot *(rw,sync,no_subtree_check)
相关的参考命令(需要根据实际情况进行修改)
#编辑文档
sudo vim /etc/exports
#增加一行
/FgcK8sLBRoot *(rw,sync,no_subtree_check)
#导出
sudo exportfs -arv
3.制作helm安装包并安装活字格服务。
活字格负载均衡服务使用helm进行安装和维护,首先需要安装helm工具。
#下载安装包并安装
wget https://get.helm.sh/helm-v3.14.0-linux-amd64.tar.gz
sudo tar -zxvf helm-v3.14.0-linux-amd64.tar.gz
sudo mv linux-amd64/helm /usr/local/bin/helm
#查看版本
helm version
下载活字格负载均衡服务器安装文件Hzg-K8S-HelmChart-10.0.102.0.zip,并解压到本地目录(如本文的/root/mychart-forguncy下),会看到如下目录文件:
详细设置如下:
values.yaml :为主要配置文件,如果使用离线仓库,请修改仓库地址和Tag,否则默认使用官网镜像,请将文件服务器地址改为实际使用的地址。
Chart.yaml:可以修改Chart的名称,一般不需要修改,保持默认。
service-redis.yml:默认启动一个redis服务,不需要的可以删除本文件,删除时将文件deployment-redis.yaml一并删除。
service-influx.yml:这是日志服务的service文件,负载均衡情况下,日志运行在一个独立的POD下,并且不支持负载均衡,只能有一个pod,一般不需要修改。
service-fgc.yml:活字格服务的service文件,一般不需要修改。
pvs.yaml:K8S的PV文件,请根据自身的存储情况进行修改,如果是NFS协议的文件服务,一般不需要修改。
pvcs.yaml:K8S的PVC文件,一般不需要修改。
deployment-redis.yaml:默认启动的redis的POD文件,不需要的话可以删除本文件,删除时将文件service-redis.yaml一并删除
deployment-influx.yaml:活字格日志的POD文件,一般不需要修改。
deployment-fgc.yaml:活字格服务的POD文件,一般不需要修改。
将上述文件修改完成后,使用helm命令打包并安装。
#如本文的安装文件存放在/root/mychart-forguncy下,则进入/root
cd /root/
#打包,执行下面打包命令后,会生成一个forguncy-k8s-server-10.0.0.0.tgz文件,即为helm的安装文件
helm package mychart-forguncy
#使用上面输出的forguncy-k8s-server-10.0.0.0.tgz文件,安装活字格服务(下面命令中的myfgcchart-test3为自定义的安装名称,建议不要太长)
helm install myfgcchart-test3 forguncy-k8s-server-10.0.0.0.tgz
执行上述命令后,活字格负载均衡服务已经安装完成,进入配置阶段。如果需要更新或者卸载,请执行对应的helm命令,如:
#使用新的values.yaml文件更新
helm upgrade myfgcchart-test3 /root/forguncy-k8s-server-10.0.0.0.tgz --values /root/mychart-forguncy/values.yaml
#卸载安装的活字格服务
helm uninstall myfgcchart-test3
查看已安装的文件服务,会看到如下列表,说明活字格云服务已经安装成功,可以访问如下链接进行设置:http://10.32.5.215:30904/UserService/AdminPortal/login。
#查看服务和pod
root@k8smaster-vm:~# kubectl get pod,svc
NAME READY STATUS RESTARTS AGE
pod/myfgcchart-test3-forguncy-pod-6db8fd66b6-b2xx2 1/1 Running 0 1m
pod/myfgcchart-test3-influx-pod-78d777b6d7-d22n7 1/1 Running 0 1m
pod/myfgcchart-test3-redis-pod-6c9dbbbf94-49ffr 1/1 Running 0 1m
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
service/myfgcchart-test3-forguncy-service NodePort 172.21.208.0 <none> 80:30904/TCP 1m
service/myfgcchart-test3-influx-service NodePort 172.29.213.206 <none> 22348:30128/TCP 1m
service/myfgcchart-test3-redis NodePort 172.16.251.201 <none> 6379:32633/TCP 1m
myfgcchart-test3-forguncy-pod-6db8fd66b6-b2xx2:是活字格服务的主程序POD,可以有多个副本。
myfgcchart-test3-influx-pod-78d777b6d7-d22n7:是活字格服务的日志系统POD,只能有一个副本。
myfgcchart-test3-redis-pod-6c9dbbbf94-49ffr:是redis服务,可选安装。
K8S下一版配置Ingress使用,请配置Ingress的会话保持功能,参考第四十九章 负载均衡的会话保持介绍。