gpt4 book ai didi

kubernetes - gcsfuse 在 GKE 和/或 python3 boto 中安装存储桶以进行流式写入?

转载 作者:行者123 更新时间:2023-12-02 12:37:59 27 4
gpt4 key购买 nike

我正在寻找一种将某些 .mp4 视频文件(因为它们是由某些 python 应用程序生成的)“写入流”到谷歌云存储桶的方法。 python 应用程序被容器化并部署在 GKE 中,目前可以作为 Web 服务正常执行。但问题是所有视频文件都是在本地生成并存储在 pod 内的路径 ( tmp/processed ) 中。

但是,我希望将视频文件写入名为 my_bucket 的 google 存储桶中的文件中。 .

我已阅读 gcsfuse 有关如何在 Kubernetes pod 中挂载存储桶的指南 (https://github.com/maciekrb/gcs-fuse-sample) 并阅读有关 的信息boto ( https://cloud.google.com/storage/docs/boto-plugin#streaming-transfers ) 用于将流传输到存储桶。

挂载 my_buckettmp/processed ,我在我的应用程序的部署文件 (YAML) 中添加了以下几行:

        lifecycle:
postStart:
exec:
command:
- gcsfuse
- -o
- nonempty
- my_bucket
- tmp/processed
preStop:
exec:
command:
- fusermount
- -u
- tmp/processed/
securityContext:
capabilities:
add:
- SYS_ADMIN

我还没有使用过 boto,我想也许只是安装就足够了!但是,我的应用程序给了我 输入/输出错误 尝试生成视频文件时。

现在我的问题是我是否需要同时使用 gcsfuse boto ,或者只是将存储桶安装在我的 GKE pod 中就足够了?我安装正确吗?

更新 :我确认我使用以下命令正确安装了:
kubectl exec -it [POD_NAME] bash

最佳答案

问题解决了!
我只需要在 pods 内安装我的桶,就是这样。安装脚本(如上面在我的问题中所写)已正确完成。但是,导致input/output error的问题是由于我的 GKE 集群权限不足。基本上,集群没有读取/写入存储的权限,并且项目需要一些其他权限。因此,我使用以下命令创建了一个新集群:

gcloud container clusters create [MY_CLUSTER_NAME] \
--scopes=https://www.googleapis.com/auth/userinfo.email,cloud-platform,https://www.googleapis.com/auth/devstorage.read_write,storage-rw,trace,https://www.googleapis.com/auth/trace.append,https://www.googleapis.com/auth/servicecontrol,compute-rw,https://www.googleapis.com/auth/compute,https://www.googleapis.com/auth/service.management.readonly,https://www.googleapis.com/auth/taskqueue \
--num-nodes 4 --zone "us-central1-c"

为了能够从/向存储桶读取/写入集群必须具有 https://www.googleapis.com/auth/devstorage.read_write允许。

此外,没有必要使用 boto 并通过 安装gcsfuse 足以让我能够将流视频文件写入 my_bucket .

关于kubernetes - gcsfuse 在 GKE 和/或 python3 boto 中安装存储桶以进行流式写入?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54334917/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com