choerdon

硬件最低要求
节点数量:4
单节点内存信息:16G及以上
单节点处理器信息:4核4线程及以上
单节点硬盘:100G及以上(如使用NFS存储,那么NFS服务节点建议存储不小于512G)

只要现有节点内存与CPU总和大于上述节点要求即可。
软件要求
系统版本:CentOS7.4及以上
Kubernetes:1.10及以上
Helm:v3.2.4
网络要求
各个服务器之间内网互通内网带宽建议1Gbps以上
各个服务器能够访问外网
约定
非特别说明,请使用具有root权限的用户进行安装操作
部署教程以NFS类型的PV为例进行创建,所有非集群级对象都创建在c7n-system命名空间下
Kubernetes集群部署
前置要求与约定
集群会使用到的端口号。
各服务器时间与时区需一致,集群内服务器间时间差值不能大于1秒。
文档以 4 个 CentOS 7.4 系统服务器安装高可用 Kubernetes 集群进行讲解。
按照本文档安装 Kubernetes 集群时,Ansible 脚本会将服务器上防火墙关闭,请使用安全组进行网络权限控制。
Master(s) 服务器为 Kubernetes 控制服务器;Worker(s) 服务器为 Kubernetes 运算服务器;Etcd 服务器为组建Etcd 集群的服务器,Etcd 官方建议 Etcd 集群服务器个数为奇数个(比如1、3、5)以防止脑裂。
为安全考虑按本教程安装的 Kubernetes 集群只会在 Master(s) 服务器上配置 kubectl 命令所需 kubeconfig,故 Worker(s) 服务器默认是无法使用 kubectl 命令的。
环境规划
ip主机名角色
192.168.199.108yfm08master1 ,etcd
192.168.199.109yfm09master2 ,
192.168.199.110yfm10node1 , etcd
192.168.199.111yfm11node2 , etcd
环境准备
yum install git -y
git clone https://github.com/choerodon/kubeadm-ha.git
cd kubeadm-ha
./ansible/install.sh
配置 ansible inventory 文件
进入项目根目录
cp example/hosts.m-master.ip.ini ./inventory.ini
vi inventory.ini,然后按需修改

部署集群
ansible-playbook -i inventory.ini 90-init-cluster.yml

重置集群
ansible-playbook -i inventory.ini 99-reset-cluster.yml

查看等待 pod 的状态为 runnning
kubectl get po --all-namespaces -w

安装失败,就多安装几次再看看

在这里插入图片描述

Helm部署
部署客户端
在任意一个master节点执行以下命令
curl -L -o helm-v3.2.4-linux-amd64.tar.gz https://file.choerodon.com.cn/kubernetes-helm/v3.2.4/helm-v3.2.4-linux-amd64.tar.gz
tar -zxvf helm-v3.2.4-linux-amd64.tar.gz
sudo mv linux-amd64/helm /usr/bin/helm

验证
[root@yfm08 helm]# helm version
version.BuildInfo{Version:"v3.2.4", GitCommit:"0ad800ef43d3b826f31a5ad8dfbb4fe05d143688", GitTreeState:"clean", GoVersion:"go1.13.12"}
NFS动态存储卷

NFS 允许系统将其目录和文件共享给网络上的其他系统。通过NFS,用户和应用程序可以访问远程系统上的文件,就象它们是本地文件一样。

创建 NFS 服务器
在集群每一个节点安装nfs-utils
yum install -y nfs-utils
#创建共享目录
mkdir -p /data/nfsdata

#编写格式如下,NFS共享目录路径 客户机IP段(参数1,参数2,...,参数n)
vi /etc/exports
/data/nfsdata 192.168.199.108/16(rw,sync,insecure,no_subtree_check,no_root_squash)

systemctl start nfs-server

systemctl enable nfs-server #开机自启

验证
showmount -e 192.168.199.108
安装 nfs-client-provisioner
helm repo add c7n https://openchart.choerodon.com.cn/choerodon/c7n/  #获取失败
helm repo update
#在任意一个master节点
helm upgrade nfs-client-provisioner c7n/nfs-client-provisioner --install --set rbac.create=true --set persistence.enabled=true --set storageClass.name=nfs-provisioner --set persistence.nfsServer=192.168.199.108 --set persistence.nfsPath=/data/nfsdata --version 0.1.1 --namespace kube-system
分步部署Choerdon
Chartmuseum部署

vi chartmuseum.yaml

env:
  open:
    STORAGE: local
    AUTH_ANONYMOUS_GET: "true"
    DISABLE_API: "false"
    DEPTH: 2
  secret:
    BASIC_AUTH_PASS: password
    BASIC_AUTH_USER: choerodon
persistence:
  enabled: true
  storageClass: nfs-provisioner
ingress:
  enabled: true
  hosts:
    - name: study.choerodon.com
      path: /
执行部署
helm upgrade --install chartmuseum c7n/chartmuseum \
    -f chartmuseum.yaml \
    --version 2.15.0 \
    --create-namespace \
    --namespace c7n-system

验证部署:访问设置的域名

注意
需要在windows设置hosts,配置node节点ip与域名的映射
192.168.199.110 study.choerodon.com

或者配置DNS解析服务器,泛域名解析到node节点vip
部署minio

vi minio.yaml

mode: distributed
accessKey: "AKIAIOSFODNN7EXAMPLE"
secretKey: "wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY"
persistence:
    enabled: true
    storageClass: nfs-provisioner
