【问题标题】:Where to store SparkApplication YAML files on Kubernetes cluster?Kubernetes 集群上的 SparkApplication YAML 文件存储在哪里?
【发布时间】:2020-06-02 18:22:31
【问题描述】:
我正在使用 Helm Chart 将 Spark Operator 部署到 GKE。然后我在 YAML 文件中定义了一个 SparkApplication 规范。但是看了User Guide还是不明白:
- 将
SparkApplication YAML 文件存储在 Kubernetes 集群或 Google 存储的什么位置?
- 是否可以/可以将它们与 Spark Operator Helm 图表一起部署到 Spark Master 容器?
- 将
SparkApplication 配置加载到谷歌存储然后运行kubectl apply -f <YAML GS file path> 是不是一个好方法
在我可能遗漏的 Kubernetes 集群或 GS 上存储 SparkApplication 配置的最佳做法是什么?
【问题讨论】:
标签:
apache-spark
kubernetes
google-cloud-platform
kubernetes-helm
【解决方案1】:
解决您的问题:
有很多方法可以存储您的 YAML 文件。您可以将其本地存储在您的 PC、笔记本电脑上,也可以将其存储在云中。在该主题中更进一步,将您的 YAML 文件同步到版本控制系统(例如 Git)将是更好的选择之一,因为您将拥有完整的更改历史记录,并能够检查您所做的更改并在出现故障时回滚. 主要是kubectl 需要访问这些文件。
在 Kubernetes 中没有 master 容器这样的东西。有主节点。主节点是控制和管理一组工作节点(工作负载运行时)的机器
请查看Kubernetes components的官方文档。
-
您可以将 YAML 文件放入您的 Google 存储(存储桶)中。但是您将无法以kubectl apply -f FILE 的方式运行命令。 kubectl 将无法正确解释像 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工具documentation并注意:
gsutil cat 命令不会计算下载数据的校验和。因此,我们建议用户自己验证 gsutil cat 的输出,或者使用 gsutil cp 或 rsync(两者都会自动执行完整性检查)。
-- https://cloud.google.com/storage/docs/gsutil/commands/cat
如果您对此有任何疑问,请告诉我。