Kubernetes 不将数据复制到已安装的卷中

2023-11-30

根据这里的文档:https://docs.docker.com/storage/volumes/

如果您启动一个创建新卷的容器(如上所述),并且该容器在要挂载的目录(例如上面的 /app/)中具有文件或目录,则该目录的内容将被复制到该卷中。然后容器安装并使用该卷,并且使用该卷的其他容器也可以访问预先填充的内容。

换句话说,期望是,如果我在 /var/lib/mysql 中有这样的文件

root@d8fa9a8b305a:/var/lib/mysql# ls
auto.cnf         xtz           ib_logfile0  ibdata1  mysql               sys
debian-5.7.flag  ib_buffer_pool  ib_logfile1  ibtmp1   performance_schema

然后,当我将卷安装到/var/lib/mysql那么容器中的所有文件都应该复制到我的卷中。

但我发现这并没有发生:

/var/lib/mysql/mysql # ls
auto.cnf        ib_buffer_pool  ib_logfile0     ib_logfile1     ibdata1

这是我挂载到 /var/lib/mysql 的卷的内容,正如您所看到的,该数据与 docker 映像本身的 /var/lib/mysql 中存在的数据不同。所以,结果,启动失败。

Note:有问题的卷实际上是由 kubernetes 挂载的。所以,我在这里做出一个主要假设

volumeMounts:
        - name: xtz-persistent-storage
          mountPath: "/var/lib/mysql/"

相当于这样做:docker run -p 443:443 --rm -v mysql:/var/lib/mysql <image>


库伯内斯Volumes和 Docker 不一样Volumes.

来自 Kubernetes文档:

Docker 也有卷的概念,尽管它有点松散且管理较少。在 Docker 中,卷只是磁盘上或另一个容器中的目录。生命周期不受管理,直到最近才出现本地磁盘支持的卷。 Docker 现在提供卷驱动程序,但目前功能非常有限(例如,从 Docker 1.7 开始,每个容器仅允许一个卷驱动程序,并且无法将参数传递给卷)。

另一方面,Kubernetes 卷具有明确的生命周期 - 与包含它的 Pod 相同。因此,卷的寿命比 Pod 中运行的任何容器都长,并且数据在容器重新启动时得以保留。当然,当 Pod 不复存在时,卷也将不复存在。也许比这更重要的是,Kubernetes 支持多种类型的卷,并且 Pod 可以同时使用任意数量的卷。

从本质上讲,卷只是一个目录,其中可能包含一些数据,Pod 中的容器可以访问该目录。该目录的形成方式、支持它的介质及其内容均由所使用的特定卷类型决定。

所以,虽然概念的名称相同,但这是不同的volume.

在挂载时,Kubernetes 会覆盖一个目标目录。

