微服务部署
使用console平台自动部署
环境要求
自动部署服务基于猪齿鱼devops-service改造,部署的服务均运行在Docker上,以Kubernetes作为容器的编排工具,需要集群中至少有一台安装了Helm。与猪齿鱼的部署条件整体一致,开放端口,节点数由猪齿鱼部署要求的4降到了3
- 硬件最低要求
- 节点数量:3
- 单节点内存信息:16G及以上
- 单节点处理器信息:4核4线程及以上
- 单节点硬盘:100G及以上
- 只要现有节点内存与CPU总和大于上述节点要求即可。
- 软件要求
- 系统版本:CentOS7.4及以上
- Kubernetes:1.8.5及以上
- Helm:2.8.2及以上
- 网络要求
- 各个服务器能够访问外网
- 各个服务器能够互相访问
部署Kubernetes集群,安装基础环境
一: 部署Kubernetes集群
与猪齿鱼k8s部署文档一致
注意:
有些服务器已经安装了k8s,不必重新安装,可以使用Kubectl命令来测试
有的服务器只是安装了kubectl命令,但是节点上的k8s客户端没有连接到集群的k8s服务上,可以使用kubectl get nodes命令来检查。如果没有节点信息,则需要对k8s进行配置,以华为云k8s集群服务器为例,需要将k8s的配置文件”kubectl”放到/home路径下,然后执行以下命令:
cd /home
chmod +x kubectl
mv -f kubectl /usr/local/bin
mkdir -p $HOME/.kube
mv -f kubeconfig.json $HOME/.kube/config
二: helm部署
与猪齿鱼Helm部署文档一致
注意:
- helm只需要在集群中的一台服务器上安装即可
- helm安装需要集群中的每台服务器上都安装有socat
- 如果部署中出现xxx is forbiden,考虑重新执行文档中关于account的部分
三: NFS动态存储卷安装
与猪齿鱼NFS部署文档一致
注意:
- 强烈建议安装完成后按照猪齿鱼文档进行测试
- nfs-server只需要在其中一台服务器上执行即可
四: Redis部署
与猪齿鱼Redis部署文档一致,请勿修改name和namespace参数
五:Mysql部署
- 创建mysql所需PVC
helm install c7n/persistentvolumeclaim \
--set accessModes={ReadWriteOnce} \
--set requests.storage=2Gi \
--set storageClassName=nfs-provisioner \
--version 0.1.0 \
--name c7n-mysql-pvc \
--namespace c7n-system
部署mysql(与猪齿鱼部署的name不同)
- 编写配置文件
mysql.yaml
- 编写配置文件
config:
character_set_server: utf8mb4
collation_server: utf8mb4_general_ci
lower_case_table_names: 1
max_allowed_packet: 32M
max_connections: 1500
env:
MYSQL_ROOT_PASSWORD: password
persistence:
enabled: true
existingClaim: c7n-mysql-pvc
service:
enabled: ture
- 执行安装
helm install c7n/mysql \
-f mysql.yaml \
--version 0.1.2 \
--name mysql \
--namespace c7n-system
部署mysql的nodeport(可选)
- 新建mysql-nodeport.yaml文件,粘贴以下内容:
apiVersion: v1 kind: Service metadata: name: mysql-nodeport namespace: c7n-system spec: externalTrafficPolicy: Cluster ports: - name: http nodePort: 30306 port: 3306 protocol: TCP targetPort: 3306 selector: choerodon.io/infra: mysql choerodon.io/release: mysql sessionAffinity: None type: NodePort status: loadBalancer: {}
- 部署
kubectl apply -f mysql-nodeport.yaml
部署之后可以通过30306端口进行远程连接
- 登录mysql,初始密码为password
初始化数据根据部署版本参考更新日志获取更新日志
验证
使用k8s命令:kubectl get po -n c7n-system
来查看实例运行状态,redis和mysql均为 1 / 1 Running 即可
console 平台部署业务服务
一:激活集群
参考:https://docs.hips.hand-china.com/zh/docs/user-guide/development/clusters/
二: 部署业务服务
激活集群后,直接将所需的支持服务一键部署到自己的k8s集群中,并且进行管理,如下图
参数说明:
- 选择集群:选择在组织层配置且已经激活的集群
- 数据库用户名: 部署的数据库的用户名
- 数据库密码:部署的数据库的密码
- 环境基地址:实例部署后会在集群上开启31190端口,用于接收外部请求,这里可以填写集群ip:31190(例如
http://xx.x.xx.xx:31190
),不过更建议的方式是填写该地址的代理地址 - 登录后跳转地址:实例部署后会在集群上开启30167端口,管理平台的访问,这里可以填写集群ip:30167(例如
http://xx.x.xx.xx:30167
),不过更建议的方式是填写该地址的代理地址 - 服务部署方式:
- all in one: 部署hippius-all服务(海马汇功能的all版本)
- 微服务部署:部署海马汇功能的单个服务
- hippius-platform —通讯录服务
- hippius-device — 设备管理服务
- hippius-pushcenter — 消息推送服务
- hippius-app-manage — app管理服务
- hippius-statistics — 数据统计服务
- hippius-submenu — 子应用管理服务
- hippius-elasticsearch — es服务
三:点击 立即部署
会把服务部署到选择的集群中