我正在尝试了解我能用 Dagster 真正做什么。
我已经将一些 Python 代码容器化并推送到容器注册表。 我想知道在 Dagster'op 或资产中我是否可以读取这些图像并在我的 Kubernetes 集群上运行最终的管道。
例如,我可能有一个在 GCR 上执行一些乘法的图像。 Dagster 是否提供任何工具来提取此图像,然后允许我执行以下操作:
@asset(PULL_IMAGE)
def my_asset():
from MY_IMAGE_CODE import function_1, function_2
function_1()
然后,我想使用 Dagster-kubernetes 在 Kubernetes 上运行这个管道。
我试图从 Dagster 文档中获取想法,但我找不到任何东西。 我查看了各种 GitHub 存储库,但其中许多都使用旧版本的 Dagster。 我跳入 https://docs.dagster.io/_apidocs/libraries/dagster-k8s 和 https://dagster.io/integrations/dagster-docker 但我不太明白如何链接它们。
根据您的具体用例,Dagster Pipes 和
dagster-k8s
可能会解决您的问题。据他们说,是
用于将计算集成并启动到 Dagster 远程执行环境中的协议以及用于构建这些集成的工具包。
在您的示例中,它看起来像这样:
@asset
def assets_def(
context: AssetExecutionContext,
pipes_k8s_client: PipesK8sClient,
) -> MaterializeResult:
return pipes_k8s_client.run(
image="some_image", context=context
).get_materialize_result()