ingress:
    enabled: true
    path: /
    hosts:
    - minio.choerodon.com

执行安装

helm install minio c7n/minio \
    -f minio.yaml \
    --version 5.0.4 \
    --namespace c7n-system
部署Redis
helm upgrade --install c7n-redis c7n/redis \
    --set persistence.enabled=true \
    --set persistence.storageClass=nfs-provisioner \
    --set service.enabled=true \
    --create-namespace \
    --version 0.2.5 \
    --namespace c7n-system
部署Mysql
创建mysql所需PVC
helm install c7n-mysql-pvc c7n/persistentvolumeclaim \
    --set accessModes={ReadWriteOnce} \
    --set requests.storage=2Gi \
    --set storageClassName=nfs-provisioner \
    --version 0.1.0 \
    --set name=c7n-mysql-pvc \
    --namespace c7n-system
编写配置文件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 upgrade --install c7n-mysql c7n/mysql \
    -f mysql.yaml \
    --create-namespace \
    --version 0.1.3 \
    --namespace c7n-system
创建nodeport

vi mysql-nodeport.yaml

apiVersion: v1
kind: Service
metadata:
  name: c7n-mysql-nodeport
  namespace: c7n-system
spec:
  type: NodePort
  ports:
  - protocol: TCP
    port: 30306
    targetPort: 3306
    nodePort: 30001
  selector:
    choerodon.io/release: c7n-mysql

kubectl apply -f mysql-nodeport.yaml
在这里插入图片描述

Harbor部署

harbor.yaml

expose:
  ingress:
    hosts:
      core: harbor.choerodon.com
externalURL: https://harbor.choerodon.com
persistence:
  persistentVolumeClaim:
    registry:
      storageClass: nfs-provisioner
    jobservice:
      storageClass: nfs-provisioner
    database:
      storageClass: nfs-provisioner
    redis:
      storageClass: nfs-provisioner
chartmuseum:
  enabled: false
clair:
  enabled: false
notary:
  enabled: false
harborAdminPassword: Harbor12345
执行安装
helm upgrade --install harbor c7n/harbor \
    -f harbor.yaml \
    --create-namespace \
    --version 1.2.3 \
    --namespace c7n-system

在这里插入图片描述

Gitlab部署
创建参数配置文件 gitlab.yaml
core:
  env:
    OAUTH_ENABLED: false
    OAUTH_AUTO_SIGN_IN_WITH_PROVIDER: "oauth2_generic"
    OAUTH_ALLOW_SSO: "'oauth2_generic'"
    OAUTH_BLOCK_AUTO_CREATED_USERS: false
    OAUTH_GENERIC_API_KEY: "gitlabhq"
    OAUTH_GENERIC_APP_SECRET: "gitlabhq"
    # choerodon api 访问地址
    OAUTH_GENERIC_SITE: "http://api.gitlab.choerodon.com"
    OAUTH_GENERIC_USER_INFO_URL: "/oauth/api/user"
    OAUTH_GENERIC_AUTHORIZE_URL: "/oauth/oauth/authorize"
    OAUTH_GENERIC_TOKEN_URL: "/oauth/oauth/token"
    OAUTH_GENERIC_ROOT_PATH: "'userAuthentication','principal'"
    OAUTH_GENERIC_ID_PATH: "'userAuthentication','principal','userId'"
    OAUTH_GENERIC_USER_NICKNAME: "username"
    OAUTH_GENERIC_USER_NAME: "usernmae"
    RACK_ATTACK_WHITELIST: 0.0.0.0/0
redis:
  internal:
    password: password
persistence:
  enabled: true
  persistentVolumeClaim:
    core:
      storageClass: nfs-provisioner
    redis:
      storageClass: nfs-provisioner
    database:
      storageClass: nfs-provisioner
expose:
  ingress:
    host: "gitlab.choerodon.com"
database:
  internal:
    password: "password"
执行安装
helm upgrade --install gitlab c7n/gitlab-ha \
    -f gitlab.yaml \
    --create-namespace \
    --version 0.2.2 \
    --namespace c7n-system

在这里插入图片描述

配置Choerodon Oauth认证
  • 以下操作须将Choerodon搭建完成后再继续进行,若未搭建,请跳过。
  • 配置Choerodon的Oauth认证后Gitlab的root用户是无法再通过Gitlab自有的界面进行登录的了。
更新Gitlab配置
helm upgrade gitlab c7n/gitlab-ha \
    -f <(helm get values gitlab -n c7n-system) \
    --set core.env.OAUTH_ENABLED=true \
    --version 0.2.2 \
    --reuse-values \
    --force \
    --namespace c7n-system

helm 3.2.x 使用上面的命令更新 Gitlab 配置会报错,如果使用 helm 3.2.x,请按照下面的步骤更新 Gitlab 配置

修改参数配置文件 gitlab.yaml
core:
  env:
    OAUTH_ENABLED: true
...
执行更新
helm upgrade --install gitlab c7n/gitlab-ha \
    -f gitlab.yaml \
    --create-namespace \
    --version 0.2.2 \
    --namespace c7n-system
添加Gitlab Client
  • 在执行里面前请根据实际情况修改参数 web_server_redirect_uri

  • 编写参数配置文件 gitlab-client.yaml

