我正在使用Kubernetes中的Flink操作符在应用模式下部署Apache集群,并且存在权限问题。我已经将Filestore实例挂载为ReadWriteMany卷。当我"kubectl exec“访问任务管理器荚时,我可以访问挂载的卷"/flink-data”。我也可以在里面创建目录。但是,每当触发检查点时,我仍然会得到以下错误:
Caused by: java.io.IOException: Mkdirs failed to create file:/flink-data/checkpoints/f6dc4b42c99ac5d25f4be4771a9c6889/chk-1
at org.apache.flink.core.fs.local.LocalFileSystem.create(LocalFileSystem.java:262) ~[flink-dist_2.12-1.13.6.jar:1.13.6]
at org.apache.flink.core.fs.SafetyNetWrapperFileSystem.create(SafetyNetWrapperFileSystem.java:130) ~[flink-dist_2.12-1.13.6.jar:1.13.6]
at org.apache.flink.core.fs.EntropyInjector.createEntropyAware(EntropyInjector.java:61) ~[flink-dist_2.12-1.13.6.jar:1.13.6]
at org.apache.flink.runtime.state.filesystem.FsCheckpointStreamFactory$FsCheckpointStateOutputStream.createStream(FsCheckpointStreamFactory.java:401) ~[flink-dist_2.12-1.13.6.jar:1.13.6]
at org.apache.flink.runtime.state.filesystem.FsCheckpointStreamFactory$FsCheckpointStateOutputStream.flushToFile(FsCheckpointStreamFactory.java:258) ~[flink-dist_2.12-1.13.6.jar:1.13.6]
at org.apache.flink.runtime.state.filesystem.FsCheckpointStreamFactory$FsCheckpointStateOutputStream.write(FsCheckpointStreamFactory.java:234) ~[flink-dist_2.12-1.13.6.jar:1.13.6]
at java.io.DataOutputStream.write(DataOutputStream.java:107) ~[?:1.8.0_342]发布于 2022-08-22 17:54:05
我找到并解决了许可问题。在检查了Apache停靠图之后,我找到了这个文件-- https://github.com/apache/flink-docker/blob/master/1.13/scala_2.12-java8-debian/docker-entrypoint.sh .我是以根用户的身份运行映像的,而不是"9999“,而”9999“是flink的uid和gid。我创建了一个initContainer来将安装的pvc的所有权从根更改为flink。
https://stackoverflow.com/questions/73312123
复制相似问题