不幸的是,目前还没有办法合并已安装卷和容器中的内容。这是其中之一讨论关于它。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Kubernetes 不将数据复制到已安装的卷中 的相关文章

  • “create_date”时间戳字段的默认值无效

    我有以下 sql 创建语句 mysql gt CREATE TABLE IF NOT EXISTS erp je menus gt id INT 11 NOT NULL AUTO INCREMENT gt name VARCHAR 100
  • DataTables 第 2 页的分页未调用放大弹出窗口

    所以我有这个启用分页的数据表 我编码了一种方式 以便用户可以编辑表的行 当用户调用它在放大弹出窗口中打开的编辑页面时 它在第 1 页 从第 2 页起都运行良好 DataTable 及其前面停止调用 Magnific Popup 我只是不明白
  • 为什么我的 GKE 集群没有显示任何事件?

    我有一个 GKE 集群并在其上部署了一些工作负载 我注意到每当我这样做kubectl get events all namespaces 我没有看到任何结果 kubectl describe deployment
  • 码头工人。将动态主机 IP 添加到容器上的环境变量

    我有一个非常特殊的场景 包含一些 docker 容器的虚拟机 该容器之一需要知道主机 IP 问题是如果我在容器构建时传递主机 IP 或使用 e在 docker run 命令上 它在容器上保持 静态 始终相同 那一刻 该虚拟机可以位于笔记本电
  • 具有“日期之间”的 CakePHP 模型

    我有一个很大的数据集 超过十亿行 数据在数据库中按日期分区 因此 我的查询工具必须在每个查询上指定一个 SQL Between 子句 否则它将必须扫描每个分区 而且 它会在返回之前超时 所以 我的问题是 分区的数据库中的字段是日期 使用 C
  • ResourceVersion 和 Generation 之间有什么区别?

    在 Kubernetes 对象元数据中 有的概念resourceVersion and generation https github com kubernetes community blob master contributors de
  • MySQL 两种日期格式之间的转换

    用户将以这种格式输入日期 2017 年 2 月 17 日 存储在 mysql 数据库中的日期格式如下 2015 02 17 00 00 00 我想做的是 SELECT FROM insurance where DATE FORMAT in
  • Mysql UUID_SHORT() 与 UUID() 相当吗

    如果您愿意的话 请快速提出问题或意见 我需要为数据库表生成一些 UUID 自动递增密钥不会减少它 因为我还需要密钥在数据库和系统中保持唯一 UUID 工作正常 但其输出对于行将导出到的某些系统来说太长 UUID SHORT 做得很好 我已经
  • 使用嵌入qt的mysql?

    我正在尝试使用嵌入 QT 的 mysql 我已经有一个与 mysqld 链接的 Qt mysql 插件 该插件可以很好地加载嵌入式数据库 但 QT 没有简单的方法来设置 dataDir 等嵌入式选项 我在这里看到 http doc qt i
  • Postgres LEFT JOIN 与 WHERE 条件

    我需要使用 where 条件左连接两个表 Table time table id rid start date end date 1 2 2017 07 01 00 00 00 2018 11 01 00 00 00 2 5 2017 01
  • Gmail 搜索怎么这么快?

    搜索这么多字符的最有效方法是什么 你怎么认为 假设网站是用 PHP 和 MySQL 构建的 我应该学习什么才能尽可能有效地构建它 有什么我应该学习的算法吗 文本索引算法 https stackoverflow com questions 4
  • 如何在 kubernetes 上使多个 pod 相互通信

    我是 Kubernetes 新手 我正在尝试通过 microk8s 将应用程序部署到 Kubernetes 该应用程序包含Python Flask后端 Angular前端 Redis和MySQL数据库 我将映像部署在多个 Pod 中 状态显
  • 如何更改mysql.sock?

    我已经通过二进制安装安装了mysql并按照以下步骤操作http dev mysql com doc refman 5 0 en binary installation html http dev mysql com doc refman 5
  • 如何在 .Net Core 3、Visual Studio 2019 和 docker 中使用“dotnet watch run”

    我正在使用 Visual Studio 2019 来使用 docker 和 NET Core 3 我通过将 Dockerfile 添加到我的项目 右键单击项目 gt 添加 gt Docker 支持 来容器化我的应用程序 并且我能够启动它 但
  • Mac 上的 Emacs 和 MySQL

    我尝试使用 sql mysql 模式 但 emacs 无法找到文件 目录 mysql 但是 我可以从终端访问它 如何将 emacs 中的 mysql 指向 usr local mysql bin mysql setq sql mysql p
  • Docker 中的 Electron:SIGTRAP、ELIFECYCLE、errno1

    介绍 我有一个演示电子应用程序 运行时运行良好npm run start从我的Mac 我有兴趣将应用程序移至 Docker 容器中 但是当docker compose达到electron命令步骤 我得到以下信息 gt electron no
  • 对不同的数据库和表进行一次性查询

    我有一个 Rails 应用程序 侧面有一个 WordPress 博客 完全单独位于 blog 客户想要 Rails 应用程序主页上的最新博客文章 因此我需要对 word press 数据库进行一次性 mysql 查询 我将如何在 Rails
  • Docker Build 找不到 pip

    尝试关注一些 1 https aws amazon com blogs aws run docker apps locally using the elastic beanstalk eb cli 2 http docs aws amazo
  • 使用整数数组设置外键

    我对使用 SQL 还很陌生 但我在 Stack Overflow 上遇到过这个关于使用标签的问题 推荐用于标记或标记的 SQL 数据库设计 https stackoverflow com questions 20856 recommende
  • 导轨中的多个 DB 连接

    我正在尝试在 ROR 应用程序中连接多个数据库 我的 database yml 如下所示 在你的database yml文件中 发展 adapter mysql username root password database example

随机推荐