env:
  MYSQL_HOST: c7n-mysql.c7n-system.svc
  MYSQL_PASS: password
  MYSQL_PORT: 3306
  MYSQL_USER: root
  SQL_SCRIPT: |
    INSERT INTO hzero_platform.oauth_client (name,organization_id,resource_ids,secret,scope,authorized_grant_types,web_server_redirect_uri,access_token_validity,refresh_token_validity,additional_information,auto_approve,object_version_number,created_by,creation_date,last_updated_by,last_update_date,enabled_flag,time_zone)VALUES('gitlabhq',1,'default','gitlabhq','default','password,implicit,client_credentials,authorization_code,refresh_token','http://gitlab.choerodon.com',3600,3600,'{}','default',1,0,NOW(),0,NOW(),1,'GMT+8');
部署服务
helm upgrade --install gitlab-client c7n/mysql-client \
    -f gitlab-client.yaml \
    --version 0.1.0 \
    --namespace c7n-system
添加管理员用户关联
  • 执行完添加管理员用户关联步骤前请不要去Gitlab界面进行登录操作
helm upgrade --install gitlab-user-identities c7n/postgresql-client \
    --set env.PG_HOST=gitlabhq-gitlab-database.c7n-system.svc \
    --set env.PG_PORT=5432 \
    --set env.PG_USER=gitlab \
    --set env.PG_PASS=changeit \
    --set env.PG_DBNAME=gitlabhq_production \
    --set env.SQL_SCRIPT="\
        INSERT INTO identities(extern_uid\, provider\, user_id\, created_at\, updated_at) \
        VALUES ('1'\, 'oauth2_generic'\, 1\, NOW()\, NOW());" \
    --version 0.1.0 \
    --namespace c7n-system
Nexus 部署
创建参数配置文件 sonatype-nexus.yaml
ingress:
  enabled: true
  tls:
    enabled: false
initAdminPassword:
  enabled: true
  password: admin123
nexusProxy:
  enabled: false
  env:
    nexusHttpHost: nexus.choerodon.com
persistence:
  storageClass: nfs-provisioner
执行安装
helm upgrade --install sonatype-nexus c7n/sonatype-nexus \
    -f sonatype-nexus.yaml \
    --create-namespace \
    --version 3.4.0 \
    --namespace c7n-system

在这里插入图片描述

SonarQube部署
  • SonarQube并非猪齿鱼运行必要基础组件,你可以选择性进行安装。
  • 本事例中 PostgreSql 数据库搭建仅为快速体验 SonarQube 而编写,由于使用了NFS存储故并不能保证其稳定运行或数据不丢失,您可以参照 PostgreSql 官网进行搭建。
helm upgrade --install sonarqube c7n/sonarqube \
    --set persistence.enabled=true \
    --set persistence.storageClass=nfs-provisioner \
    --set postgresql.persistence.storageClass=nfs-provisioner \
    --set ingress.enabled=true \
    --set ingress.'hosts[0]'=sonarqube.choerodon.com \
    --set plugins.'install[0]'=https://file.choerodon.com.cn/choerodon-install/sonarqube/sonar-auth-choerodonoauth-plugin-1.5.3.RELEASE.jar \
    --create-namespace \
    --version 0.15.0-3 \
    --namespace c7n-system
安装SonarQube插件
  • 此步骤用于之前已经安装过SonarQube,只需安装插件的情况(如已经执行过上一步可跳过此步骤)
  • 进入SonarQube安装目录,下载https://file.choerodon.com.cn/choerodon-install/sonarqube/sonar-auth-choerodonoauth-plugin-1.5.3.RELEASE.jar 插件到\data\sonarqube\extensions\plugins目录
  • 重启SonarQube服务
配置 Choerodon 认证

编写参数配置文件 sonarqube-client.yaml

env:
  MYSQL_HOST: c7n-mysql.c7n-system.svc
  MYSQL_PASS: password
  MYSQL_PORT: 3306
  MYSQL_USER: root
  SQL_SCRIPT: |
    INSERT INTO hzero_platform.oauth_client (name,organization_id,resource_ids,secret,scope,authorized_grant_types,web_server_redirect_uri,access_token_validity,refresh_token_validity,additional_information,auto_approve,object_version_number,created_by,creation_date,last_updated_by,last_update_date,enabled_flag,time_zone)VALUES('sonar',1,'default','sonarsonar','default','password,implicit,client_credentials,authorization_code,refresh_token','http://sonarqube.choerodon.com',3600,3600,'{}','default',1,0,NOW(),0,NOW(),1,'GMT+8');

部署服务

helm upgrade --install sonarqube-client c7n/mysql-client \
    -f sonarqube-client.yaml \
    --version 0.1.0 \
    --create-namespace \
    --namespace c7n-system
配置用户权限

默认管理员用户名:admin,密码:admin

  • 使用管理员用户登录 SonarQube

  • 配置默认新建项目为Private, 进入 Administration -> Projects -> Management
    在这里插入图片描述

  • 更改默认权限模板, 进入 Administration -> Security -> Permission Templates ,去掉 sonar-users 用户组所有权限!
    在这里插入图片描述

