我正在嘗試使用Google Container Engine和Kubernetes創建一個Django + MySQL應用程序。以下來自官方的MySQL碼頭工人形象和Kubernetes文檔的文檔創建我創建了以下複製控制器Kubernetes + MySQL:在Kubernetes容器中創建自定義數據庫和用戶
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
按照文檔MySQL的容器中,通過環境變量MYSQL_DATABASE。 MYSQL_USER,MYSQL_PASSWORD,將使用該密碼創建一個新用戶併爲新創建的數據庫分配權限。但是這並沒有發生。當我SSH進入該容器時,ROOT密碼被設置。但是用戶和數據庫都沒有創建。
我已經在本地運行,並通過同一個環境變量,這樣
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到該容器中測試了這個,數據庫和用戶在創建和一切工作正常。
我不知道我在做什麼錯在這裏。任何人都可以指出我的錯誤。我一直在這一整天。
編輯:20-七重峯-2016
的要求 @Julien杜波伊斯 創建的盤。它出現在雲控制檯中,當我運行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/
這對我和本地工作的容器創建了一個新的數據庫和具有正確權限的用戶。
對於kubernetes,我主要參照以下
https://cloud.google.com/container-engine/docs/tutorials/persistent-disk/
我只是想使用Django容器連接到它。
您是否在GCE上創建了磁盤?你可以顯示日誌輸出嗎? –
你能鏈接到你指的文檔嗎? –
@JulienDuBois和Anirudh Ramanathan。我已根據要求編輯了更多細節問題。請讓我知道是否需要其他東西。目前我已經SSH進入容器並創建了所需的用戶和數據庫來繼續開發。一旦我想部署生產,我仍然需要一種方法來自動執行此過程。 – Cognoscis