
스토리지 버킷을 로컬 디렉터리에 마운트합니다. /share
그런 다음 이제 개체 저장소의 내용으로 채워진 이 디렉터리를 다른 컴퓨터에서 사용할 수 있도록 만들려고 합니다. 목표는 이 다른 머신이 gcsfuse-client 자체를 사용할 필요 없이 nfs 또는 이와 유사한 것에 의존할 수 있다는 것입니다.
nfs를 사용하여 gcsfuse 디렉터리를 노출하려고 했습니다 /share
. nfs-share가 작동했습니다. 그러나 클라우드 스토리지 버킷을 nfs 공유에 마운트했을 때 원격 시스템(nfs-client)은 객체 저장소의 파일을 보지 못했습니다.
따라서 체인의 두 부분은 서로 별도로 작동합니다.
- 객체 저장소를 로컬 디렉터리에 마운트할 수 있습니다.
- nfs당 디렉토리를 두 번째 시스템으로 내보낼 수 있습니다.
하지만 객체 저장소의 내용을 두 번째 시스템으로 '통과'할 수는 없습니다.
쿠버네티스 클러스터 내부에서 일어나는 모든 일.
방정식에서 nfs를 배제하기 위해 사이드카 패턴을 사용하여 /share
동일한 포드의 두 번째 컨테이너에 노출했습니다. 동일한 결과: 두 번째 컨테이너는 객체 저장소의 내용을 볼 수 없습니다.
나는 (gcs)fuse-filesystem에 대해 많이 알지 못하지만 사람들은 그것을 '사용자 공간' 파일 시스템이라고 부릅니다. 그 이유는 gcsfuse 마운트의 내용을 두 번째 시스템으로 전달할 수 없기 때문입니까?
편집: 객체 스토리지를 마운트할 때 여러 가지 다른 옵션을 시도했습니다. 여기에는 다음과 같은 옵션이 있습니다.
gcsfuse -o nonempty -o allow_other --implicit-dirs --gid 0 --uid 0 --file-mode 777 --dir-mode 777 video-storage-dev /share
gcsfuse -o nonempty -o allow_other video-storage-dev /share
답변1
이 문제에 대한 가능한 해결 방법:
user_allow_other
퓨즈 구성에서 구성 옵션이 활성화 되지 않았을 수 있습니다 . 이렇게 하려면 파일에서/etc/fuse.conf
주석 처리되지 않은 다음 줄이 있는지 확인한user_allow_other
후 다시 시도하세요.위의 내용이 작동하지 않으면 다음을 살펴보십시오.이 유닉스 질문, NFS를 통해 FUSE 내보내기를 해결합니다. 요약하면, 대부분의 Linux 배포판에서는 NFSv2 또는 NFSv3을 통해 FUSE 탑재 fs 내보내기를 허용하지 않으므로 NFSv4를 사용해야 합니다.