配置认证插件
  • 使用管理员用户登录 SonarQube

  • 进入 Administration -> Configuration ->choerodon

  • 更改 Enabled 为启用

  • 更改 Choerodon url 为当前使用的 choerodon api getaway 地址;为:http://api.gitlab.choerodon.com

  • 更改 sonar url 为当前使用的SonarQube实际地址

  • 退出登录,测试使用choerodon登录,出现如下界面
    在这里插入图片描述

  • Choerodon权限与SonarQube权限为lazy分配,对于用户登录后在SonarQube没有权限的应用服务,从Choerodon代码质量详情界面,跳转登录到SonarQube即可。

Choerodon应用关联SonarQube项目

部署devops-service时添加SonarQube环境变量

SERVICES_SONARQUBE_URL: http://sonarqube.choerodon.com
SERVICES_SONARQUBE_USERNAME: admin
SERVICES_SONARQUBE_PASSWORD: admin

Choerodon 应用关联 SonarQube 针对 maven 和非 maven 项目有不同的配置

  • 如果是 maven 项目可以在 .gitlab-ci.yml 文件 build 阶段添加
mvn --batch-mode  verify sonar:sonar
-Dsonar.host.url=$SONAR_URL -Dsonar.login=$SONAR_LOGIN
-Dsonar.gitlab.project_id=$CI_PROJECT_PATH
-Dsonar.gitlab.commit_sha=$CI_COMMIT_SHA
-Dsonar.gitlab.ref_name=$CI_COMMIT_REF_NAME
-Dsonar.analysis.serviceGroup=$GROUP_NAME
-Dsonar.analysis.commitId=$CI_COMMIT_SHA
-Dsonar.projectKey=${GROUP_NAME}:${PROJECT_NAME}
  • 其他项目可以使用 sonar-scanner,在 .gitlab-ci.yml 文件 build 阶段添加
    ,请确保 cibase 的镜像版本大于等于 0.10.0
sonar-scanner -Dsonar.host.url=$SONAR_URL -Dsonar.login=$SONAR_LOGIN
-Dsonar.gitlab.project_id=$CI_PROJECT_PATH
-Dsonar.gitlab.commit_sha=$CI_COMMIT_SHA
-Dsonar.gitlab.ref_name=$CI_COMMIT_REF_NAME
-Dsonar.analysis.serviceGroup=$GROUP_NAME
-Dsonar.analysis.commitId=$CI_COMMIT_SHA
-Dsonar.projectKey=${GROUP_NAME}:${PROJECT_NAME}
-Dsonar.sources=.
  • sonar.projectKey= G R O U P N A M E : {GROUP_NAME}: GROUPNAME:{PROJECT_NAME}不可更改;否则,在查看代码质量时将获取不到对应数据
  • sonar.sources 指定扫描代码的路径
  • GROUP_NAME和PROJECT_NAME是devops-service内置的环境变量, GROUP_NAME=当前项目所在组织编码-当前项目编码,PROJECT_NAME=当前应用编码
  • 如果手动创建SonarQube项目,项目命名规则为:当前项目所在组织编码-当前项目编码:当前应用编码
微服务开发框架部署
创建数据库

编写参数配置文件 create-c7nfw-db.yaml

env:
  MYSQL_HOST: c7n-mysql.c7n-system.svc
  MYSQL_PORT: "3306"
  MYSQL_USER: root
  MYSQL_PASS: password
  SQL_SCRIPT: |
    CREATE USER IF NOT EXISTS 'choerodon'@'%' IDENTIFIED BY 'password';
    CREATE DATABASE IF NOT EXISTS hzero_platform DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
    CREATE DATABASE IF NOT EXISTS hzero_message DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
    CREATE DATABASE IF NOT EXISTS hzero_file DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
    CREATE DATABASE IF NOT EXISTS hzero_monitor DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
    CREATE DATABASE IF NOT EXISTS hzero_admin DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
    CREATE DATABASE IF NOT EXISTS asgard_service DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
    GRANT ALL PRIVILEGES ON hzero_platform.* TO choerodon@'%';
    GRANT ALL PRIVILEGES ON hzero_message.* TO choerodon@'%';
    GRANT ALL PRIVILEGES ON hzero_file.* TO choerodon@'%';
    GRANT ALL PRIVILEGES ON hzero_monitor.* TO choerodon@'%';
    GRANT ALL PRIVILEGES ON hzero_admin.* TO choerodon@'%';
    GRANT ALL PRIVILEGES ON asgard_service.* TO choerodon@'%';
    FLUSH PRIVILEGES;
执行安装
helm upgrade --install create-c7nfw-db c7n/mysql-client \
    -f create-c7nfw-db.yaml \
    --create-namespace \
    --version 0.1.0 \
    --namespace c7n-system \
    --set preJob.timeout=1000
部署 choerodo register

若需了解项目详情及各项参数含义,请移步 open-hand/choerodon-register

编写参数配置文件 choerodon-register.yaml

env:
  open:
    EUREKA_CLIENT_SERVICEURL_DEFAULTZONE: http://choerodon-register.c7n-system.svc:8000/eureka/

执行安装

helm upgrade --install choerodon-register c7n/choerodon-register \
    -f choerodon-register.yaml \
    --create-namespace \
    --version 0.24.0 \
    --namespace c7n-system

验证部署

curl -s $(kubectl get svc choerodon-register -o jsonpath="{.spec.clusterIP}" -n c7n-system):8001/actuator/health | jq -r .status
部署 choerodon platform
  • 编写参数配置文件 choerodon-platform.yaml
