Hyperledger Fabric1.4 系列七(多机部署解决方案)
背景hyperledger fabric 官网中给出的基本都是单机运行多个容器。生产使用时不可能去单机来部署区块链服务。那么如何实现多机部署,成了一个关键. 文章主要谈一下如何实现多机部署的思路.原理方案一服务器集群.k8s docker集群搭建swarm方法二 修改容器host查看docker-compose配置文件描述:https://docs.docker.c...
·
背景
hyperledger fabric 官网中给出的基本都是单机运行多个容器。生产使用时不可能去单机来部署区块链服务。那么如何实现多机部署成了一个关键. 文章主要谈一下如何实现多机部署的思路.
原理
方案一 服务器集群.
-
k8s docker集群搭建
-
swarm
方法二 修改容器host
查看docker-compose配置文件描述:
https://docs.docker.com/compose/compose-file/
其中有一个配置extra_hosts
具体描述内容:
extra_hosts
Add hostname mappings. Use the same values as the docker client --add-host parameter.
extra_hosts:
- "somehost:162.242.195.82"
- "otherhost:50.31.209.229"
An entry with the ip address and hostname is created in /etc/hosts inside containers for this service, e.g:
162.242.195.82 somehost
50.31.209.229 otherhost
基于如上配置可以修改docker-compose-couch.yaml配置文件信息如下:
拆分为两个
couchdb0容器启动配置信息 部署到:192.168.100.102
couchdb0:
container_name: couchdb0
image: hyperledger/fabric-couchdb
# Populate the COUCHDB_USER and COUCHDB_PASSWORD to set an admin user and password
# for CouchDB. This will prevent CouchDB from operating in an "Admin Party" mode.
environment:
- COUCHDB_USER=
- COUCHDB_PASSWORD=
# Comment/Uncomment the port mapping if you want to hide/expose the CouchDB service,
# for example map it to utilize Fauxton User Interface in dev environments.
ports:
- "5984:5984"
networks:
- byfn
peer0.org1.example.com 部署到:192.168.100.101
peer0.org1.example.com:
environment:
- CORE_VM_ENDPOINT=unix:///host/var/run/docker.sock
# the following setting starts chaincode containers on the same
# bridge network as the peers
# https://docs.docker.com/compose/networking/
- CORE_VM_DOCKER_HOSTCONFIG_NETWORKMODE=${COMPOSE_PROJECT_NAME}_byfn
- FABRIC_LOGGING_SPEC=INFO
#- FABRIC_LOGGING_SPEC=DEBUG
- CORE_PEER_TLS_ENABLED=true
- CORE_PEER_GOSSIP_USELEADERELECTION=true
- CORE_PEER_GOSSIP_ORGLEADER=false
- CORE_PEER_PROFILE_ENABLED=true
- CORE_PEER_TLS_CERT_FILE=/etc/hyperledger/fabric/tls/server.crt
- CORE_PEER_TLS_KEY_FILE=/etc/hyperledger/fabric/tls/server.key
- CORE_PEER_TLS_ROOTCERT_FILE=/etc/hyperledger/fabric/tls/ca.crt
- CORE_PEER_ID=peer0.org1.example.com
- CORE_PEER_ADDRESS=peer0.org1.example.com:7051
- CORE_PEER_GOSSIP_BOOTSTRAP=peer1.org1.example.com:7051
- CORE_PEER_GOSSIP_EXTERNALENDPOINT=peer0.org1.example.com:7051
- CORE_PEER_LOCALMSPID=Org1MSP
- CORE_LEDGER_STATE_STATEDATABASE=CouchDB
- CORE_LEDGER_STATE_COUCHDBCONFIG_COUCHDBADDRESS=couchdb0:5984
# The CORE_LEDGER_STATE_COUCHDBCONFIG_USERNAME and CORE_LEDGER_STATE_COUCHDBCONFIG_PASSWORD
# provide the credentials for ledger to connect to CouchDB. The username and password must
# match the username and password set for the associated CouchDB.
- CORE_LEDGER_STATE_COUCHDBCONFIG_USERNAME=
- CORE_LEDGER_STATE_COUCHDBCONFIG_PASSWORD=
working_dir: /opt/gopath/src/github.com/hyperledger/fabric/peer
command: peer node start
volumes:
- /var/run/:/host/var/run/
- ../crypto-config/peerOrganizations/org1.example.com/peers/peer0.org1.example.com/msp:/etc/hyperledger/fabric/msp
- ../crypto-config/peerOrganizations/org1.example.com/peers/peer0.org1.example.com/tls:/etc/hyperledger/fabric/tls
- peer0.org1.example.com:/var/hyperledger/production
ports:
- 7051:7051
- 7053:7053
extra_hosts:
- "couchdb0:192.168.100.102"
总结
关于集群的方式,由于一些原因没有进行尝试,但是基于技术的可以行是没有问题的,可以正常实现。网上相关搭建的文档也比较齐全。
第二种通过添加host方式也是没有问题的,之前尝试过基于docker的自动化部署. 也是ok的. 具体的操作就不再进行描述了。
更多推荐
已为社区贡献1条内容
所有评论(0)