本文详述了苍穹应用平台在无gpass的情况下的安装步骤,包括资源规划、安装包获取、资源检查、正式安装、服务检查、环境初始化以及Kubernetes(K8s)的常见操作。强调操作系统需为CentOS7,资源要求至少8C/32G内存及200G磁盘。安装涉及解压安装包、启动安装器服务、配置并安装苍穹应用平台,并去除了gpass组件。服务检查涉及多个安装在主机和K8s上的服务。环境初始化涉及fileserver挂载存储、密码重置、集群管理配置等。还提供了K8s的常用操作命令和常见问题及解决方案。
最近使用安装器安装苍穹,没有安装gpass,整理了一下操作步骤。大家一起学习探讨。
安装器安装的苍穹,是基于kubenate(k8s)运行的。其中zookeeper,redis,rabbitmq,mysql/postgresql是安装在主机上的,剩下的mservice,web,mc,fileserver,logstash,kafka,es服务是在k8s上运行的。
一. 资源要求
在安装前,首先要规划好资源。
操作系统必须是centos7,X86,安装器不支持其他操作系统。
单机版苍穹,资源要求8C/32G内存,单台机器。
磁盘大小至少200G。
二. 安装包获取
安装器请联系金蝶相关同事获取下载链接。
三. 资源检查
前期工作,确认资源是否按要求准备:
查看操作系统,使用命令“uname -a”查看操作系统是否是X86,使用命令“cat /etc/redhat-release”查看操作系统版本是否centos7。
查看内存是否满足要求。使用命令“free -m”获取内存和内存使用情况。
查看磁盘空间是否满足要求,使用命令“df -h”获取,磁盘若开始空间不够,也可以在后续扩容。但尽量按要求往多上准备,确保安装和后续使用没有问题。
四. 苍穹安装
前期工作准备完毕,下面进入正式安装。
使用命令“tar -zxvf 文件名”解压下载的安装包。
进入到目录singularity/bin下,执行命令“./startup.sh”,安装前会校验当前主机的内核是否满足要求,若不满足,输入"Y/y",升级内核重启机器后,再执行这一步。
操作系统若内核满足要求,提示“输入安装器的密码”,输入密码后回车启动安装器服务。
执行完startup.sh脚本, 在执行日志上,可以获取安装器的访问地址。若地址有内外网,将IP改成对应的外网IP,将端口改成对应的映射端口。
打开浏览器,访问上一步获取的地址。
输入密码,登录安装器。进入到安装器界面
“选择产品”,部署模式选择“单台机器安装”,去掉gpass,只安装苍穹应用平台。点击“下一步”
“资源规划”,新增资源,维护当前机器的信息(注:主机IP是当前机器的IP,通过“hostname -I”或“ifconfig”命令获取,针对云厂商提供的主机,不要填写弹性IP)。安装组件选择“苍穹应用平台”,去掉“苍穹应用K8s Node”和“PostgresQSL Monitor”。
产品配置,主要维护信息如下,其他配置提供了默认信息,有需要可自行修改。
苍穹安装目录:填写挂载盘较大的目录下,自定义。
集群编码:对应MC的集群管理,自定义,填写有意义的编码即可。
苍穹租户ID:对应MC的租户管理,自定义,填写有意义的ID即可。
MC访问地址:默认是http://IP:8090/mc, 将IP换成访问地址,若区分内外网,换成外网IP,8090为默认端口,若做了端口映射,也替换成对应的映射端口即可。
管理员手机号:对应苍穹的administrator管理员手机号。
NetWork Interface:默认eth0,具体查看主机的网络。
Docker数据目录:填写挂载盘较大的目录下,自定义。
维护好苍穹服务信息后,点击“开始安装”进行苍穹安装。等待安装完成,若安装失败,请根据日志分析,也可在常见问题找有没有相同的问题。
点击“查看登录信息”,可以获取苍穹服务登录信息。
五. 服务检查
zookeeper服务:安装在主机,通过“service zookeeper status“或”systemctl status zookeeper“获取zk的服务状态。
redis服务:安装在主机,通过”service redis-6379 status“或”systemctl status redis-6379“获取redis的服务状态。
rabbitmq服务:安装在主机,通过”service rabbitmq-server status“或”systemctl status rabbitmq-server“获取rabbitmq的服务状态。
postgresql服务:安装在主机,通过”service postgresql status“或”systemctl status postgresql“获取postgresql的服务状态。
elasticsearch服务:安装在主机,通过”service es status“或”systemctl status es“获取elasticsearch的服务状态。
logstash服务:安装在主机,通过”service logstash status“或”systemctl status logstash“获取logstash服务状态。
kafka服务:安装在主机,通过”service kafka status“或”systemctl status kafka“获取kafka服务状态。
nginx服务:安装在主机,通过”service nginx status“或”systemctl status nginx“获取nginx服务状态。
mc, mservice, mservice-qing, fileserver, web服务:通过k8s启动,通过命令”kubectl get pods -n 集群编码“获取。(因fileserver未挂载磁盘,启动会异常,在环境初始化会调整)
六. 环境初始化(非Gpass)
苍穹服务安装完成后,还不能正常使用,需要按以下初始化服务。
fileserver挂载存储。确认fileserver的附件存储路径,可以跟苍穹安装目录放在一起,例如/kingdee/cosmic/fileserver。确认好附件挂载目录后,通过”kubectl edit deployment fileserver -n 集群编码“, 打开fileserver的编辑界面。添加如下内容:
约89行,在volumeMounts,添加一个挂载盘。
- mountPath: /kddata
name: fileserver
约101行,在volumes,添加一个磁盘。path的值是本地附件存储的路径。
- hostPath:
path: 附件在本地的存储路径
type: ""
name: fileserver
注意:1. 不能使用tab,只能使用space添加空格。2. 注意格式,每次缩进2个空格。
修改完成后,可通过”kubectl get pods -n 集群编码“获取最新的状态,等待fileserver的状态为Running。
在浏览器登录MC服务,默认账号/密码:admin/Kdadmin001,首次登录后,需要重置admin的密码,按要求重置密码即可。
确认机器连接。切换功能【组件维护】->【机器管理列表】,点击机器名称,在编辑界面点”测试连接“,确认能连接服务器。
修改集群管理配置。切换功能【集群管理】,点击集群编码,维护集群信息。
在【集群管理】,维护【应用仓库】信息。
所属机器:选择nginx服务器
路径:/var/appstatic/appstore/cosmic
地址:http://127.0.0.1:8090/appstore/cosmic
在【集群管理】,维护【静态资源】信息。
所属机器:选择nginx服务器
路径:/var/appstatic/static-files/cosmic/webapp
在【集群管理】,维护【高级配置信息】,该配置在苍穹补丁升级时使用到
mc.upgrade.appstore:应用仓库更新
mc.upgrade.staticresource:静态资源更新
mc.upgrade.clusterrestart:苍穹重启
mc.upgrade.datacenter:元数据升级
在【集群管理】,选择记录,点击发布集群。
访问苍穹,使用管理员登录苍穹,默认账号/密码:administrator/123456,首次登录需要激活和重置密码。
访问monitor,将苍穹的访问地址,把ierp改成monitor,默认账号/密码:admin/admin。
monitor初始化教程:https://vip.kingdee.com/link/s/M5a3b
切换功能【存储库配置】,修改数据库服务信息
点击右上角的“修改密码”,在弹出框,修改密码。修改密码后,会退出登录,重新登录验证新密码。
访问“日志查询”,确认日志是否能正常获取。
若日志获取异常:可根据文章https://vip.kingdee.com/link/s/MN8RF 分析处理。
七. K8S常见操作
获取命名空间(苍穹服务所在的命名空间默认是集群编码):kubectl get ns
创建命名空间:kubectl create ns 命名空间
获取命名空间下的pod:kubectl get pods -n 命名空间
获取命名空间下的deployment:kubectl get deployment -n 命名空间
获取命名空间下的statefulset:kubectl get statefulset -n 命名空间
获取命名空间下的service:kubectl get service -n 命名空间
获取k8s的节点:kubectl get nodes
获取deployment的信息:kubectl describe deployment 服务名 -n 命名空间
获取statefulset的信息:kubectl describe statefulset 服务名 -n 命名空间
获取pod的信息:kubectl describe pod 服务名 -n 命名空间
删除pod(删除后会重新拉取,相当于重启):kubectl delete pod pod名 -n 命名空间
编辑deployment服务:kubectl edit deployment 服务名 -n 命名空间
编辑statefulset服务:kubectl edit statefulset 服务名 -n 命名空间
登录容器后台:kubectl exec -it pod名 -n 命名空间 命令
查看日志:kubectl logs -f pod名 -n 命名空间
获取deployment的yaml文件:kubectl get deployment 服务名 -n 命名空间 -o yaml
示例:
获取所有服务的运行状态。所有服务可以通过 -A 替换 -n 参数,命令”kubectl get pods -A“,如下图:
查看服务日志,例如查看苍穹日志。首先需要获取苍穹服务的pod名。再根据获取的pod名获取日志。命令如下:
kubectl get pods -n 命名空间
kubectl logs -f pod名 -n 命名空间
连接容器后台。连接服务后台,可以通过kubectl exec -it pod名 -n 命名空间 命令,若要登录后台,命令可以是bash或sh这种不会结束的命令。例如登录苍穹后台,命令如下图:
苍穹修改CUSLIBS值,增加一个jar包。通过”kubectl edit deployment 服务名 -n 命令空间“打开编辑界面,编辑命令跟vi命令一样,需要注意两点:(1)空格只能用space键,不能用tab键。(2)格式要对齐,缩进是两个空格。如下图
编辑保存后,若语法没问题,退出编辑页面后会重启服务,若语法不符合要求,则会在编辑页面头部提示失败信息,根据要求调整。
八. 常见问题
问题:安装时提示"the NTP socket is in use exiting",如下图:
解决方法:在第二步“资源规划”,填写的服务IP不是真实IP,是弹性公网IP,将这个IP改成服务器内部IP,重新安装。
问题:安装完成后,服务状态都是Pending,CrashLoopBackOff。
解决方法:
确定是否按要求准备资源
确定查看node的节点状态是否是Ready状态
查看存储使用情况,存储使用率不能超过85%
推荐阅读