首页 > 解决方案 > Kubernetes 集群上的 SparkApplication YAML 文件存储在哪里?

问题描述

我正在使用Helm Chart将 Spark Operator 部署到 GKE。然后我SparkApplication在 YAML 文件中定义一个规范。但是在阅读了用户指南后,我仍然不明白:

  1. SparkApplication在Kubernetes 集群或 Google 存储上存储YAML 文件的位置?
  2. 是否可以/可以将它们与 Spark Operator Helm 图表一起部署到 Spark Master 容器?
  3. SparkApplication将配置加载到谷歌存储然后运行的好方法吗kubectl apply -f <YAML GS file path>

SparkApplication在我可能遗漏的 Kubernetes 集群或 GS 上存储配置的最佳实践是什么?

标签: apache-sparkkubernetesgoogle-cloud-platformkubernetes-helm

解决方案


为了解决您的问题:

  1. 有很多可能性来存储您的YAML文件。您可以将其本地存储在您的 PC、笔记本电脑上,也可以将其存储在云中。在该主题中更进一步,将YAML文件同步到版本控制系统(例如 Git)将是更好的选择之一,因为您将拥有更改的完整历史记录,并且能够检查您所做的更改并在出现故障时回滚。主要的是kubectl需要访问这些文件。

  2. Kubernetes 中没有主容器之类的东西。有主节点。主节点是控制和管理一组工作节点(工作负载运行时)的机器,请查看有关Kubernetes 组件的官方文档。

  3. 您可以将YAML文件放在您的 Google 存储(存储桶)中。但是您将无法以某种方式运行命令kubectl apply -f FILEkubectl将无法正确解释文件位置,如gs://NAME_OF_THE_BUCKET/magical-deployment.yaml.

    一种运行方式kubectl apply -f FILE_NAME.yaml是将其存储在本地并在外部同步。

    您可以通过 访问存储桶内的数据gsutil。您可以尝试修补gsutil cat gs://NAME_OF_THE_BUCKET/magical-deployment.yaml并尝试将其导入kubectl,但我不推荐这种方法。

    在这种情况下,请参阅gsutil工具文档并注意:

    gsutil cat 命令不计算下载数据的校验和。因此,我们建议用户自己验证 gsutil cat 的输出,或者使用 gsutil cp 或 rsync(两者都会自动执行完整性检查)。

    -- https://cloud.google.com/storage/docs/gsutil/commands/cat

如果您对此有任何疑问,请告诉我。


推荐阅读