我的AWS EKS集群中有一个运行MySQL:5.7的容器。我有一个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?
更新:还有一个问题,说明了如果您的初始化文件很小或可以访问Kubernetes主机的方法:How to initialize mysql container when created on Kubernetes?
但是,就我而言,我在AWS EKS上,并且我的init文件只有几GB,因此任何帮助将不胜感激。
答案 0 :(得分:1)
在Kubernetes中也很容易。您可以按照以下步骤进行操作,
init.sql
文件放入Kubernetes volume。/docker-entrypoint-initdb.d
目录中。这是一个示例yaml文件:mysql-init-demo.yaml
您还可以使用init-container
将init.sql
文件下载到安装在mysql容器/docker-entrypoint-initdb.d
目录中的Kubernetes卷中。
UPD::正如您在更新中指定的那样,您引用的解决方案将对您不起作用。我认为init-container
方法最适合您。这是您的操作方式:
init-script
。现在,向您的mysql pod中添加一个init-container
。将此init-script
pvc挂载到此init-container
的某个目录。配置您的init-container
,使其将您的init.sql
文件下载到此目录中。
在init-script
的mysql容器中安装/docker-entrypoint-initdb.d
让我知道您是否需要使用init-container
方法的样本。
UPD-2::我为init-container
方法添加了一个示例。您可以找到它here。