preJob:
  preInitDB:
    datasource:
      url: jdbc:mysql://c7n-mysql.c7n-system.svc:3306/?useUnicode=true&characterEncoding=utf-8&useSSL=false&useInformationSchema=true&remarks=true&serverTimezone=Asia/Shanghai
      username: choerodon
      password: password
      driver: com.mysql.jdbc.Driver
env:
  open:
    HZERO_PLATFORM_HTTP_PROTOCOL: http
    EUREKA_CLIENT_SERVICEURL_DEFAULTZONE: http://choerodon-register.c7n-system.svc:8000/eureka/
    SPRING_REDIS_HOST: c7n-redis.c7n-system
    SPRING_REDIS_PORT: 6379
    # 此db不可更改
    SPRING_REDIS_DATABASE: 1
    SPRING_DATASOURCE_URL: jdbc:mysql://c7n-mysql.c7n-system.svc:3306/hzero_platform?useUnicode=true&characterEncoding=utf-8&useSSL=false&useInformationSchema=true&remarks=true&serverTimezone=Asia/Shanghai
    SPRING_DATASOURCE_USERNAME: choerodon
    SPRING_DATASOURCE_PASSWORD: password
    HZERO_EXPORT_COREPOOLSIZE: 1
部署服务
helm upgrade --install choerodon-platform c7n/choerodon-platform \
    -f choerodon-platform.yaml \
    --create-namespace \
    --version 0.24.0 \
    --namespace c7n-system
验证
curl -s $(kubectl get po -n c7n-system -l choerodon.io/release=choerodon-platform -o jsonpath="{.items[0].status.podIP}"):8101/actuator/health | jq -r .status
部署 choerodon admin
  • 编写参数配置文件 choerodon-admin.yaml
preJob:
  preInitDB:
    datasource:
      url: jdbc:mysql://c7n-mysql.c7n-system.svc:3306/?useUnicode=true&characterEncoding=utf-8&useSSL=false&useInformationSchema=true&remarks=true&serverTimezone=Asia/Shanghai
      username: choerodon
      password: password
env:
  open:
    EUREKA_CLIENT_SERVICEURL_DEFAULTZONE: http://choerodon-register.c7n-system.svc:8000/eureka/
    HZERO_AUTO_REFRESH_SWAGGER_ENABLE: true
    # 服务启动时,是否同步父子角色权限
    CHOERODON_ROLE_PERMISSION_ASYNC: false
    SPRING_REDIS_HOST: c7n-redis.c7n-system
    SPRING_REDIS_PORT: 6379
    # 此db不可更改
    SPRING_REDIS_DATABASE: 1
    SPRING_DATASOURCE_URL: jdbc:mysql://c7n-mysql.c7n-system.svc:3306/hzero_admin?useUnicode=true&characterEncoding=utf-8&useSSL=false&useInformationSchema=true&remarks=true&serverTimezone=Asia/Shanghai
    SPRING_DATASOURCE_USERNAME: choerodon
    SPRING_DATASOURCE_PASSWORD: password

部署服务

helm upgrade --install choerodon-admin c7n/choerodon-admin \
    -f choerodon-admin.yaml \
    --create-namespace \
    --version 0.24.0 \
    --namespace c7n-system
部署 choerodon iam

编写参数配置文件 choerodon-iam.yaml

preJob:
  preInitDB:
    datasource:
      url: jdbc:mysql://c7n-mysql.c7n-system.svc:3306/?useUnicode=true&characterEncoding=utf-8&useSSL=false&useInformationSchema=true&remarks=true&serverTimezone=Asia/Shanghai
      username: choerodon
      password: password
      driver: com.mysql.jdbc.Driver
env:
  open:
    EUREKA_CLIENT_SERVICEURL_DEFAULTZONE: http://choerodon-register.c7n-system.svc:8000/eureka/
    CHOERODON_GATEWAY_URL: http://api.gitlab.choerodon.com
    SPRING_REDIS_HOST: c7n-redis.c7n-system.svc
    SPRING_REDIS_PORT: 6379
    # 此db不可更改
    SPRING_REDIS_DATABASE: 1
    SPRING_DATASOURCE_URL: jdbc:mysql://c7n-mysql.c7n-system.svc:3306/hzero_platform?useUnicode=true&characterEncoding=utf-8&useSSL=false&useInformationSchema=true&remarks=true&serverTimezone=Asia/Shanghai
    SPRING_DATASOURCE_USERNAME: choerodon
    SPRING_DATASOURCE_PASSWORD: password
    HZERO_EXPORT_COREPOOLSIZE: 1

部署 choerodon asgard
编写参数配置文件 choerodon-asgard.yaml
preJob:
  preInitDB:
    datasource:
      url: jdbc:mysql://c7n-mysql.c7n-system.svc:3306/?useUnicode=true&characterEncoding=utf-8&useSSL=false&useInformationSchema=true&remarks=true&serverTimezone=Asia/Shanghai
      username: choerodon
      password: password
      driver: com.mysql.jdbc.Driver
env:
  open:
    EUREKA_CLIENT_SERVICEURL_DEFAULTZONE: http://choerodon-register.c7n-system.svc:8000/eureka/
    SPRING_REDIS_HOST: c7n-redis.c7n-system.svc
    SPRING_REDIS_PORT: 6379
    SPRING_REDIS_DATABASE: 7
    SPRING_DATASOURCE_URL: jdbc:mysql://c7n-mysql.c7n-system.svc:3306/asgard_service?useUnicode=true&characterEncoding=utf-8&useSSL=false&useInformationSchema=true&remarks=true&serverTimezone=Asia/Shanghai
    SPRING_DATASOURCE_USERNAME: choerodon
    SPRING_DATASOURCE_PASSWORD: password

