初始化部署在 AWS EKS 中的 MySQL 数据库
Initializing a MySQL database deployed in an AWS EKS
我的 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 中,我可以创建一个存储 class 来保存 MySQL 数据。
如何使用我的 init.sql 文件(大约 8GB)来初始化 EKS 集群中的 MySQL pods 运行?
更新: 还有一个问题解释了如果您有一个小的 init 文件或可以访问 Kubernetes 主机时如何做到这一点:
但就我而言,我使用的是 AWS EKS,我的初始文件有几千兆字节,因此我们将不胜感激。
在 Kubernetes 中也很容易。您可以按照以下方式进行,
- 将您的
init.sql
文件放入 Kubernetes volume.
- 将此卷装载到 mysql pod 的
/docker-entrypoint-initdb.d
目录中。
这是一个示例 yaml 文件:mysql-init-demo.yaml
您还可以使用 init-container
将 init.sql
文件下载到安装在 mysql 容器的 /docker-entrypoint-initdb.d
目录中的 Kubernetes 卷中。
UPD: 正如您在更新中指定的那样,您提到的解决方案对您不起作用。我认为 init-container
方法最适合您。以下是您可以执行的操作:
- 创建 PVC。让它的名字是
init-script
.
现在,将 init-container
添加到您的 mysql 连播中。将这个 init-script
pvc 挂载到这个 init-container
的某个目录。配置您的 init-container
以便将您的 init.sql
文件下载到此目录。
在 mysql 容器中安装 init-script
/docker-entrypoint-initdb.d
如果您需要使用 init-container
方法的任何示例,请告诉我。
UPD-2: 我已经为 init-container
方法添加了一个示例。你可以找到它 here.
我的 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 中,我可以创建一个存储 class 来保存 MySQL 数据。
如何使用我的 init.sql 文件(大约 8GB)来初始化 EKS 集群中的 MySQL pods 运行?
更新: 还有一个问题解释了如果您有一个小的 init 文件或可以访问 Kubernetes 主机时如何做到这一点:
但就我而言,我使用的是 AWS EKS,我的初始文件有几千兆字节,因此我们将不胜感激。
在 Kubernetes 中也很容易。您可以按照以下方式进行,
- 将您的
init.sql
文件放入 Kubernetes volume. - 将此卷装载到 mysql pod 的
/docker-entrypoint-initdb.d
目录中。
这是一个示例 yaml 文件:mysql-init-demo.yaml
您还可以使用 init-container
将 init.sql
文件下载到安装在 mysql 容器的 /docker-entrypoint-initdb.d
目录中的 Kubernetes 卷中。
UPD: 正如您在更新中指定的那样,您提到的解决方案对您不起作用。我认为 init-container
方法最适合您。以下是您可以执行的操作:
- 创建 PVC。让它的名字是
init-script
. 现在,将
init-container
添加到您的 mysql 连播中。将这个init-script
pvc 挂载到这个init-container
的某个目录。配置您的init-container
以便将您的init.sql
文件下载到此目录。在 mysql 容器中安装
init-script
/docker-entrypoint-initdb.d
如果您需要使用 init-container
方法的任何示例,请告诉我。
UPD-2: 我已经为 init-container
方法添加了一个示例。你可以找到它 here.