[]
        
(Showing Draft Content)

安装

重要说明

  • 活字格负载均衡仅支持Linux下的K8S服务器。

  • 当前版本的活字格负载均衡配置不兼容以前的版本,不能从以前的版本直接进行升级。

  • 活字格负载均衡基于会话保持功能,请保证链路中的转发都支持会话保持(粘性会话)功能。

  • 本安装脚本可能在多数的已有K8S系统中无法直接安装,请修改相应的配置文件。

  • 活字格负载均衡镜像不支持TLS1.1及以下的协议。一些外部服务如数据库等需要至少支持TLS1.2。

  • 负载均衡下,活字格的日志服务暂不支持多个副本进行负载均衡。

  • 负载均衡下,服务器重启并不会导致客户端退出登录,页面操作重启只有操作的人会自动登出,其他人不会自动登出。

  • 负载均衡日志不支持Elasticsearch数据库。

安装活字格服务

  • 需要准备一个共享文件服务器,如NAS、NFS等,如果使用其他协议的共享文件服务器,需要修改yaml文件中的对应设置(本文以NFS协议的NFS Server为文件服务器做介绍,IP地址为:10.32.5.215)。

  • 需要有K8S环境(本文不介绍K8S的安装,如有需要请参考相关的技术文档安装K8S,本文的Master主机为:10.32.5.215)。

  • 如果可以访问公网,可以直接使用活字格官方镜像服务器地址:https://hub.docker.com/r/grapecitysoftware/hzg-k8s。如果不能访问公网,则需要准备一个镜像仓库,可以使用阿里云、华为云、dockerhub等免费的镜像仓库,或者自己安装一个镜像仓库。

操作步骤

1.创建共享文件存储目录。

在文件服务器上创建一个共享文件的存储目录,如:/FgcK8sLBRoot,并设置相应的权限,K8S挂载后需要有读写权限。

在这个共享文件夹下创建5个子目录:ForguncyAttach,ForguncyLogs,ForguncyRestore,ForguncySites,ForguncySitesBin。

上面的5个目录也可以分别创建在不同的文件服务器上,或者不同的目录下,根据实际情况创建即可,如下图。

共享文件的用途请参考第四十九章 负载均衡

image

相关的参考命令(需要根据实际情况进行修改):

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)

image

相关的参考命令(需要根据实际情况进行修改)

#编辑文档
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.2.0.zip,并解压到本地目录(如本文的/root/mychart-forguncy下),会看到如下目录文件:

image

详细设置如下:

  • 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的会话保持功能,参考第四十九章 负载均衡的会话保持介绍。