xml - 想要在 K8s 部署后加载一些 XML 文件
问题描述
对于我的项目,我想在需要时在 adhoc 上加载一些 XML 的后期部署(不想在每个部署上运行)。由于 k8s 集群的吞吐量不佳,直接从 Jenkins 或 GITLAB 管道加载它们需要更长的时间。我正在使用 Helm 进行 k8s 部署。有什么更好的方法或步骤可以让我的临时工作运行得更快。?尝试在我被建议不要这样做的可选阶段部署后传递我的服务帐户或我的帐户凭据以运行脚本。
来自 pod 的数据加载任务需要 10 分钟,但来自 Jenkins 或 GITLAB 需要 70-90 分钟。
限制:
- 服务帐户在 CLI 部署后受到限制 bash 运行脚本
- 根据最佳实践,将无法在管道中使用我的个人凭据
现在,我在需要时从本地的 shell 脚本中运行此手动步骤,如下所示。但是需要添加这部分管道。任何帮助/建议。?
pkstoken -cluster=<cluster> -user=<me> ns=sade_test1
echo "doing dataload import for $1"
if [ $1 == sade-t1 ]; then
Namespace="sade_test1"
Podname="sade_test_p1"
kubectl -n $Namespace exec -it $Podname -- bash -c "cd /opt/tomcat/webapp/app-1/bin/ && echo import dataload_custom.xml"
解决方案
我唯一想到的是将emptyDir挂载到应该创建这些 XML 文件的位置。稍后您可以使用 nginx(或一些轻量级 Web 服务器)创建一个 sidecar 容器,该容器可以emptyDir
通过 HTTP 读取此文件。您可以使用或service
下载此文件。curl
wget
服务连接到任何处于Ready
状态的 pod,因此在第一个 pod 就绪后,文件也将可供下载。
推荐阅读
- r - 当我使用散点图时,是否可以将一个 ggplot 添加到另一个之上?
- wordpress - 如何获得 Woocommerce 顶级产品类别?
- kotlin - 如何在 groupBy 的结果列表中获得不同的值
- javascript - 如果文本的值不起作用,则从按钮中删除禁用的属性
- python - 当单个键有多个值时拆分 Python 字典
- python - 如何从长文件中打印最大值和最小值?
- r - R 似乎在下划线后忽略了部分变量名
- node.js - 使用节点读取文件时JavaScript堆内存不足
- serilog - 从 appsettings 更改标准 MSSqlServerSink 表
- android - 自 API 28 以来是否再次需要 android.permission.INTERNET?