当前位置: 首页 > 面试题库 >

在Kubernetes上创建MySQL容器时如何初始化?

堵浩波
2023-03-14
问题内容

我想在容器的MySQL上设置初始数据。在docker-compose.yml中,此类代码可以在运行容器时创建初始数据。

volumes:
  - db:/var/lib/mysql
  - "./docker/mysql/conf.d:/etc/mysql/conf.d"
  - "./docker/mysql/init.d:/docker-entrypoint-initdb.d"

但是,运行时如何在Kubernetes上创建初始数据?


问题答案:

根据MySQL
Docker映像README,与容器启动时的数据初始化有关的部分是确保所有初始化文件都已安装到容器的/docker- entrypoint-initdb.d文件夹中。

您可以在中定义初始数据ConfigMap,然后将相应的卷挂载到pod中,如下所示:

apiVersion: extensions/v1beta1
kind: Pod
metadata:
  name: mysql
spec:
  containers:
  - name: mysql
    image: mysql        
    ports:
      - containerPort: 3306
    volumeMounts:
      - name: mysql-initdb
        mountPath: /docker-entrypoint-initdb.d
  volumes:
    - name: mysql-initdb
      configMap:
        name: mysql-initdb-config
---
apiVersion: v1
kind: ConfigMap
metadata:
  name: mysql-initdb-config
data:
  initdb.sql: |
    CREATE TABLE friends (id INT, name VARCHAR(256), age INT, gender VARCHAR(3));
    INSERT INTO friends VALUES (1, 'John Smith', 32, 'm');
    INSERT INTO friends VALUES (2, 'Lilian Worksmith', 29, 'f');
    INSERT INTO friends VALUES (3, 'Michael Rupert', 27, 'm');


 类似资料:
  • 我已经创建了一个有2个INIT容器的作业荚,我的作业成功完成,但没有INIT容器的迹象 对我来说,作业应该在开始之前等待2个init容器的完成 操作系统为Red Hat Enterprise Linux Server 7.3(Maipo) 提前感谢您的帮助。

  • 我试图在Google Container Engine(GKE)上创建一个kubernetes NFS卷,并让部署使用它。 我在github存储库kubernetes-nfs-volume-on-gke中显示了以下几个步骤: 创建GKE集群和GCE持久化磁盘 配置kubectl处理GKE集群的上下文 创建PersistentVolume(PV)和PersistentVolumeClaim(PVC)

  • 但不知何故,豆荚卡在“容器创建”的状态,当我运行docker图像时,我看不到nginx图像被拉出。通常nginx图像没有那么大,所以现在必须已经拉了(15分钟)。kubectl description pods给出了pod沙箱创建失败的错误,kubernetes将重新创建它。 我搜索了关于这个问题的所有内容,并尝试了stackoverflow上的解决方案(重新启动以重新启动集群,搜索描述豆荚,新的

  • 在job.yaml下面用于创建作业。未创建初始化容器。 [root@app]#kubectl版本客户端版本:version.info{Major:“1”,Minor:“15”,GitVersion:“v1.15.5”,GitCommit:“”,GitTreeState:“Clean”,BuildDate:“2019-10-15T19:16:51Z”,GoVersion:“Go1.12.10”,编译

  • 问题内容: 我已经学习了一个星期左右的时间来使用EF,并且一直困扰于创建/更新数据库的问题。如果数据库不存在,我可以创建一个初始化器来创建数据库: 或者我可以创建一个配置来迁移数据库 每个都可以正常工作,但我还没有想办法做到这两个。我可以通过更改SetInitializer调用在两个初始值设定项之间进行切换,但是如果我想创建数据库(如果该数据库不存在的话),并且还要迁移它(如果这样做的话)呢?我需

  • 问题内容: 我正在尝试使用MySQL数据库创建一个容器并将架构添加到这些数据库。 我当前的Dockerfile是: 为了创建容器,我遵循Docker提供的文档并执行以下命令: 但是,当我执行此命令时,未创建容器,并且在容器状态下,可以看到未成功执行CMD,实际上仅执行了命令。 无论如何,有没有一种方法可以使用架构初始化数据库,或者我需要手动执行这些操作? 问题答案: 对于如此长的答案,我感到很抱歉