部署服务
helm upgrade --install choerodon-asgard c7n/choerodon-asgard \
    -f choerodon-asgard.yaml \
    --create-namespace \
    --version 0.24.0 \
    --namespace c7n-system
部署 choerodon swagger
编写参数配置文件 choerodon-swagger.yaml
env:
  open:
    EUREKA_CLIENT_SERVICEURL_DEFAULTZONE: http://choerodon-register.c7n-system.svc:8000/eureka/
    HZERO_OAUTH_URL: http://api.gitlab.choerodon.com/oauth/oauth/authorize
    SPRING_REDIS_HOST: c7n-redis.c7n-system.svc
    SPRING_REDIS_PORT: 6379
    # 此db不可更改
    SPRING_REDIS_DATABASE: 1
    SPRING_DATASOURCE_URL: jdbc:mysql://c7n-mysql.c7n-system.svc:3306/hzero_admin?useUnicode=true&characterEncoding=utf-8&useSSL=false&useInformationSchema=true&remarks=true&serverTimezone=Asia/Shanghai
    SPRING_DATASOURCE_USERNAME: choerodon
    SPRING_DATASOURCE_PASSWORD: password

部署服务
helm upgrade --install choerodon-swagger c7n/choerodon-swagger \
    -f choerodon-swagger.yaml \
    --create-namespace \
    --version 0.24.0 \
    --namespace c7n-system
部署 choerodon gateway

编写参数配置文件 choerodon-gateway.yaml

env:
  open:
    SPRING_REDIS_HOST: c7n-redis.c7n-system.svc
    SPRING_REDIS_PORT: 6379
    # 此db不可更改
    SPRING_REDIS_DATABASE: 4
    SPRING_DATASOURCE_URL: jdbc:mysql://c7n-mysql.c7n-system.svc:3306/hzero_platform?useUnicode=true&characterEncoding=utf-8&useSSL=false&useInformationSchema=true&remarks=true&serverTimezone=Asia/Shanghai
    SPRING_DATASOURCE_USERNAME: choerodon
    SPRING_DATASOURCE_PASSWORD: password
    EUREKA_CLIENT_SERVICEURL_DEFAULTZONE: http://choerodon-register.c7n-system.svc:8000/eureka/
ingress:
  enabled: true
  host: api.gitlab.choerodon.com

部署服务

helm upgrade --install choerodon-gateway c7n/choerodon-gateway \
    -f choerodon-gateway.yaml \
    --create-namespace \
    --version 0.24.0 \
    --namespace c7n-system
部署 choerodon oauth
编写参数配置文件 choerodon-oauth.yaml
env:
  open:
    # 如果使用https 该参数设置为true
    HZERO_OAUTH_LOGIN_ENABLE_HTTPS: false
    HZERO_OAUTH_LOGIN_SUCCESS_URL: http://app.choerodon.com
    HZERO_OAUTH_LOGIN_DEFAULT_CLIENT_ID: choerodon
    HZERO_GATEWAY_URL: http://api.gitlab.choerodon.com
    HZERO_OAUTH_BASE_URL: http://api.gitlab.choerodon.com/oauth
    EUREKA_CLIENT_SERVICEURL_DEFAULTZONE: http://choerodon-register.c7n-system.svc:8000/eureka/
    SPRING_DATASOURCE_URL: jdbc:mysql://c7n-mysql.c7n-system.svc:3306/hzero_platform?useUnicode=true&characterEncoding=utf-8&useSSL=false&useInformationSchema=true&remarks=true&serverTimezone=Asia/Shanghai
    SPRING_DATASOURCE_USERNAME: choerodon
    SPRING_DATASOURCE_PASSWORD: password
    SPRING_REDIS_HOST: c7n-redis.c7n-system
    SPRING_REDIS_PORT: 6379
    # 此db不可更改
    SPRING_REDIS_DATABASE: 3

部署服务

helm upgrade --install choerodon-oauth c7n/choerodon-oauth \
    -f choerodon-oauth.yaml \
    --create-namespace \
    --version 0.24.0 \
    --namespace c7n-system
部署 choerodon monitor

编写参数配置文件 choerodon-monitor.yaml

preJob:
  preInitDB:
    datasource:
      url: jdbc:mysql://c7n-mysql.c7n-system.svc:3306/?useUnicode=true&characterEncoding=utf-8&useSSL=false&useInformationSchema=true&remarks=true&serverTimezone=Asia/Shanghai
      username: choerodon
      password: password
env:
  open:
    EUREKA_CLIENT_SERVICEURL_DEFAULTZONE: http://choerodon-register.c7n-system.svc:8000/eureka/
    SPRING_REDIS_HOST: c7n-redis.c7n-system.svc
    SPRING_REDIS_PORT: 6379
    # 此db不可更改
    SPRING_REDIS_DATABASE: 1
    SPRING_DATASOURCE_URL: jdbc:mysql://c7n-mysql.c7n-system.svc:3306/hzero_monitor?useUnicode=true&characterEncoding=utf-8&useSSL=false&useInformationSchema=true&remarks=true&serverTimezone=Asia/Shanghai
    SPRING_DATASOURCE_USERNAME: choerodon
    SPRING_DATASOURCE_PASSWORD: password

