您可以在Cloud Run容器中运行沙箱容器吗? [英] Can you run a sandbox container within a Cloud Run container?

查看:0
本文介绍了您可以在Cloud Run容器中运行沙箱容器吗?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

假设我让用户上传一些python或bash脚本,在云运行中执行它,然后返回结果。为此,我将使用无权访问项目资源的服务帐户创建一个Cloud Run服务。我也会在嵌套容器中运行该脚本,这样用户就不会干扰服务器代码并操作来自其他用户的连续请求。

如何使gvisor runsc或其他沙箱运行时在Cloud Run上运行的容器中可用?

我发现一些资源提到在原始容器上使用特权标志,但这在Cloud Run中是不可能的。此外,我找不到任何有关如何使用runsc运行无根容器的信息。让我知道我是否在正确的轨道上,或者这是否可以通过Cloud Run实现,或者我应该使用其他服务吗?

谢谢。

推荐答案

当前Cloud Run(完全托管)本身在gVisor沙箱上运行,因此它对低级LinuxAPI的支持可能不太可能,这些API用于使用cgroup或linux命名空间API创建进一步的容器环境。

然而,由于从技术上讲,gVisor是一种用户空间沙箱技术(尽管我不确定它需要什么级别的特权),您也许能够在gVisor中运行gVisor沙箱,尽管我不会对此抱太大希望,因为它可能不是为此而设计的。我猜gVisor沙箱不提供ptrace功能,让嵌套的沙箱工作,尽管你可能会在gVisor自己的GitHub资源库上问这个问题。

对于这样的用例,我建议在GKE上查看适用于Anthos的Cloud Run,它与Cloud Run类似,但在GKE节点(GCE VM)上运行您的应用程序,GKE节点具有完整的Linux系统调用套件可用。由于Kubernetes podspec在那里可用,因此您实际上可以创建特权容器,并在其中运行VM等。

通常,容器本身被认为是沙箱,因此尝试创建更多沙箱(like you asked earlier)将是大量与平台相关的工作,即使您可以以某种方式使其运行。

这篇关于您可以在Cloud Run容器中运行沙箱容器吗?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