kubernetes--emptyDirとhostPathの違い
3479 ワード
参考資料:https://www.cnblogs.com/breezey/p/9827570.html
emptyDirとhostPathの違い volumeタイプ emptyDir hostPath
volumeタイプ
volumeは、kubernetes Pod内の複数のコンテナがアクセスする共有ディレクトリです.volumeはpod上に定義され、このpodの複数の容器によって同じまたは異なる経路の下にマウントされる.volumeのライフサイクルはpodのライフサイクルと同じで、pod内のコンテナが停止したり再起動したりした場合、volumeのデータには影響しません.従って、podによって生成されたデータを永続化するために一般的なvolumeが用いられる.
Kubernetesは、eemptyDir、hostPath、gcePersistentDisk、awsElasticBlockStore、gitRepo、secret、nfs、iscsi、glusterfs、persistentVolumeClaim、rbd、flexVolume、cinder、cephfs、flocker、downwardAPI、fc、azureFile、configMap、vsphereVolumeなど、多くのvolumeタイプを提供しています.
emptyDir
emptyDirタイプのvolumeはpodがnodeに割り当てられたときに作成され、kubernetesはnodeに自動的にディレクトリを割り当てるので、ホストnodeに対応するディレクトリファイルを指定する必要はありません.このディレクトリの初期内容は空で、Podがnodeから削除されるとemptyDirのデータは永続的に削除されます.
EmptyDir Volumeは、主に一部のアプリケーションで永続的に保存する必要のない一時ディレクトリ、複数のコンテナの共有ディレクトリなどに使用されます.
実例は本ブログのブログ「kubernetes v 1.14.0-Podコンテナ共有volume」を参照
hostPath
hostPath Volumeはpodがホスト上のディレクトリまたはファイルをマウントし、コンテナがホストの高速ファイルシステムを使用して格納できるようにする.欠点:k 8 sではpodは各nodeノード上で動的にスケジューリングされる.あるpodが現在のnodeノードで起動し、hostPathでファイルをローカルに格納した後、次回別のノードにスケジューリングして起動すると、前のノードに格納されたファイルは使用できません.
tomcatが存在するノードのディレクトリ/root/logs/はコンテナtomcat 9の/usr/local/tomcat/logs/の下にマウントされ、podが実行されるとログはローカルディレクトリに格納されます.
emptyDirとhostPathの違い
volumeタイプ
volumeは、kubernetes Pod内の複数のコンテナがアクセスする共有ディレクトリです.volumeはpod上に定義され、このpodの複数の容器によって同じまたは異なる経路の下にマウントされる.volumeのライフサイクルはpodのライフサイクルと同じで、pod内のコンテナが停止したり再起動したりした場合、volumeのデータには影響しません.従って、podによって生成されたデータを永続化するために一般的なvolumeが用いられる.
Kubernetesは、eemptyDir、hostPath、gcePersistentDisk、awsElasticBlockStore、gitRepo、secret、nfs、iscsi、glusterfs、persistentVolumeClaim、rbd、flexVolume、cinder、cephfs、flocker、downwardAPI、fc、azureFile、configMap、vsphereVolumeなど、多くのvolumeタイプを提供しています.
emptyDir
emptyDirタイプのvolumeはpodがnodeに割り当てられたときに作成され、kubernetesはnodeに自動的にディレクトリを割り当てるので、ホストnodeに対応するディレクトリファイルを指定する必要はありません.このディレクトリの初期内容は空で、Podがnodeから削除されるとemptyDirのデータは永続的に削除されます.
EmptyDir Volumeは、主に一部のアプリケーションで永続的に保存する必要のない一時ディレクトリ、複数のコンテナの共有ディレクトリなどに使用されます.
実例は本ブログのブログ「kubernetes v 1.14.0-Podコンテナ共有volume」を参照
hostPath
hostPath Volumeはpodがホスト上のディレクトリまたはファイルをマウントし、コンテナがホストの高速ファイルシステムを使用して格納できるようにする.欠点:k 8 sではpodは各nodeノード上で動的にスケジューリングされる.あるpodが現在のnodeノードで起動し、hostPathでファイルをローカルに格納した後、次回別のノードにスケジューリングして起動すると、前のノードに格納されたファイルは使用できません.
apiVersion: v1
kind: Pod
metadata:
name: tomcat
namespace: admin
spec:
containers:
- name: tomcat9
image: tomcat:9
imagePullPolicy: IfNotPresent
volumeMounts:
- name: tomcat-log
mountPath: /usr/local/tomcat/logs
ports:
- containerPort: 8080
volumes:
- name: tomcat-log
hostPath:
path: /root/logs
tomcatが存在するノードのディレクトリ/root/logs/はコンテナtomcat 9の/usr/local/tomcat/logs/の下にマウントされ、podが実行されるとログはローカルディレクトリに格納されます.