Kubernetes + MySQL:在Kubernetes容器中创build自定义数据库和用户

我正尝试使用Google Container Engine和Kubernetes创build一个Django + MySQL应用程序。 继官方MySQL泊坞窗图像和Kubernetes文档创buildMySQL容器的文档后,我创build了以下复制控制器

apiVersion: v1 kind: ReplicationController metadata: labels: name: mysql name: mysql spec: replicas: 1 template: metadata: labels: name: mysql spec: containers: - image: mysql:5.6.33 name: mysql env: #Root password is compulsory - name: "MYSQL_ROOT_PASSWORD" value: "root_password" - name: "MYSQL_DATABASE" value: "custom_db" - name: "MYSQL_USER" value: "custom_user" - name: "MYSQL_PASSWORD" value: "custom_password" ports: - name: mysql containerPort: 3306 volumeMounts: # This name must match the volumes.name below. - name: mysql-persistent-storage mountPath: /var/lib/mysql volumes: - name: mysql-persistent-storage gcePersistentDisk: # This disk must already exist. pdName: mysql-disk fsType: ext4 

根据文档,传递环境variablesMYSQL_DATABASE。 MYSQL_USER,MYSQL_PASSWORD,将使用该密码创build一个新用户并为新创build的数据库分配权限。 但是这不会发生。 当我SSH进入该容器,ROOT密码设置。 但是用户和数据库都没有创build。

我已经通过在本地运行并传递相同的环境variables来testing这个

 docker run -d --name some-mysql \ -e MYSQL_USER="custom_user" \ -e MYSQL_DATABASE="custom_db" \ -e MYSQL_ROOT_PASSWORD="root_password" \ -e MYSQL_PASSWORD="custom_password" \ mysql 

当我SSH进入该容器,数据库和用户创build,一切工作正常。

我不知道我在这里做错了什么。 任何人都可以指出我的错误。 我一直在这一整天。

编辑:2016年9月20日

正如所请求的@Julien Du Bois磁盘被创build。 它出现在云控制台中,当我运行describe命令时,我得到以下输出

 Command : gcloud compute disks describe mysql-disk Result: creationTimestamp: '2016-09-16T01:06:23.380-07:00' id: '4673615691045542160' kind: compute#disk lastAttachTimestamp: '2016-09-19T06:11:23.297-07:00' lastDetachTimestamp: '2016-09-19T05:48:14.320-07:00' name: mysql-disk selfLink: https://www.googleapis.com/compute/v1/projects/<details-withheld-by-me>/disks/mysql-disk sizeGb: '20' status: READY type: https://www.googleapis.com/compute/v1/projects/<details-withheld-by-me>/diskTypes/pd-standard users: - https://www.googleapis.com/compute/v1/projects/<details-withheld-by-me>/instances/gke-cluster-1-default-pool-e0f09576-zvh5 zone: https://www.googleapis.com/compute/v1/projects/<details-withheld-by-me> 

我提到了很多教程和谷歌云例子。 要在本地运行mysql docker容器,我的主要参考是Docker Hub上的官方图像页https://hub.docker.com/_/mysql/

这适用于我和本地创build的容器有一个新的数据库和用户权限。

对于kubernetes,我的主要参考如下

https://cloud.google.com/container-engine/docs/tutorials/persistent-disk/

我只是试图连接到它使用Django容器。

您在部署中设置了mysql磁盘,并且您拥有的磁盘是自定义磁盘。 将pdName更改为自定义磁盘,它将工作。