java - 从 Kubernetes 运行梁数据流作业

标签 java docker yaml apache-beam google-kubernetes-engine

我很想知道 Beam 数据流作业是否可以使用 kubernetes 运行。我可以看到很多 Spring 数据流作业从 kubernetes 运行,但不是 Beam 数据流。

我可以看到一个例子,如 https://github.com/sanderploegsma/beam-scheduling-kubernetes/blob/master/kubernetes/cronjob.yml

但这并没有解释如何传递 args 参数,例如

args: ["--runner=DataflowRunner --project=$peoject --gcpTempLocation=$gcptemp"]   

https://streambench.wordpress.com/2018/06/07/set-up-the-direct-runner-for-beam/ 对此进行更多扩展

我想将这部分部署在 kubernetes 上。

beam_app_direct:
container_name: "beam_direct_app"
image: "beam_direct_app"
build:
    context: .
    dockerfile: ./Dockerfile-direct
environment:
- YOUR_ENV_PARAMETER=42
- ANOTHER_ENV_PARAMETER=abc
- ...
links:
- ...
# volume:
# - ./your-beam-app /usr/src/your-beam-app
command: "bash ./init.sh"

但我不知道如何部署它。

更新更多详细信息。

我的 Cronjob.yaml 文件

apiVersion: batch/v1
kind: Job
metadata:
      name: "cronjob"
spec:
    template:
    spec:
    containers:
     - name: campaignjob
      image: cronjob
      build:
      context: .
      dockerfile: ./Dockerfile
      command: "bash ./init.sh"
  restartPolicy: Never

kubectl apply -f cronjob.yaml --validate=false

我收到以下错误。

作业“cronjob”无效: *spec.template.spec.containers:必需的值 *spec.template.spec.restartPolicy:不支持的值:“Always”:支持的值:OnFailure、Never

更新: 我很惊讶。我意识到这只是 YAML 文件错误的情况,但即使 4 天后也没有评论。我什至将此问题发送给 Google 团队,但他们要求我使用其他技术。

最佳答案

根据您提供的 github 链接,该作业必须在主节点上运行。在 GKE 中,您无权访问主节点,因为它是托管服务。

我建议使用 Google Cloud Dataflow它是为了运行您所描述的作业而构建的。

关于java - 从 Kubernetes 运行梁数据流作业,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51038899/

相关文章:

python - 在 Python 中,如何将 YAML 映射加载为 OrderedDicts?

java - 用于运行最新版本文件的 Bash 脚本?

docker - 从 Linux docker 访问本地机器上的 Cosmos db 模拟器

selenium - Docker + Rspec + Capybara - 参数 [0] 未定义

docker - 在 docker 容器上保存配置

java - 如何使用 Spring Boot 从 application.yml 读取变量并在 kotlin 测试中使用它

c# - Azure DevOps YAML 管道失败并显示 "A sequence was not expected"

java - 找到范围的交集和重叠并存储结果范围集的最佳算法

java - 为什么 BoundedExecutor 必须捕获 RejectedExecutionException?

java - RxJava 错误处理而不吞掉错误