• 开发区安装

    由于开发区各服务也需要进行更新和管理,所以将部署开发区和运行区的所有服务。本文以CentOS为例进行讲解。

    本章节介绍开发区的安装。


    开发区服务

    当前Choerodon开发区各服务版本信息如下:

    服务名 服务组 服务代码 版本号
    注册服务 com.choerodon.choerodoncloud choerodon-register-server  1.2.0
    管理服务 com.choerodon.choerodoncloud choerodon-manager-service  1.2.0
    配置服务 com.choerodon.choerodoncloud choerodon-config-server 1.2.0
    用户服务 com.choerodon.choerodoncloud choerodon-user-service  1.2.11
    授权服务 com.choerodon.choerodoncloud choerodon-oauth-server  1.2.1
    网关服务 com.choerodon.choerodoncloud choerodon-api-gateway  1.2.2
    消息服务 com.choerodon.choerodoncloud choerodon-event-store-service  1.2.1
    框架服务 com.choerodon.choerodoncloud choerodon-framework-service 1.2.1
    用户管理服务 com.choerodon.choerodoncloud choerodon-user-admin-service   1.2.0
    K8S消息收集 com.choerodon.devops  k8s-informer  V0.1.1
    Gitlab服务 com.choerodon.devops  choerodon-gitlab-service   1.1.0
    K8S服务 com.choerodon.devops  devops-kubernetes-service 1.1.0
    文件服务 com.choerodon.devops  choerodon-file-service  1.1.0
    开发服务 com.choerodon.devops  choerodon-devops-service   1.1.0
    部署服务 com.choerodon.devops  devops-deploy-service 1.1.6
    SonarQube服务 com.choerodon.insight  data-sonar-service   1.0.1
    数据整合服务 com.choerodon.insight  data-intergration-service 1.0.0
    数据提供服务 com.choerodon.insight  data-provide-service  1.0.1
    数据操作服务 com.choerodon.insight data-operation-service  1.0.0
    看板服务 com.choerodon.kanban  choerodon-kanban-service  1.1.0
    移动服务 com.choerodon.mobile  mobile-cloud-service  1.0.0
    框架前端 com.choerodon.choerodoncloud choerodoncloud-front   1.2.2
    开发前端 com.choerodon.devops  devops-front  1.1.3
    部署前端 com.choerodon.devops  deploy-front  1.1.5
    洞察前端 com.choerodon.insight  analysis-insight-front   1.0.0
    监控前端 com.choerodon.insight  monitor-front 1.0.0
    看板前端 com.choerodon.kanban  choerodon-kanban-front  1.1.0
    移动前端 com.choerodon.mobile  mobile-front  1.0.0

    硬件需求

    存储

    存储空间的大小主要取决于你将存储的docker image,Gitlab所存储的Git仓库以及使用文件服务时上传的文件大小。但是你应该考虑多留一些空间用来存储备份。 除此之外你还可以挂在一个支持NFS的分卷,比如NAS、 SAN、AWS、EBS。

    CPU

    将所有服务运行起来,一定要注意当前集群内至少有16C可用。

    内存

    安装使用Choerodon开发区所有应用需要至少50GB可用内存(RAM + Swap)! 由于操作系统和其他正在运行的应用也会使用内存, 所以安装Choerodon开发区前一定要注意当前集群内至少有70GB的可用内存. 少于70GB内存会导致在部署后Pod一直处于等待状态或者在使用中出现各种不可预知的问题。

    Kubernetes v1.8.5

    搭建Devops平台时,默认已经搭建好K8S集群,若未搭建请移步K8S集群搭建


    依赖组件

    名称 版本
    Gitlab 10.2.0
    Gitlab Runner 10.1.0
    SonarQube 6.5
    Harbor(可选) 1.1.1
    监控 1.0.0
    日志 1.0.0

    安装所需软件及文件

    若选择其他存储方式或已有NFS Server请跳过此步。

    1. 复制搭建K8S集群时所用到的inventory/hosts文件内容到本项目的inventory/hosts文件中。添加[nfs]分区,该分区只能添加一个节点,[nfs]分区节点即为提供nfs服务的节点。
    2. 修改inventory/vars.yml文件,将不需要部署的资源enable置为false,这里会自动创建所需目录;请设置nfs.ip属性,默认为指定节点ipv4地址;计算包含所有各节点的子网掩码将值赋予nfs.client_net,默认为”*“即所有主机都可以访问。
    3. 执行以下命令搭建nfs

      ansible-playbook -i inventory/hosts -e @inventory/vars.yml nfs-server.yml
      

    执行安装步骤

    1. 修改inventory/hosts文件,其中[dev]分区只能添加一个节点且该节点可以使用kubectl命令。
    2. 确认所要部署的资源(mysql、rabbitmq、redis、zookeeper、kafka、sonarqube,minio),若资源已有不需要部署,请在inventory/vars.yml文件中将资源enable置为false
    3. 执行以下命令搭建开发区所需资源

      ansible-playbook -i  inventory/hosts -e @inventory/vars.yml dev-resource.yml
      
    4. 手动部署harbor(外部数据库要手工初始化)参考链接

    5. 手动部署Gitlab,等Devops所有服务部署后再配置oauth授权(Mysql 5.6需要转表)参考链接

      搭建完成Gitlab完成后创建一个名为template的Public Group,将http://git.choerodon.com.cn/template库中所有的仓科克隆并推送到新搭建的Gitlab仓库中,注意这个git库也应是public的,这样开发服务才能正常使用。

    6. 手动部署Gitlab Runner参考链接

    7. 配置SonarQube参考链接

    8. 手动部署监控参考链接

    9. 手动部署日志参考链接

    10. 创建开发区所需数据库

      • 若使用容器运行的mysql,可以参照以下命令进入容器创建数据库

        查看pod名称,进入容器
        kubectl get po -n devops
        kubectl exec -it [PodName] -n devops bash
        进入mysql命令行
        mysql -uroot -p${MYSQL_ROOT_PASSWORD}
        
      • 创建choerodoncloud用户及数据库

        CREATE USER 'choerodoncloud'@'%' IDENTIFIED BY 'choerodonchoerodon123';
        CREATE DATABASE choerodon_user_service DEFAULT CHARACTER SET utf8;
        CREATE DATABASE choerodon_manager_service DEFAULT CHARACTER SET utf8;
        CREATE DATABASE choerodon_event_service DEFAULT CHARACTER SET utf8;
        CREATE DATABASE choerodon_framework_service DEFAULT CHARACTER SET utf8;
        GRANT ALL PRIVILEGES ON choerodon_user_service.* TO choerodoncloud@'%';
        GRANT ALL PRIVILEGES ON choerodon_manager_service.* TO choerodoncloud@'%';
        GRANT ALL PRIVILEGES ON choerodon_event_service.* TO choerodoncloud@'%';
        GRANT ALL PRIVILEGES ON choerodon_framework_service.* TO choerodoncloud@'%';
        CREATE DATABASE choerodon_devops_service DEFAULT CHARACTER SET utf8;
        CREATE DATABASE devops_portal DEFAULT CHARACTER SET utf8;
        CREATE DATABASE choerodon_kanban_service DEFAULT CHARACTER SET utf8;
        CREATE DATABASE devops_operation_portal DEFAULT CHARACTER SET utf8;
        CREATE DATABASE devops_deploy_service DEFAULT CHARACTER SET utf8;
        CREATE DATABASE mobile_cloud_service DEFAULT CHARACTER SET utf8;
        GRANT ALL PRIVILEGES ON choerodon_devops_service.* TO choerodoncloud@'%';
        GRANT ALL PRIVILEGES ON devops_portal.* TO choerodoncloud@'%';
        GRANT ALL PRIVILEGES ON choerodon_kanban_service.* TO choerodoncloud@'%';
        GRANT ALL PRIVILEGES ON devops_operation_portal.* TO choerodoncloud@'%';
        GRANT ALL PRIVILEGES ON devops_deploy_service.* TO choerodoncloud@'%';
        GRANT ALL PRIVILEGES ON mobile_cloud_service.* TO choerodoncloud@'%';
        FLUSH PRIVILEGES;
        
    11. 修改inventory/config.yml文件中资源区域维护好相应参数。

    12. 执行以下命令开始开发区

      ansible-playbook -i  inventory/hosts -e @inventory/config.yml dev.yml