ローカル永続ボリュームについて
本文では、ローカル永続ボリュームを略してローカルPVと呼びます。
- KubernetesのローカルPVはバージョン1.7以降アルファ版でリリースされ、ベータバージョン1.10でリリースされました。最終的な公式リリース(一般提供)はバージョン1.14です。
- ローカルPVは、指定されたノードのローカルディスクスペースに対応します。
- NFSなどのリモートストレージと比較して、ローカルPVはローカルIOによってもたらされる優れたパフォーマンスを提供します。
HostPathボリュームとの違い
ローカルPVが登場する前は、ローカルディスクを使用する方法は、ローカルディスクを使用するのと同じHostPathボリュームでしたが、違いは何ですか。
- 最も重要な違いは、ローカルPVが特定のノードに関連していることです。つまり、ローカルPVを使用するポッドは、複数回再起動すると、Kubernetesスケジューラーによって同じノードにスケジュールされます。HostPathボリュームが使用されている場合、再起動ごとにKubernetesスケジューラによって新しいノードにスケジュールされ、同じローカルパスを使用する場合があります。
- HostPathボリュームを使用する場合、PVCで宣言するか、ポッドの構成に直接書き込むことができますが、ローカルPVはPVCでのみ宣言できます。PVリソースの場合、通常、専任の担当者がいて、ポッド開発を回避します。ローカルディスクの不正使用による競合とリスク。
- また、ホストパスボリュームとローカルPVの両方がローカルディスクを使用していることにも注意してください。一般的な分散ファイルシステムと比較すると、ローカルディスクの障害によりデータが失われます。重要なデータを保存するためにホストパスボリュームとローカルPVを使用しないでください。
基本的なコンセプトが完成し、その後、実際の戦闘経験。
実際の戦闘環境情報
- オペレーティングシステム:CentOS Linuxリリース7.8.2003(コア)
- 知事:1.15.3
- ヘルム:2.16.1
ローカルPVを体験する手順の簡単な説明
この実際の戦闘の目的は、ローカルPVをすばやく作成し、ローカルPVが通常使用可能であることを確認することです。全文は次の部分で構成されています。
- ローカルPVを作成します。
- helmからTomcatチャートをダウンロードします。
- チャートを変更して、作成したローカルPVをTomcatが使用できるようにします。
- Tomcatをデプロイします。
- フォルダーがサーバーに正常に書き込まれていることを確認してください。
参考記事
Kubernetesとhelmについて詳しく知りたい場合は、次を参照してください。
準備後、実際の運用を開始します。
PVを作成
- ローカルPVが使用するkubernetes作業ノードにフォルダーを作成します。これは/ root / temp / 202005/24 / local-pv /です。
- 上記のフォルダーに読み取りおよび書き込み権限を付与します。chmod -R a + r、a + w / root / temp / 202005/24 / local-pv
- 次の内容でlocal-storage-pv.yamlファイルを作成します。
apiVersion: v1
kind: PersistentVolume
metadata:
name: example-pv
spec:
capacity:
storage: 10Gi
volumeMode: Filesystem
accessModes:
- ReadWriteOnce
persistentVolumeReclaimPolicy: Delete
storageClassName: local-storage
local:
path: /root/temp/202005/24/local-pv
nodeAffinity:
required:
nodeSelectorTerms:
- matchExpressions:
- key: kubernetes.io/hostname
operator: In
values:
- node1
- local-storage-pv.yamlについて、次の点に注意してください:
。spec.storageClassNameがlocal-Storageに等しい場合、後者はPVC storageClassNameがlocal-Storageに等しいことも指定します;
。Spec.nodeAffinity B パラメータが必要です。ローカルPVとノード間の関係を確立します。spec.nodeAffinity.required、nodeSelectorTerms.matchExpressions.valuesの値はnode1を含みます。これは、ローカルPVがホスト名がnode1であるノード上に作成できることを意味します。 - コマンドkubectl apply -f local-storage-pv.yamlを実行してPVを作成します。
- 次の図の赤いボックスに示すように、kubectl describe pv example-pvを実行して、作成が成功したかどうかを確認します。このPVはすでに利用可能です。
PVを使用
次に、helmを介してtomcatをデプロイし、tomcatに上記のローカルPVを使用させます。helmがインストールされていることを確認してください。
- ヘルムウェアハウス(tomcatを備えたウェアハウス)を追加:helm repo add bitnami https://charts.bitnami.com/bitnami
- Tomcatのチャートをダウンロード:helm fetch bitnami / tomcat
- チャートが正常にダウンロードされると、tomcat構成圧縮パッケージtomcat-6.2.4.tgzが現在のディレクトリに表示され、解凍します。tar -zxvf tomcat-6.2.4.tgz
- 解凍してtomcatフォルダーを取得し、入力後にvalues.yamlファイルを開き、永続化ノードを見つけて、次の図の赤いボックスにコンテンツを追加します。
- tomcatディレクトリでコマンドを実行します:helm install --name-template tomcat001 -f values.yaml。--Namespace hello-storageclass
- Tomcatのポッドとサービスを確認します。すべてが正常であり、ポートがホストの31835にマッピングされています。
- ブラウザがホストIP:31835にアクセスすると、tomcatウェルカムページが表示されます。
- 次の図に示すように、ディレクトリ/ root / temp / 202005/24 / local-pv /に移動して、ディスクの使用状況を確認します。tomcatに割り当てられたPVCが表示され、tomcatの基本データが書き込まれます。
- ローカルPVを再度確認し、ステータスが変更
されていることを確認します。これまでのところ、ローカルPVがTomcatによって使用されており、データがホストの指定されたフォルダーに保存されていることが確認できます。
ローカルPVをクリーンアップする
- 一般的に、PVをクリーンアップするには、次の操作を実行する必要があります:
a。ポッドまたはデプロイメントを
削除する; b。pvcを削除する;
c。ローカルPVを削除する; - ここではhelmが使用されているため、上記のステップ1と2はhelmを介して実行され、コマンドhelm delete tomcat001
- 次に、local-storage-pv.yamlが配置されているディレクトリでkubectl delete -f local-storage-pv.yamlを実行して、ローカルPVを削除します。
これでローカルPVの学習と実践は完了です。この種のストレージを使用している場合は、この記事を参考にしてください。