kubernetes - 无法在 Kubernetes Pod 上挂载 NFS

标签 kubernetes hyperledger-fabric hyperledger nfs

我正在致力于在 Kubernetes minikube 集群上部署 Hyperledger Fabric 测试网络。我打算使用 PersistentVolume 在各种同行和订购者之间共享 cytpo-config 和 channel 工件。以下是我的 PersistentVolume.yaml 和 PersistentVolumeClaim.yaml

kind: PersistentVolume
apiVersion: v1
metadata:
  name: persistent-volume
spec:
  capacity:
    storage: 1Gi
  accessModes:
    - ReadWriteMany
  nfs:
    path: "/nfsroot"
    server: "3.128.203.245"
    readOnly: false

kind: PersistentVolumeClaim
apiVersion: v1
metadata:
  name: persistent-volume-claim
spec:
  accessModes:
    - ReadWriteOnce
  resources:
    requests:
      storage: 1Gi

下面是上面声明挂载到/data的pod

kind: Pod
apiVersion: v1
metadata:
  name: test-shell
  labels:
    name: test-shell
spec:
  containers:
    - name: shell
      image: ubuntu
      command: ["/bin/bash", "-c", "while true ; do sleep 10 ; done"] 
      volumeMounts:
      - mountPath: "/data"
        name: pv
  volumes:
    - name: pv
      persistentVolumeClaim:
        claimName: persistent-volume-claim

NFS 在我的 EC2 实例上设置。我已验证 NFS 服务器工作正常,我能够将其安装在 minikube 中。我不明白我在做什么错,但是 3.128.203.245:/nfsroot 中存在的任何文件在 test-shell:/data 中都不存在

我错过了什么。我什至尝试了 hostPath mount 但无济于事。请帮帮我。

最佳答案

我认为您应该检查以下内容以验证 NFS 是否已成功挂载

  1. 在要挂载的节点上运行此命令。

    $showmount -e nfs-server-ip

就像我的情况一样 $showmount -e 172.16.10.161 172.16.10.161 的导出列表: /选择/分享*

  1. 使用 $df -hT 命令查看 NFS 是否已安装,就像我的情况一样,它将给出输出 172.16。 10.161:/opt/share nfs4 91G 32G 55G 37%/opt/share

  2. 如果没有挂载则使用下面的命令

    $sudo mount -t nfs 172.16.10.161:/opt/share/opt/share

  3. 如果上述命令显示错误,则检查防火墙是否允许 nfs

    $sudo ufw status

  4. 如果没有则允许使用命令

    $sudo ufw 允许从 nfs-server-ip 到任何端口 nfs

我进行了相同的设置,但没有遇到任何问题。 My k8s cluster of fabric is running successfully . hf k8s yaml 文件可以在我的 GitHub repo 找到.在那里,我在 super 账本结构上部署了银行联盟,这是一个动态的多主机区 block 链网络,这意味着您可以在现有运行的区 block 链网络中随时添加组织、节点、加入节点、创建 channel 、安装和实例化链代码。

关于kubernetes - 无法在 Kubernetes Pod 上挂载 NFS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63461731/

相关文章:

docker - 在kubernetes上的Lagom中部署微服务的版本控制

go - 来自自定义导出器的 Prometheus 指标显示在/metrics 中,但不在/graph (k8s) 中

node.js - 错误 : Failed to connect before the deadline when firing transactions at high rate

hyperledger-fabric - 尝试实例化Hyperledger Fabric上的链代码时出错

docker - AWS KCL 在 docker 中捕获关闭信号

kubernetes - 从 helm 图表访问/docker-entrypoint-initdb.d

linux - 未收到来自 REGISTER 请求 hypereldger 的响应

go - 无法找到在 windows7 上运行的自定义链代码路径 Hyperledger Fabricv1.0 本地网络

hyperledger-fabric - 如何在 Hyperledger Fabric 中监听事件(提交事件)?

json - 无法使用 Hyperledger Fabric ping 我的远程本地主机