このセクションでは、emptyDir の Volume リソースについて紹介します。 emptyDir の Volume リソースは、Pod 用の一時的なディスク領域として利用することができます。ただし、Pod が再作成されるなどした場合には一時的なディスク領域も削除されます。また、ホスト上のファイルを参照することもできない Volume リソースとなります。
サンプルのマニフェストファイルを新規作成し、以下コードを記述します。
[root@kube-master sample-volume]# vi sample-emptydir.yaml
spec の containers の volumeMounts に Volume のマウントパスを指定します。また、volumes に emptyDir を指定しています。ここでは、Volume のマウントパスとして、/cache ディレクトリを指定しています。
apiVersion: v1 kind: Pod metadata: name: sample-emptydir spec: containers: - name: nginx-container image: nginx:1.13 volumeMounts: - mountPath: /cache name: cache-volume volumes: - name: cache-volume emptyDir: {}
Master サーバーから 作成したマニフェストを実行し、Kubernetes クラスタ上にリソースを作成します。
[root@kube-master sample-volume]# kubectl apply -f sample-emptydir.yaml pod/sample-emptydir created [root@kube-master sample-volume]#
Master サーバーから Kubernetes クラスタ上の Pod リソースを確認します。
[root@kube-master sample-volume]# kubectl get pod sample-emptydir NAME READY STATUS RESTARTS AGE sample-emptydir 1/1 Running 0 10m [root@kube-master sample-volume]#
Master サーバーから Podの仮想ターミナルに接続します。
[root@kube-master sample-volume]# kubectl exec -it sample-emptydir bash root@sample-emptydir:/#
Pod 上のディレクトリを確認します。ここでは、cache ディレクトリがあることが確認できます。
root@sample-emptydir:/# ls -la total 8 drwxr-xr-x. 1 root root 41 Feb 11 07:35 . drwxr-xr-x. 1 root root 41 Feb 11 07:35 .. -rwxr-xr-x. 1 root root 0 Feb 11 07:35 .dockerenv drwxr-xr-x. 2 root root 4096 Apr 26 2018 bin drwxr-xr-x. 2 root root 6 Feb 23 2018 boot drwxrwxrwx. 2 root root 6 Feb 11 07:35 cache drwxr-xr-x. 5 root root 360 Feb 11 07:35 dev drwxr-xr-x. 1 root root 66 Feb 11 07:35 etc drwxr-xr-x. 2 root root 6 Feb 23 2018 home drwxr-xr-x. 1 root root 45 Apr 26 2018 lib drwxr-xr-x. 2 root root 34 Apr 26 2018 lib64 drwxr-xr-x. 2 root root 6 Apr 26 2018 media drwxr-xr-x. 2 root root 6 Apr 26 2018 mnt drwxr-xr-x. 2 root root 6 Apr 26 2018 opt dr-xr-xr-x. 127 root root 0 Feb 11 07:35 proc drwx------. 2 root root 37 Apr 26 2018 root drwxr-xr-x. 1 root root 38 Feb 11 07:35 run drwxr-xr-x. 2 root root 4096 Apr 26 2018 sbin drwxr-xr-x. 2 root root 6 Apr 26 2018 srv dr-xr-xr-x. 13 root root 0 Jan 6 13:59 sys drwxrwxrwt. 1 root root 6 Apr 30 2018 tmp drwxr-xr-x. 1 root root 66 Apr 26 2018 usr drwxr-xr-x. 1 root root 19 Apr 26 2018 var
root@sample-emptydir:/cache#
Pod 内の cache ディレクトリに移動し、ファイルの作成します。cache ディレクトリにファイルが作成できることが確認できます。
root@sample-emptydir:/# cd cache/ root@sample-emptydir:/cache# ls -la total 0 drwxrwxrwx. 2 root root 6 Feb 11 07:35 . drwxr-xr-x. 1 root root 41 Feb 11 07:35 .. root@sample-emptydir:/cache# root@sample-emptydir:/cache# mkdir test root@sample-emptydir:/cache# root@sample-emptydir:/cache# ls -la total 0 drwxrwxrwx. 3 root root 18 Feb 11 07:36 . drwxr-xr-x. 1 root root 41 Feb 11 07:35 .. drwxr-xr-x. 2 root root 6 Feb 11 07:36 test root@sample-emptydir:/cache#
Master サーバーから 作成したKubernetes クラスタ上の Pod リソースを削除します。
[root@kube-master sample-volume]# kubectl delete pod sample-emptydir pod "sample-emptydir" deleted [root@kube-master sample-volume]#