多实例部署

多实例部署模式下数据存储将使用单独提供的组件,主要包括:MySQLMongoDBRedisKafkaElasticsearch。可参考 集群模式搭建指南

部署步骤

  1. 在 Master 节点执行以下命令添加明道云提供的 chart 仓库源

    helm repo add mingdaoyun-charts https://mingdaoyun.tencentcloudcr.com/chartrepo/charts
    helm repo update
    

    可通过执行 helm search repo mingdaoyun-charts 命令查看源下相关 chart,如:

  2. 在 Node 节点拉取以下3个镜像(镜像较大,不建议在启动时通过自动拉取,等待时间会比较长)

    docker pull registry.cn-hangzhou.aliyuncs.com/mdpublic/mingdaoyun-community:2.8.1
    docker pull registry.cn-hangzhou.aliyuncs.com/mdpublic/mingdaoyun-doc:1.2.0
    docker pull registry.cn-hangzhou.aliyuncs.com/mdpublic/mingdaoyun-file:1.1.0
    
  3. 启动安装管理器

    推荐使用 kubernetes 集群外的一台机器部署安装管理器,测试阶段可选择使用集群内的一台机器

    下载安装管理器 wget https://pdpublic.mingdao.com/private-deployment/2.8.1/mingdaoyun_private_deployment_captain_linux_amd64.tar.gz,解压并执行启动命令:bash ./service.sh start,启动成功后默认服务器ID标识文件生成在 /data/mingdao/data 文件中(注意:服务器ID标识文件内容会一直动态变化,所以不要任意复制到其他位置

  4. 将服务器ID标识文件共享,这里以 NFS 为例:

    在安装管理器部署服务器上创建 NFS 服务,并将 /data/mingdao/data mount 出去,因为 NFS 只能以目录的方式进行共享,所以这里将 /data/mingdao/data 重新 ln 到了新目录 mdy_svid 下:

    ln /data/mingdao/data /mdy_svid/data
    

    /etc/exports 内容如下,请将 172.17.30.0/24 换成对应内网网段:

    /mdy_svid  172.17.30.0/24(insecure,rw,async,no_root_squash)
    
  5. 定义服务器ID标识文件挂载所需 PV

    mingdaoyun chart 模板定义中服务器ID标识文件默认已声明需要通过 PV 的方式进行挂载,如下:

    persistence:
      svid:
        existingClaim: "" # 使用已存在的 pvc,accessMode 和 size 满足要求即可
        storageClass: "mingdaoyun-svid-sc" # 空代表自动绑定匹配条件的 PV
        accessMode: ReadOnlyMany # 支持 ReadOnlyMany 的访问模式
        size: 10Mi
        annotations: {}
    

    如果是基于 NFS,可如下定义 PV:

    mingdaoyun-svid-pv.yaml

    apiVersion: v1
    kind: PersistentVolume
    metadata:
      name: mingdaoyun-svid-pv  
    spec:
      nfs:
        path: /mdy_svid
        server: 172.17.30.83  # NFS 服务内网IP
      accessModes:
      - ReadOnlyMany
      capacity:
        storage: 10Mi
      storageClassName: mingdaoyun-svid-sc # 与 PVC 中声明的 storageClass 一致
    

    创建 PV:

    kubectl apply -f mingdaoyun-svid-pv.yaml
    
  6. 定义文件存储所需 PV

    mingdaoyun-file chart 模板定义中默认已声明需要通过 PV 的方式进行挂载,如下:

    persistence:
      existingClaim: "" # 使用已存在的 pvc,accessMode 和 size 满足要求即可
      storageClass: "mingdaoyun-file-sc" # 空代表自动绑定匹配条件的 PV
      accessMode: ReadWriteMany # 支持 ReadWriteMany 的访问模式
      size: 1Gi
      annotations: {}
    

    如果是基于 NFS,可如下定义 PV,PV 数量需要与 mingdaoyun-filereplicaCount 一致:

    mingdaoyun-file1-pv.yaml

    apiVersion: v1
    kind: PersistentVolume
    metadata:
      name: mingdaoyun-file1-pv
    spec:
      nfs:
        path: /mdy_file1
        server: 172.17.30.83  # 需要在 /etc/exports 中添加对应记录
      accessModes:
      - ReadWriteMany
      capacity:
        storage: 1Gi
      storageClassName: mingdaoyun-file-sc # 与 PVC 中声明的 storageClass 一致
    

    创建 PV:

    kubectl apply -f mingdaoyun-file1-pv.yaml
    
  7. 安装 chart

    安装 mingdaoyun-doc。

    helm install mingdaoyun-doc mingdaoyun-charts/mingdaoyun-doc
    

    安装 mingdaoyun-file。创建自定义参数配置文件 mingdaoyun-file-values.yaml,集群模式下 replicaCount 至少设置为 4

    mingdaoyun-file-values.yaml

    serviceUrl: "http://$MASTER_NODE_IP:32100"
    replicaCount: 4
    accesskey: "mdstorage"
    secrectkey: "mdstorage@123"
    storageComponent:
      redis: 
        host: "${IP}"
        port: 6379
        password: "123456"
    
    helm install -f mingdaoyun-file-values.yaml mingdaoyun-file mingdaoyun-charts/mingdaoyun-file
    

    安装 mindaoyun。创建自定义参数配置文件 mingdaoyun-values.yaml,将 $MASTER_NODE_IP 替换成当前 Kubernetes 集群的 Master Node IP。默认以 NodePort 方式启动,端口为 32100

    mingdaoyun-values.yaml

    replicaCount: 3
    serviceUrl: "http://$MASTER_NODE_IP:32100"
    storageComponent:
      enabled: true
      mongodb:
        uri: "mongodb://${IP1}:27017,${IP2}:27017,${IP3}:27017"
      mysql:
        host: "${IP}"
        port: 3306
        username: "root"
        password: "123456"
      redis:
        host: "${IP}"
        port: 6379
        password: "123456"
      kafka:
        uri: "${IP1}:9092,${IP2}:9092,${IP3}:9092"
      elasticsearch:
        uri: "${IP1}:9200,${IP2}:9200,${IP3}:9200"
        password: "123456"
      file:
        uri: "mingdaoyun-file-0.mingdaoyun-file:9000,mingdaoyun-file-1.mingdaoyun-file:9000,mingdaoyun-file-2.mingdaoyun-file:9000,mingdaoyun-file-3.mingdaoyun-file:9000"
        accesskey: "mdstorage"
        secrectkey: "mdstorage@123"
    
    helm install -f mingdaoyun-values.yaml mingdaoyun mingdaoyun-charts/mingdaoyun
    

    待 mingdaoyun pod 启动完成(3~5分钟),执行以下命令进行初始化数据

    kubectl exec -it mingdaoyun-0 bash
    source /entrypoint-cluster.sh && clusterInit
    

    最后确认所有 Pod 都已处于 Running 状态后,可通过 http://$MASTER_NODE_IP:32100 进行访问:

results matching ""

    No results matching ""