Bluemix k8s の PersistentVolume の最小サイズが 20GB なので、複数のコンテナから利用する場合には、ルートからマウントしてないで、サブディレクトリを作成してマウントしたいという場合の設定方法のメモです。
mountPath下にsubPathを設定することで実現できます。 このsubPathのディレクトリ mysql-data が、永続ボリュームのルート・ディレクトリにあるディレクトリの名前となり、mountPathとしてマウントされるディレクトリになります。
mysql_deployment.yml該当部分
volumeMounts:
- mountPath: /var/lib/mysql
name: mysql-disk1
subPath: mysql-data
- mountPath: /docker-entrypoint-initdb.d
name: mysql-disk1
subPath: initdb
volumes:
- name: mysql-disk1
persistentVolumeClaim:
claimName: mysql-claim1
言葉だけでは解りにくいので、上記の設定を施したコンテナに入って、dfコマンドを実行した結果です。このコンテナは、1つの永続ストレージの2つのディレクトリに、マウントしていることが解ります。 これで、永続ストレージを分割して使えるので、お金を節約できますね。
agrant@vagrant-ubuntu-trusty-64:~$ kubectl exec -it mysql-723758760-v8s1s bash
root@mysql-723758760-v8s1s:/# df
Filesystem 1K-blocks Used Available Use% Mounted on
overlay 101330012 4918824 96394804 5% /
tmpfs 2048028 0 2048028 0% /dev
tmpfs 2048028 0 2048028 0% /sys/fs/cgroup
fsf-dal1001c-fz.adn.networklayer.com:/IBM02SV289550_2/data01/initdb 20971520 215936 20755584 2% /docker-entrypoint-initdb.d
/dev/xvda2 101330012 4918824 96394804 5% /etc/hosts
shm 65536 0 65536 0% /dev/shm
fsf-dal1001c-fz.adn.networklayer.com:/IBM02SV289550_2/data01/mysql-data 20971520 215936 20755584 2% /var/lib/mysql
tmpfs 2048028 12 2048016 1% /run/secrets/kubernetes.io/serviceaccount
tmpfs 2048028 0 2048028 0% /sys/firmware