请记住,“对等”节点使用到Docker恶魔的通信路径/var/run/docker.sock创建并启动“ chaincode”容器(dev- *),我对此是否可行表示怀疑。 Openshift集群。
如果我错了,请纠正我,但是在Openshift集群中运行HLF组件的唯一解决方案是:
a)进入Docker-In-Docker设置-缺点:在Openshift中需要特权容器。对于准备就绪的集群来说这是不可接受的。
b)在dev-mode中运行“ chaincode”-缺点:dev-mode仅用于开发。不适合生产。
由于Openshift群集使用layer7反向代理与Pod通信,因此无法在Openshift群集外部启动“ chaincode”容器并使用TCP / IP连接与它们进行通信。
所以问题仍然存在:
问:可以在生产中使用RedHat Openshift设置HLF网络吗?
答案 0 :(得分:0)
在Docker中没有立即解决Docker的方法 ○仍然存在安全风险,因此请在生产前评估风险 ○放宽 ■允许使用docker.sock ■确保在所有节点上进行更改 ○oc adm policy add-scc-to-user anyuid -z默认 ■特权模式
短期蛮力解
●希望使用Secrets和ConfigMap替换主机安装
●在需要的地方使用NFS挂载
○oc adm policy add-scc-to-user hostmount-anyuid -z default
●将docker-compose,docker调用替换为:
○kubectl,oc,podman,Buildah,kompose
●使用kompose转换docker-compose.yaml文件
○kompose convert --provider=openshift -f
■然后编辑和合并文件
●备用(如果是非常简单的yaml文件)
○kompose up --provider==openshift -f
更多信息,请点击此处:https://www.redhat.com/files/summit/session-assets/2019/T905A4.pdf
答案 1 :(得分:0)
是的,可以在OpenShift中运行HLF,但是DinD必须在v1.4.4上运行,因此需要特权Pod。正确地保护群集可以消除风险,许多许多组织正在使用具有特权Pod的OpenShift和Kube在生产中运行。
话虽如此,Fabric v2.0.0将附带一个新的链码模型,使您可以在不使用DinD的情况下运行Fabric。我们计划在月底之前发布正式的v2.0.0版本。如果您想立即对其进行测试,请访问以下网址提供v2.0.0-beta:https://github.com/hyperledger/fabric/releases/tag/v2.0.0-beta