【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
参考
Share
関連記事
KubeLinterでKubernetesのマニフェストを静的解析
2022.04.23
Kubernetesクラスタざっくり解説
2021.10.11
【Kubernetes】YAML形式とJSON形式でオブジェクトを取得
2022.02.05