Using NFS with Ververica for artifact storage not working, throwing Error: No suitable artifact fetcher found for scheme file

Using NFS with Ververica for artifact storage not working, throwing Error: No suitable artifact fetcher found for scheme file

我正在尝试将 Ververica 社区版设置为使用 NFS 进行工件存储,使用以下 values.yaml

vvp:
  blobStorage:
    baseUri: file:///var/nfs/export
volumes:
  - name: nfs-volume
    nfs:
      server: "host.docker.internal"
      path: "/MOUNT_POINT"
volumeMounts:
  - name: nfs-volume
    mountPath: /var/nfs

部署 flink 作业时,使用以下作业 uri:

jarUri: file:///var/nfs/artifacts/namespaces/default/flink-job.jar

我能够在 Ververica UI 中看到我的工件,但是当我尝试部署 flink 作业时失败并出现以下异常:

Error: No suitable artifact fetcher found for scheme file

完整错误:

Some pod containers have been restarted unexpectedly. Init containers reported the following reasons: [Error: No suitable artifact fetcher found for scheme file]. Please check the Kubernetes pod logs if your application does not reach its desired state.   

如果我将“file://”从 jobURi 中删除到紧随其后的位置,作业容器将继续重新启动而不会出现错误。

jarUri: /var/nfs/artifacts/namespaces/default/flink-job.jar

作为旁注,我还在 deployment.yaml 中添加了以下内容,如果我将工件设置为从 http 端点提取,它确实会在 NFS 中正确保存检查点,所以看起来唯一的问题是使用 file:// 方案从 nfs 加载工件。

  kubernetes:
    pods:
      volumeMounts:
        - name: my-volume
          volume:
            name: my-volume
            nfs:
              path: /MOUNT_POINT
              server: host.docker.internal
          volumeMount:
            mountPath: /var/nfs
            name: my-volume

Ververica 平台当前不支持用于通用 Blob 存储的 NFS 驱动器。

但是,如果使用 >= 2.3.2 的版本,您可以通过将 NFS 驱动器安装到您的 Flink pods 来模拟此行为,就像您在检查点的部署规范中所做的那样。这是可行的,因为 2.3.2 添加了对独立文件和获取本地文件的支持。您可以在文档 here

中查看更多信息