部署服务

helm upgrade --install choerodon-monitor c7n/choerodon-monitor \
    -f choerodon-monitor.yaml \
    --create-namespace \
    --version 0.24.0 \
    --namespace c7n-system
部署 choerodon file
编写参数配置文件 choerodon-file.yaml
preJob:
  preInitDB:
    datasource:
      url: jdbc:mysql://c7n-mysql.c7n-system.svc:3306/?useUnicode=true&characterEncoding=utf-8&useSSL=false&useInformationSchema=true&remarks=true&serverTimezone=Asia/Shanghai
      username: choerodon
      password: password
      driver: com.mysql.jdbc.Driver
env:
  open:
    EUREKA_CLIENT_SERVICEURL_DEFAULTZONE: http://choerodon-register.c7n-system.svc:8000/eureka/
    MINIO_ACCESSKEY: accesskey
    MINIO_ENDPOINT: http://minio.choerodon.com
    MINIO_SECRETKEY: secretkey
    SPRING_DATASOURCE_URL: jdbc:mysql://c7n-mysql.c7n-system.svc:3306/hzero_file?useUnicode=true&characterEncoding=utf-8&useSSL=false&useInformationSchema=true&remarks=true&serverTimezone=Asia/Shanghai
    SPRING_DATASOURCE_USERNAME: choerodon
    SPRING_DATASOURCE_PASSWORD: password
    SPRING_REDIS_HOST: c7n-redis.c7n-system.svc
    SPRING_REDIS_PORT: 6379
    # 此db不可更改
    SPRING_REDIS_DATABASE: 1
    SPRING_SERVLET_MULTIPART_MAX_FILE_SIZE: 200MB
    SPRING_SERVLET_MULTIPART_MAX_REQUEST_SIZE: 200MB
    FILE_GATEWAY_URL: http://api.gitlab.choerodon.com/hfle

部署服务

helm upgrade --install choerodon-file c7n/choerodon-file \
    -f choerodon-file.yaml \
    --create-namespace \
    --version 0.24.0 \
    --namespace c7n-system
部署 choerodon message
编写参数配置文件 choerodon-message.yaml
preJob:
  preInitDB:
    datasource:
      url: jdbc:mysql://c7n-mysql.c7n-system.svc:3306/?useUnicode=true&characterEncoding=utf-8&useSSL=false&useInformationSchema=true&remarks=true&serverTimezone=Asia/Shanghai
      username: choerodon
      password: password
env:
  open:
    EUREKA_CLIENT_SERVICEURL_DEFAULTZONE: http://choerodon-register.c7n-system.svc:8000/eureka/
    HZERO_WEBSOCKET_OAUTHURL: http://choerodon-oauth.c7n-system.svc/oauth/api/user
    SPRING_REDIS_HOST: c7n-redis.c7n-system.svc
    SPRING_REDIS_PORT: 6379
    # 此db不可更改
    SPRING_REDIS_DATABASE: 1
    SPRING_DATASOURCE_URL: jdbc:mysql://c7n-mysql.c7n-system.svc:3306/hzero_message?useUnicode=true&characterEncoding=utf-8&useSSL=false&useInformationSchema=true&remarks=true&serverTimezone=Asia/Shanghai
    SPRING_DATASOURCE_USERNAME: choerodon
    SPRING_DATASOURCE_PASSWORD: password
ingress:
  enabled: true
  host: message.choerodon.com

部署服务

helm upgrade --install choerodon-message c7n/choerodon-message \
    -f choerodon-message.yaml \
    --create-namespace \
    --version 0.24.0 \
    --namespace c7n-system
持续交付部署
创建数据库

create-c7ncd-db.yaml

env:
  MYSQL_HOST: c7n-mysql.c7n-system.svc
  MYSQL_PORT: "3306"
  MYSQL_USER: root
  MYSQL_PASS: password
  SQL_SCRIPT: |
    CREATE USER IF NOT EXISTS 'choerodon'@'%' IDENTIFIED BY 'password';
    CREATE DATABASE IF NOT EXISTS devops_service DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
    CREATE DATABASE IF NOT EXISTS workflow_service DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
    GRANT ALL PRIVILEGES ON devops_service.* TO choerodon@'%';
    GRANT ALL PRIVILEGES ON workflow_service.* TO choerodon@'%';
    FLUSH PRIVILEGES;

执行安装
helm upgrade --install create-c7ncd-db c7n/mysql-client \
  -f create-c7ncd-db.yaml \
  --create-namespace \
  --version 0.1.0 \
  --namespace c7n-system
部署 workflow service
编写参数配置文件 workflow-service.yaml
env:
  open:
    EUREKA_CLIENT_SERVICEURL_DEFAULTZONE: http://choerodon-register.c7n-system.svc:8000/eureka/
    SPRING_DATASOURCE_URL: jdbc:mysql://c7n-mysql.c7n-system.svc:3306/workflow_service?useUnicode=true&characterEncoding=utf-8&useSSL=false&useInformationSchema=true&remarks=true&serverTimezone=Asia/Shanghai
    SPRING_DATASOURCE_USERNAME: choerodon
    SPRING_DATASOURCE_PASSWORD: password

