使大型静态数据文件可供 kubernetes pod 使用

2024-05-04

我有一些相当大的 UTF-8 数据文件,pod 需要在启动时加载到内存中 - 从几百 KB 到大约 50 MB。

该项目(包括 helm 图表)是开源的,但其中一些文件不是开源的 - 否则我可能只会将它们包含在图像中。我最初的想法是创建配置映射,但我的理解是 50 MB 超出了配置映射的预期大小,因此在某些情况下这可能最终会成为问题。我认为秘密也太过分了——它们不是秘密,只是不应该放在开放的互联网上。

出于性能原因,我宁愿在每个 Pod 的内存中都有一个副本,而不是使用共享缓存,但我可能是错的。至少这可能会增加比其价值更多的复杂性。

configmaps 是可行的方法吗?


从我的角度来看,最好的解决方案是使用初始化容器 https://kubernetes.io/docs/concepts/workloads/pods/init-containers/从安全存储下载文件(正如所提到的安德鲁·萨维尼赫 https://stackoverflow.com/users/284111/andrew-savinykh在评论中),添加到 pod 的卷,然后在 pod 的主容器中使用它。

请参阅example https://kubernetes.io/docs/tasks/configure-pod-container/configure-pod-initialization/#create-a-pod-that-has-an-init-container:

apiVersion: v1
kind: Pod
metadata:
  name: init-demo
