在 kubernetes 上搭建 hyperledger-fabric

修改 K8S 结点 DNS 配置

两种方法,

  • 修改 docker 启动参数

  • 修改结点 /etc/resolv.conf

创建 namespace

declare -a arr=("fabric-orderer" "fabric-org-1" "fabric-org-2")
for i in "${arr[@]}"
do
   kubectl create namespace $i
done

创建共享 Volumn

为方便 pod 间共享文件, 使用 nfs-volumn

# read line with space
IFS=''
declare -a arr=("default" "fabric-orderer" "fabric-org-1" "fabric-org-2")
nfs_server=10.100.240.76
for ns in "${arr[@]}"
do
echo "
apiVersion: v1
kind: PersistentVolume
metadata:
  name: nfs-fabric-dev-for-${ns}
spec:
  accessModes:
  - ReadWriteMany
  capacity:
    storage: 10Gi
  nfs:
    path: /
    server: ${nfs_server}

---
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  name: fabric-pvc-for-${ns}
  namespace: ${ns}
spec:
  accessModes:
  - ReadWriteMany
  resources:
    requests:
      storage: 3Gi
  storageClassName: ""
  volumeName: nfs-fabric-dev-for-${ns}

" | kubectl create -f -
done

搭建 fabric-tools

生成配置文件

一个 orderer 结点 , 两个组织, 每个组织两个 peer

进入 fabric-tool pod 的 bash

创建 crypto-config.yaml 并生成配置文件

创建 /etc/hyperledger/fabric/configtx.yaml 文件

参考 https://raw.githubusercontent.com/hyperledger/fabric/v1.1/examples/e2e_cli/configtx.yamlarrow-up-right

生成创世区块

搭建 orderer 结点

把 configtx.yaml 复制到 /etc/hyperledger/fabric/crypto-config/ordererOrganizations/fabric-orderer/orderers/orderer.fabric-orderer/configtx.yaml

创建 /etc/hyperledger/fabric/crypto-config/ordererOrganizations/fabric-orderer/orderers/orderer.fabric-orderer/orderer.yaml

参考 https://github.com/hyperledger/fabric/blob/v1.1.0/sampleconfig/orderer.yamlarrow-up-right

在 k8s 上创建 orderer 的 service 及 deployment

搭建 peer 结点

运行示例 chaincode

创建 test-channel, 并把所有 peer 加入

进入 fabric-tools pod 执行

测试网络

进入 fabric-tools pod 的控制台

Last updated