部署服务
helm upgrade --install workflow-service c7n/workflow-service \
    -f workflow-service.yaml \
    --create-namespace \
    --version 0.24.0 \
    --namespace c7n-system
部署 gitlab service
编写参数配置文件 gitlab-service.yaml

获取Personal Access Tokens(后面会用到)

  • 使用root用户登录Gitlab
  • 点击 Profile settings .
  • 选择 Access tokens .
  • 勾选 api、read_use、sudo,read_repository权限
  • 点击 Create personal access token .

5c7abc_Fts_yYBgqCt6F
在这里插入图片描述

env:
  open:
    EUREKA_CLIENT_SERVICEURL_DEFAULTZONE: http://choerodon-register.c7n-system.svc:8000/eureka/
    GITLAB_URL: http://gitlab.choerodon.com
    GITLAB_PRIVATETOKEN: 5c7abc_Fts_yYBgqCt6F

部署服务
helm upgrade --install gitlab-service c7n/gitlab-service \
    -f gitlab-service.yaml \
    --create-namespace \
    --version 0.24.0 \
    --namespace c7n-system
部署 devops service
编写参数配置文件 devops-service.yaml
preJob:
  preInitDB:
    datasource:
      url: jdbc:mysql://c7n-mysql.c7n-system.svc:3306/?useUnicode=true&characterEncoding=utf-8&useSSL=false&useInformationSchema=true&remarks=true&serverTimezone=Asia/Shanghai
      username: choerodon
      password: password
    datasources:
      # 多数据源初始化初始化菜单数据  
      # 支持框架数据和devops进行分库 指定菜单初始化地址
      platform:
         url: jdbc:mysql://c7n-mysql.c7n-system.svc:3306/?useUnicode=true&characterEncoding=utf-8&useSSL=false&useInformationSchema=true&remarks=true&serverTimezone=Asia/Shanghai
         username: choerodon
         password: password
         driver: com.mysql.jdbc.Driver
env:
  open:
    SPRING_REDIS_HOST: c7n-redis.c7n-system.svc
    SPRING_REDIS_PORT: 6379
    SPRING_REDIS_DATABASE: 9
    EUREKA_CLIENT_SERVICEURL_DEFAULTZONE: http://choerodon-register.c7n-system.svc:8000/eureka/
    SPRING_DATASOURCE_URL: jdbc:mysql://c7n-mysql.c7n-system.svc:3306/devops_service?useUnicode=true&characterEncoding=utf-8&useSSL=false&useInformationSchema=true&remarks=true&serverTimezone=Asia/Shanghai
    SPRING_DATASOURCE_USERNAME: choerodon
    SPRING_DATASOURCE_PASSWORD: password
    SERVICES_GITLAB_URL: http://gitlab.choerodon.com/
    SERVICES_GITLAB_SSHURL: gitlab.choerodon.com:30022
    SERVICES_GITLAB_PROJECTLIMIT: 100
    SERVICES_HELM_URL: http://study.choerodon.com
    SERVICES_HELM_USERNAME: choerodon
    SERVICES_HELM_PASSWORD: password
    SERVICES_HARBOR_BASEURL: https://harbor.choerodon.com
    SERVICES_HARBOR_USERNAME: admin
    SERVICES_HARBOR_PASSWORD: Harbor12345
    SERVICES_HARBOR_INSECURESKIPTLSVERIFY: true
    SERVICES_SONARQUBE_URL: https://sonarqube.choerodon.com
    SERVICES_SONARQUBE_PASSWORD: admin
    SERVICES_SONARQUBE_USERNAME: admin
    SERVICES_GATEWAY_URL: http://api.gitlab.choerodon.com
    AGENT_VERSION: 0.24.0
    AGENT_SERVICEURL: ws://devops.choerodon.com/websocket
    AGENT_REPOURL: https://openchart.choerodon.com/choerodon/c7n/
    AGENT_CERTMANAGERURL: https://openchart.choerodon.com/choerodon/c7n/on/c7n/
ingress:
  enabled: true
  host: devops.choerodon.com

部署服务
helm upgrade --install devops-service c7n/devops-service \
    -f devops-service.yaml \
    --version 0.24.1 \
    --namespace c7n-system

配置windows hosts

192.168.199.110	study.choerodon.com
192.168.199.110 minio.choerodon.com
192.168.199.110 harbor.choerodon.com
192.168.199.110 gitlab.choerodon.com
192.168.199.110 app.choerodon.com
192.168.199.110 api.gitlab.choerodon.com
192.168.199.110 hzero.choerodon.com
192.168.199.110 nexus.choerodon.com
192.168.199.110 sonarqube.choerodon.com
192.168.199.110 message.choerodon.com
192.168.199.110 devops.choerodon.com
192.168.199.110 openchart.choerodon.com

其他的的部署,以后再写,这里给出所有配置文件,可以参照文档部署

链接:https://pan.baidu.com/s/1h_u1zYXvTJmXkV2NrrnsNQ 
提取码:taqi

https://github.com/1561630125/choerodon-config.git

在这里插入图片描述

常用命令

kubectl get pods -A

kubectl exec minio-0 -it  -c minio -n c7n-system -- ls /

kubectl logs -f --tail=20 minio-0 -n c7n-system

kubectl api-resources

helm ls -A

helm uninstall minio -n c7n-system
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

四美

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值