【问题标题】:Initializing a MySQL database deployed in an AWS EKS初始化部署在 AWS EKS 中的 MySQL 数据库
【发布时间】:2019-04-03 14:11:16
【问题描述】:

我的 AWS EKS 集群中有一个运行 MySQL:5.7 的 pod。我有一个为它初始化和填充数据的 SQL 文件。在普通的 docker-compose 中,我将在我的 docker-compose 文件中为其使用挂载点:

volumes:
  - ./<path-to-my-config-directory>:/etc/mysql/conf.d
  - ./<path-to-my-persistence-directory>:/var/lib/mysql
  - ./<path-to-my-init.sql>:/docker-entrypoint-initdb.d/init.sql

在 EKS 中,我可以创建一个存储类来保存 MySQL 数据。

如何使用我的 init.sql 文件(大约 8GB)来初始化在 EKS 集群中运行的 MySQL pod?

更新:如果您有一个小的 init 文件或有权访问 Kubernetes 主机,还有另一个问题解释了如何执行此操作:How to initialize mysql container when created on Kubernetes?

但就我而言,我使用的是 AWS EKS,我的 init 文件只有几 GB,因此我们将不胜感激。

【问题讨论】:

    标签: mysql kubernetes amazon-eks


    【解决方案1】:

    在 Kubernetes 中也很容易。你可以这样做,

    1. 将您的init.sql 文件放入Kubernetes volume
    2. 将此卷挂载到您的 mysql pod 的 /docker-entrypoint-initdb.d 目录中。

    这里是一个示例 yaml 文件:mysql-init-demo.yaml

    您还可以使用init-containerinit.sql 文件下载到安装在mysql 容器的/docker-entrypoint-initdb.d 目录上的Kubernetes 卷中。

    UPD:正如您在更新中指定的那样,您提到的解决方案对您不起作用。我认为init-container 方法最适合您。在这里,您可以这样做:

    1. 创建一个 pvc。让它的名字是init-script
    2. 现在,将init-container 添加到您的 mysql pod。将这个init-script pvc 挂载到这个init-container 的某个目录中。配置您的init-container,以便将您的init.sql 文件下载到此目录中。

    3. /docker-entrypoint-initdb.d的mysql容器中挂载init-script

    如果您需要任何使用init-container 方法的样品,请告诉我。

    UPD-2:我为init-container 方法添加了一个示例。你可以找到它here

    【讨论】:

    • 这太好了,非常感谢 Emruz。如果您的时间允许,我(我相信这里还有很多其他人)会非常感谢样品。
    • @Reza 我为init-container 方法添加了一个示例。检查 UPD-2
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-10-20
    • 1970-01-01
    • 2019-06-26
    • 2011-03-01
    • 2023-03-30
    • 2018-12-14
    相关资源
    最近更新 更多