【Kubernetes】emptyDirとは

2022.06.02
2024.03.24
Kubernetes
emptyDirボリューム

はじめに

KubernetesのemptyDirについて、どんなものなのか、使い方を紹介したいと思います。

emptyDirとは

emptyDirは、ボリュームのひとつで、Podが実行されている間だけ使える最も単純なボリュームです。

最初のボリュームの中身は空(empty)になります。

用途としては、

  • ダウンロードしたファイルの一時保管
  • 生成したデータのキャッシング
  • データ処理のワークスペース

など、永続的に保存する必要はないが、ストレージが欲しい場合に使えます。

Podが削除されると、empryDirのデータも削除されてしまうので注意してください。

使い方

下記のようにemptyDir: {}とすることで、emptyDirのボリュームを定義し、使うことができるようになります。

1  volumes:
2  - name: volume-name
3    emptyDir: {}

あとは、ボリュームと同じ用途で使うことができます。

設定例としては、下記を参考にしてください。

1apiVersion: v1
2kind: Pod
3metadata:
4  name: myapp
5spec:
6  containers:
7  - name: busybox
8    image: busybox
9    args:
10      - sleep
11      - "999"
12    volumeMounts:
13    - mountPath: /tmp
14      name: emptydir-volume
15  volumes:
16  - name: emptydir-volume
17    emptyDir: {}

使ってみる

試しにemptyDirを使ってみます。

作成するPod(pod.yml)は下記の通りです。

1apiVersion: v1
2kind: Pod
3metadata:
4  name: myapp
5spec:
6  containers:
7  - name: busybox-1
8    image: busybox:latest
9    args:
10      - sleep
11      - "999"
12    volumeMounts:
13    - mountPath: /tmp
14      name: emptydir-volume
15  - name: busybox-2
16    image: busybox:latest
17    args:
18      - sleep
19      - "999"
20    volumeMounts:
21    - mountPath: /tmp
22      name: emptydir-volume
23  volumes:
24  - name: emptydir-volume
25    emptyDir: {}

Podの中に2つのコンテナが含まれており、それぞれにemptyDirのボリュームをマウントしています。

1kubectl apply -f pod.yml

busybox-1コンテナに入り、ボリュームをマウントしているディレクトリにファイルを作成してみます。

1kubectl exec -it myapp -c busybox-1 -- /bin/sh
1/tmp # pwd
2/tmp
3
4/tmp # vi hoge.txt
5
6/tmp # cat hoge.txt
7hoge

busybox-2にも同じファイルが作られていることが確認できます。

1kubectl exec -it myapp -c busybox-2 -- /bin/sh
1/tmp # pwd
2/tmp
3
4/tmp # ls
5hoge.txt
6
7/tmp # cat hoge.txt
8hoge

一度Podを削除して、再度Podを作成してみます。

1kubectl delete pod myapp
2kubectl apply -f pod.yml

先ほど作成したファイルは無くなっていることが確認できます。

1kubectl exec -it myapp -c busybox-1 -- /bin/sh
1/tmp # pwd
2/tmp
3
4/tmp # ls
5

参考

Support

\ この記事が役に立ったと思ったら、サポートお願いします! /

buy me a coffee
Share

Profile

author

Masa

都内のIT企業で働くエンジニア
自分が学んだことをブログでわかりやすく発信していきながらスキルアップを目指していきます!

buy me a coffee