spec:
  containers:
  - name: nginx
    image: nginx
    ports:
    - containerPort: 80
    volumeMounts:
    - name: workdir
      mountPath: /usr/share/nginx/html
  # These containers are run during pod initialization
  initContainers:
  - name: install
    image: busybox
    command:
    - wget
    - "-O"
    - "/work-dir/index.html"
    - http://kubernetes.io
    volumeMounts:
    - name: workdir
      mountPath: "/work-dir"
  dnsPolicy: Default
  volumes:
  - name: workdir
    emptyDir: {}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使大型静态数据文件可供 kubernetes pod 使用 的相关文章

  • 在S3中捕获Kubernetes Spark驱动程序和执行程序日志并在历史服务器中查看

    我正在 Kubernetes 上使用 Spark submit cli 运行 Spark 3 0 0 和 Hadoop 2 7 如下所示 spark submit master k8s https api k8s my domain com
  • 如何在 configmap.yaml (Helm) 中使用 json 文件?

    我正在使用 Helm 部署到 Kubernetes 集群 我研究了配置映射 发现可以从文件中检索数据并将其放入配置映射中 我有以下内容configmap yaml kind ConfigMap apiVersion v1 metadata
  • 如何通过双击图标来执行JAVA程序?

    我写了一个java程序 现在我想在没有 IDE Eclipse 等的情况下打开我的控制台 java 应用程序 只需双击桌面上的可执行版本即可 我已将 java 项目导出为 Runnable JAR 文件 但无法打开 当我尝试使用cmd打开应
  • f.read 为空

    我在解释器中完成这一切 loc1 council council1 file1 open loc1 r 此时我可以执行 file1 read 并将文件的内容作为字符串打印到标准输出 但如果我添加这个 string1 file1 read 字
  • 如何为我的文件格式选择一个好的幻数?

    我正在从头开始设计一个二进制文件格式 我想在开头包含一些魔术字节 以便可以轻松识别它 我该如何选择哪些字节 我不知道有任何幻数的中央注册表 所以这只是一个随机选择一些尚未被附近 UNIX 机器上的文件命令识别的东西的问题吗 远离超短的神奇数
  • 就绪探测失败:超时:1秒内无法连接服务“:8080”

    我正在尝试使用 minikube 构建微服务映像并将其部署到在我的开发计算机上运行的单节点 Kubernetes 集群 我正在使用 Google 的云原生微服务演示应用程序 Online Boutique 来了解 Kubernetes Is
  • 如何在 Istio 上禁用 mtls?

    我在使用 Istio 连接 Kubernetes 上的两个服务时遇到问题 我的服务向 elasticsearch 发出 POST 请求 2020 11 18T21 51 53 758079131Z org elasticsearch cli
  • 为什么 Cassandra 客户端在生产中没有 epoll 时会失败? [复制]

    这个问题在这里已经有答案了 当我在本地运行服务时 我收到一条警告 指出 epoll 不可用 因此它使用 NIO 很公平 当我将其部署到 Kubernetes 中时 我得到了以下信息 这导致服务无法运行 2017 03 29T19 09 22
  • Kubernetes 上的气流:Errno 13 - 权限被拒绝:'/opt/airflow/logs/scheduler

    我在 Kubernetes 上运行 Airflow稳定舵图 https github com helm charts tree master stable airflow 我在 AWS 环境中运行它 无论是否安装任何用于日志存储的外部卷 都
  • 如何在没有部署 K8S 的情况下重启 pod?

    我部署了一个弹性搜索 https www elastic co elasticsearch使用此命令在 K8S 上集群helm install elasticsearch elastic elasticsearch 我可以看到 Pod 正在
  • Zend_Cache_Backend_Sqlite 与 Zend_Cache_Backend_File

    目前我正在使用 Zend Cache Backend File 来缓存我的项目 尤其是来自外部 Web 服务的响应 我在想是否能找到将结构迁移到 Zend Cache Backend Sqlite 的一些好处 可能的优点是 文件系统有序 缓
  • 为什么我需要一块一块地读取文件来缓冲?

    我看到了以下用于将文件放入数组的代码 该数组又用作将其插入 blob 列的 SQL 命令的参数 using FileStream fs new FileStream soubor FileMode Open FileAccess Read
  • python 中的文件输出给我垃圾

    当我编写以下代码时 我得到的输出是垃圾 这只是一个寻找素数的简单程序 当第一个 for 循环范围仅达到 1000 时 它会起作用 但一旦范围变大 程序将无法输出有意义的数据 output open output dat w for i in
  • 当前平台不支持桌面 API

    我遇到过这个错误 java lang UnsupportedOperationException 当前平台不支持桌面 API 我将从我的 java 应用程序中打开一个文件 我用这个方法 Desktop getDesktop open new
  • xhr 响应 for 循环不起作用

    我有 xhr 和 for 循环 它的工作非常罕见 for var i 0 i lt this files length i var xhr new XMLHttpRequest xhr upload onprogress function
  • c 使用 lseek 以相反顺序复制文件

    我已经知道如何从一开始就将一个文件复制到另一个文件 但是我如何修改程序以按相反的顺序复制它 源文件应具有读取访问权限 目标文件应具有读写执行权限 我必须使用文件控制库 例如 FILE A File B should be ABCDEF FE
  • Linux下单个目录下文件过多会怎样?

    如果一个目录中有大约 1 000 000 个单独的文件 大部分大小为 100k 其中没有其他目录和文件 是否会以任何其他可能的方式降低效率或产生缺点 ARG MAX 会对此提出异议 例如 rm rf 在目录中时 会说 参数太多 想要执行某种
  • 将文件标记为从 Python 中删除?

    在我的一个脚本中 我需要删除当时可能正在使用的文件 我知道我无法删除正在使用的文件 直到它不再使用为止 但我也知道我可以将该文件标记为由操作系统 Windows XP 删除 我将如何在 Python 中做到这一点 以及另一个不依赖于 pyw
  • Kubernetes,VolumeMount 一个文件,而不是一个目录

    我将使用 K8S 来编排 docker 容器 在 k8s 中 我需要从主机目录复制一个文件 configs nginx cas server conf 到 pod 容器目录 etc nginx nginx conf 但是目前的k8s只允许挂
  • 如何读取 XML 文件并从中获取值以在 PHP 编码的 HTML 页面中显示

    我有一个 XML 文件 其中有一些重复的标签 其中包含不同的值 我需要获取这些值并显示在我的网页中 请帮助我得到这个 如果您使用 PHP5 可以查看 SimpleXML 您可以在这里找到介绍教程 http www w3schools com

随机推荐