
永続ボリュームの例を以下に示します。Kubernetes StatefulSet 経由の PostgreSQL に関するこの記事
kind: PersistentVolume
apiVersion: v1
metadata:
name: pgdata
labels:
app: postgres
type: local
spec:
storageClassName: sc001
capacity:
storage: 1Gi
accessModes:
- ReadWriteOnce
hostPath:
path: "/var/data"
これは動作するようですが、ロジックに問題があります。
私が理解している限りでは、あなたが必要としている事柄はどちらか1つの
persistentVolume
またはa はstorageClass
a のニーズを満たすPersistentVolumeClaim
。a はPV
静的で、SC
は動的である。私は、どちらか一方が排他的であると理解している。どちらか1つまたはもう一つは、両方ではないNOR
(は に対抗して呼ばれると信じていますOR
)。
したがって、ここで a が何をしているのかわかりませんstorageClaseName
。論理的に理解できるように誰か助けてくれませんか?ボリュームはノードのローカル ファイル システムに存在し、そのコンテンツはそのノードのディレクトリで見つかる
type: local
と 考えます。何か他のものを使用するかどうかを指定する には、どのような値を使用する必要がありますか? たとえば、プロビジョナーによって提供されるストレージ (私の場合は csi.vsphere.vmware.com) などです。path: "/var/data"
/var/data
type
答え1
質問が正しければ幸いです。
persistentVolumeClaim は常に persistentVolume にバインドされます。これは、クレームをディスクに接続して、ポッドがどのノードにデプロイされるかに関係なく、同じディスクに接続できるようにするという考え方です。
storageClass は自動 persistentVolume プロビジョニング メカニズムです。つまり、persistentVolumeClaim を指定し、デフォルトの storageClass が設定されている場合は、persistentVolume が作成され、それが persistentVolumeClaim にアタッチされます。
また、手動で persistentVolume を作成し、それを persistentVolumeClaim (storageClass に関係なく) にアタッチすることもできますが、数百の PVC があり、各 PVC に対して PV を維持する大規模な環境を想像してください。
PVC をアタッチする pv を指定することもできます。
構成type:local
は、pv として機能するノード上のローカル ボリュームです。この場合、vmware は vmdk ファイルを作成し、ポッドがデプロイされているノードにコピーします。
お役に立てれば幸いです。
答え2
Question: So I do not understand what a storageClaseName is doing in here. Can anybody help me out with the logical understanding?
storageClaseName は、永続ボリュームのクラスを指定します。ユースケースを使用して説明します。本番環境の重要なアプリのストレージを 3 つの異なるカテゴリ (ゴールド、シルバー、ブロンズ) で管理するとします。ゴールドは本番グレードの重要なアプリケーション用で、残りはそれほど重要でないアプリケーション用です。これで、リスク レベルに基づいて、アプリケーションに割り当てるストレージの種類を簡単に割り当てることができます。たとえば、ビデオ ストリーミング サービスにゴールド クラスのストレージを使用する場合は、storageClassName をゴールド クラスに設定した PVC を指定する必要があります。これで、Kubernetes は、この要求を満たすためにゴールド クラス カテゴリに属する PV を検索します (使用可能な場合)。この PVC に十分なサイズの PV が存在しても、ゴールド クラスに属していない場合、その PV はこの要件を満たすために使用されません。
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: gold-class-claim
spec:
accessModes:
- ReadWriteOnce
storageClassName: gold-class-storage
....
Question: What value would I have to use for type whether I wanted to use something else?
こちらのリンクを参照してください: https://kubernetes.io/docs/concepts/storage/persistent-volumes/#types-of-persistent-volumes