【发布时间】:2021-11-17 18:07:31
【问题描述】:
我正在尝试运行一个 Dataflow 应用程序,以便运行它的容器具有特权,或者至少具有某些功能(例如 CAP_SYS_PTRACE)。
以top_wikipedia_sessions.py为例,我可以用Apache Beam这样运行它:
python3 -m apache_beam.examples.complete.top_wikipedia_sessions \
--region us-central1 \
--runner DataflowRunner \
--project my_project \
--temp_location gs://my-cloud-storage-bucket/temp/ \
--output gs://my-cloud-storage-bucket/output/
如果我通过 SSH 连接到创建的实例,我可以通过 docker ps 看到启动的容器没有特权并且没有保留任何功能(在其 CapAdd 中没有任何功能)。我在 Apache Beam 中找不到任何方法来控制它。我想我可以通过 SSH 连接到实例并更新它们的 Docker 设置,但我想知道是否有办法绕过它,不需要手动修改 Dataflow 为我启动的实例。也许这是我需要在 GCP 的集群设置中更新的设置?
【问题讨论】:
-
如果我理解您的问题,您希望使用
docker run --cap-add=SYS_PTRACE之类的内容启动容器。对吗? -
是的,没错;只是我不是自己启动容器 - 它是由 Dataflow (IIUC) 启动的。我的问题是如何让 Dataflow 做相当于
--cap-add=SYS_PTRACE:)