• 企业门户APP
  • 微服务部署

    使用console平台自动部署

    环境要求

    自动部署服务基于猪齿鱼devops-service改造,部署的服务均运行在Docker上,以Kubernetes作为容器的编排工具,需要集群中至少有一台安装了Helm。与猪齿鱼的部署条件整体一致,开放端口,节点数由猪齿鱼部署要求的4降到了3

    1. 硬件最低要求
      • 节点数量:3
      • 单节点内存信息:16G及以上
      • 单节点处理器信息:4核4线程及以上
      • 单节点硬盘:100G及以上
      • 只要现有节点内存与CPU总和大于上述节点要求即可。
    2. 软件要求
      • 系统版本:CentOS7.4及以上
      • Kubernetes:1.8.5及以上
      • Helm:2.8.2及以上
    3. 网络要求
      • 各个服务器能够访问外网
      • 各个服务器能够互相访问

    部署Kubernetes集群,安装基础环境

    一: 部署Kubernetes集群

    猪齿鱼k8s部署文档一致

    注意:

    1. 有些服务器已经安装了k8s,不必重新安装,可以使用Kubectl命令来测试

    2. 有的服务器只是安装了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部署文档一致

    注意:

    1. helm只需要在集群中的一台服务器上安装即可
    2. helm安装需要集群中的每台服务器上都安装有socat
    3. 如果部署中出现xxx is forbiden,考虑重新执行文档中关于account的部分
    三: NFS动态存储卷安装

    猪齿鱼NFS部署文档一致

    注意:

    1. 强烈建议安装完成后按照猪齿鱼文档进行测试
    2. nfs-server只需要在其中一台服务器上执行即可
    四: Redis部署

    猪齿鱼Redis部署文档一致,请勿修改name和namespace参数

    五:Mysql部署
    1. 创建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
    
    1. 部署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
    
    1. 部署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

      初始化数据根据部署版本参考更新日志获取更新日志

    2. 验证

    使用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集群中,并且进行管理,如下图

    参数说明:

    1. 选择集群:选择在组织层配置且已经激活的集群
    2. 数据库用户名: 部署的数据库的用户名
    3. 数据库密码:部署的数据库的密码
    4. 环境基地址:实例部署后会在集群上开启31190端口,用于接收外部请求,这里可以填写集群ip:31190(例如http://xx.x.xx.xx:31190),不过更建议的方式是填写该地址的代理地址
    5. 登录后跳转地址:实例部署后会在集群上开启30167端口,管理平台的访问,这里可以填写集群ip:30167(例如http://xx.x.xx.xx:30167),不过更建议的方式是填写该地址的代理地址
    6. 服务部署方式:
      • all in one: 部署hippius-all服务(海马汇功能的all版本)
      • 微服务部署:部署海马汇功能的单个服务
        • hippius-platform —通讯录服务
        • hippius-device — 设备管理服务
        • hippius-pushcenter — 消息推送服务
        • hippius-app-manage — app管理服务
        • hippius-statistics — 数据统计服务
        • hippius-submenu — 子应用管理服务
        • hippius-elasticsearch — es服务

    三:点击 立即部署 会把服务部署到选择的集群中