本文档提供了从零开始实现区块链部署的快速入门指南,其中大部分设置均采用默认值或者示例值。如需了解更全面的配置方式,请参阅后续章节的详细介绍。

限制条件

  • 需要注册账号,开通容器服务,用户账户需有 100 元的余额并通过实名认证,否则无法创建按量付费的 ECS 实例和负载均衡。
  • 容器集群和 NAS 文件系统必须位于相同的地域,请确保所选地域能同时支持 kubernetes 集群模式和 NAS 文件系统(取两者交集)。关于 NAS 文件系统支持地域列表请参见 产品与服务 > 文件存储 > NAS > 文件系统列表
  • 文件系统的使用方式仅适用于区块链相关应用和解决方案的开发、测试阶段,如需在生产环境部署,请联系我们进一步探讨具体的业务和技术需求,以共同决定最适合的方式。

步骤 1 创建 Kubernetes 集群

  1. 登录 容器服务控制台
  2. 在 Kubernetes 菜单下,单击左侧导航中的 集群,再单击右上角的 创建 Kubernetes 集群


  3. 设置集群的基本信息。本示例相关配置如下:
    • 输入集群名称,例如:k8s-blockchain。
    • 地域:选择 华东1
    • 可用区:选择 华东1可用区A
    • 网络类型:单击 专有网络。如没有现成的 VPC 专有网络,则单击 自动创建
    • 设置 登录密码确认密码
    • 设置实例规格和数量。区块链网络部署需要占用较多资源,推荐使用默认配置。
    • SSH登录:勾选 开放公网SSH登录
    • 最后单击 创建集群。等待集群创建完成(约需要数分钟)。
  4. 返回集群列表页面, 选择刚创建的 k8s-blockchain 集群,单击 管理


  5. 在集群的基本信息页面 ,记录 Master 节点 SSH 连接地址 (此为公网地址)。


  6. 在节点列表页面, 记录当前集群对应的节点(Master 和 Worker)的 IP 地址 (此为内网地址)。


步骤 2 为 Worker 节点绑定弹性公网 IP

  1. 登录 IP 管理控制台
  2. 在左侧导航栏,单击 弹性公网 IP,然后单击右上角的 申请弹性公网IP
  3. 选择 k8s-blockchain 集群所在地域,对于其他设置,根据需要自行选择,然后单击 立即购买
  4. 开通完成后,等上述购买的 IP 实例出现在列表后,单击 绑定


  5. 在 ECS 实例下拉列表中,选择一个 worker 节点(名称是以 node 结尾的实例),单击 确定
  6. 完成绑定后,回到弹性公网 IP 列表,记录上述新建实例的 IP 地址。

步骤 3 创建文件系统和添加挂载点

  1. 登录 文件存储 NAS 控制台
  2. 在页面顶部地域列表中,单击 华东1。单击右上角的 创建文件系统


  3. 在弹出的 创建文件系统 对话框进行配置。


    • 地域:选择 华东1。选择与容器集群相同的地域。
    • 存储类型:本示例选择 容量型
    • 协议类型:选择 NFS
    • 可用区:选择 华东1可用区B。同一地域不同可用区可以互通。
    • 单击 确定
  4. 单击 点击前往


  5. 配置 NAS 存储包。


    • 存储类型:本示例选择 容量型
    • 购买时长:本示例选择1个月,请根据实际需要选择。
    • 单击 立即购买
  6. 如果在创建 Kubernetes 集群的时候,选择的是 使用已有 专有网络,请忽略本步骤,继续下一步;如果在创建 Kubernetes 集群的时候,选择的是 自动创建 专有网络,请前往 VPC控制台,将 VPC 网络名称修改为容易识别的标志,例如,blockchain_huadong1。


  7. 在新创建的文件系统的操作列表中,单击 添加挂载点。在弹出的 添加挂载点 对话框中进行配置。


    • 挂载点类型:选择 专有网络
    • VPC网络:选择在创建容器集群环节的 VPC 网络。
    • 交换机:选择在创建容器集群环节的 虚拟交换机。
    • 权限组:选择 VPC 默认权限组
    • 单击 确定
  8. 在文件系统的操作列表中,单击 管理。在文件系统详情页面记录 挂载地址


步骤 4 配置部署区块链网络

  1. 在 Kubernetes 菜单下,单击左侧导航中的市场 > 应用目录。在右侧列表区域找到 ack-hyperledger-fabric,并单击该区域。


  2. 在 ack-hyperledger-fabric 应用界面右侧区域,选择部署集群,并填写发布名称


  3. 单击 参数 标签,查看或者修改相关部署参数。
    • sharedStorage: 输入步骤3创建文件系统和添加挂载点中记录的NAS文件系统挂载地址(必填,否则将部署失败)。
    • dockerImageRegistry:根据部署所在区域(中国或海外),从注释中的可选项中选择对应的容器镜像仓库地址填入。
    • externalAddress: 输入上文 Worker 节点绑定的弹性公网 IP,用于生成connection profile。


  4. 单击 创建
    说明 如参数中的 sharedStorage未作配置,部署过程将会报 spec.nfs.server: Required value的错误。出现此错误后,需要先删除对应的发布名称,然后填写 sharedStorage参数值,并重新部署。
  5. 进入部署集群的控制台界面,查看区块链网络相关 pods 的状态,直到全部变为 Running。


容器控制台的 Kubernetes 服务也支持通过 helm 部署区块链网络,具体请参见配置部署区块链

步骤 5 用 CLI 测试区块链网络

  1. 在 Kubernetes 集群的 master 节点上,执行以下命令进入 CLI 容器。
    kubectl exec -it <fabricNetwork>-fabric-cli bash
  2. 执行以下命令开始 CLI 测试。
    ./cli-test.sh
  3. 测试过程中,按任意键继续下一步。
  4. 如测试过程中没有任何错误,并且最后出现如下字样,说明测试已经成功完成。
      ===================== Query on PEER4 on channel 'bankchannel' is successful ===================== 
      Press any key to continue...
      ===================== All GOOD, End-2-End execution completed =====================

步骤 6 访问区块链浏览器

  1. 登录 容器服务控制台
  2. 在Kubernetes菜单下,单击左侧导航栏中的应用 > 服务,选择所需的集群和命名空间,找到<网络名称>-explorer服务并访问其外部端点。

    您也可在 Kubernetes 集群的 master 节点上运行 kubectl get svc 命令,或者登录容器服务控制台,进入 kubernetes 集群的控制台,单击左侧导航栏中的 服务,然后查看 <网络名称>-explorer 服务的 EXTERNAL-IP(外部端点)。



  3. 在网络浏览器中访问上述 EXTERNAL-IP(外部端点)。


步骤 7 删除区块链网络

  1. 在 Kubernetes 菜单下,在左侧导航栏单击应用 > Helm,选择区块链网络对应的发布名称,单击删除


  2. 在弹出的 删除应用 对话窗口,单击确定


至此我们便完成了环境准备、区块链配置部署、测试区块链、删除区块链的一系列基本操作。对于后续的开发测试,可以复用区块链配置部署、测试区块链、删除区块链的步骤;或者根据实际需要、按照产品文档的指引,进一步定制区块链网络环境。