初始化部署在AWS EKS中的MySQL数据库
我的AWS EKS集群中有一个运行MySQL:5.7的pod。我有一个SQL文件,用于初始化和填充数据。在普通docker compose中,我将在docker compose文件中为其使用装载点:初始化部署在AWS EKS中的MySQL数据库,mysql,kubernetes,amazon-eks,Mysql,Kubernetes,Amazon 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-m
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
卷:
-./:/etc/mysql/conf.d
-./:/var/lib/mysql
-./:/docker-entrypoint-initdb.d/init.sql
在EKS中,我可以创建一个存储类来保存MySQL数据
如何使用init.sql文件(大约8GB)初始化EKS集群中运行的MySQL吊舱
更新:如果您有一个小的init文件或可以访问Kubernetes主机,那么还有一个问题可以解释如何执行此操作:
在我的例子中,我使用的是AWS EKS,我的初始化文件只有几GB,因此非常感谢您的帮助。在Kubernetes中也很容易。你可以这样做
init.sql
文件放入一个文件夹中/docker entrypoint initdb.d
目录中init容器
将init.sql
文件下载到Kubernetes卷中,该卷安装在mysql容器的/docker entrypoint initdb.d
目录中
UPD:正如您在更新中指定的,您提到的解决方案将不适用于您。我认为initcontainer
方法最适合您。以下是您可以做到的:
initscript
init容器添加到mysql pod中。将此init脚本
pvc装载在此init容器
的某个目录中。配置您的init容器
,以便它将您的init.sql
文件下载到此目录
/docker entrypoint initdb.d
init container
方法的任何样本,请告诉我
UPD-2:我已经为
init container
方法添加了一个示例。你可以找到它。在库伯内特斯也很容易。你可以这样做
init.sql
文件放入一个文件夹中/docker entrypoint initdb.d
目录中init容器
将init.sql
文件下载到Kubernetes卷中,该卷安装在mysql容器的/docker entrypoint initdb.d
目录中
UPD:正如您在更新中指定的,您提到的解决方案将不适用于您。我认为initcontainer
方法最适合您。以下是您可以做到的:
initscript
init容器添加到mysql pod中。将此init脚本
pvc装载在此init容器
的某个目录中。配置您的init容器
,以便它将您的init.sql
文件下载到此目录
/docker entrypoint initdb.d
init container
方法的任何样本,请告诉我
UPD-2:我已经为
init container
方法添加了一个示例。你可以找到它。这太好了,非常感谢埃姆鲁兹。如果您的时间允许,我(我相信在座的许多其他人)会非常感谢您提供的示例。@Reza我已经为init container
方法添加了一个示例。检查UPD-2这很好,非常感谢Emruz。如果您的时间允许,我(我相信在座的许多其他人)会非常感谢您提供的示例。@Reza我已经为init container
方法添加了一个示例。检查UPD-2