Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/68.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
初始化部署在AWS EKS中的MySQL数据库_Mysql_Kubernetes_Amazon Eks - Fatal编程技术网

初始化部署在AWS EKS中的MySQL数据库

初始化部署在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

我的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
卷:
-./:/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
    文件放入一个文件夹中
  • 将此卷装载到mysql pod的
    /docker entrypoint initdb.d
    目录中
  • 这里是一个yaml文件示例:

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

    UPD:正如您在更新中指定的,您提到的解决方案将不适用于您。我认为
    initcontainer
    方法最适合您。以下是您可以做到的:

  • 创建一个pvc。让它的名字是
    initscript
  • 现在,将一个
    init容器添加到mysql pod中。将此
    init脚本
    pvc装载在此
    init容器
    的某个目录中。配置您的
    init容器
    ,以便它将您的
    init.sql
    文件下载到此目录

  • 在mysql容器中的
    /docker entrypoint initdb.d

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


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

    在库伯内特斯也很容易。你可以这样做

  • 将您的
    init.sql
    文件放入一个文件夹中
  • 将此卷装载到mysql pod的
    /docker entrypoint initdb.d
    目录中
  • 这里是一个yaml文件示例:

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

    UPD:正如您在更新中指定的,您提到的解决方案将不适用于您。我认为
    initcontainer
    方法最适合您。以下是您可以做到的:

  • 创建一个pvc。让它的名字是
    initscript
  • 现在,将一个
    init容器添加到mysql pod中。将此
    init脚本
    pvc装载在此
    init容器
    的某个目录中。配置您的
    init容器
    ,以便它将您的
    init.sql
    文件下载到此目录

  • 在mysql容器中的
    /docker entrypoint initdb.d

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


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

    这太好了,非常感谢埃姆鲁兹。如果您的时间允许,我(我相信在座的许多其他人)会非常感谢您提供的示例。@Reza我已经为
    init container
    方法添加了一个示例。检查UPD-2这很好,非常感谢Emruz。如果您的时间允许,我(我相信在座的许多其他人)会非常感谢您提供的示例。@Reza我已经为
    init container
    方法添加了一个示例。检查UPD-2