Kubernetesのローカル永続ボリュームの使用に関する注意事項

ローカル永続ボリュームについて

本文では、ローカル永続ボリュームを略してローカルPVと呼びます。

  1. KubernetesのローカルPVはバージョン1.7以降アルファ版でリリースされ、ベータバージョン1.10でリリースされました。最終的な公式リリース(一般提供)はバージョン1.14です。
  2. ローカルPVは、指定されたノードのローカルディスクスペースに対応します。
  3. NFSなどのリモートストレージと比較して、ローカルPVはローカルIOによってもたらされる優れたパフォーマンスを提供します。

HostPathボリュームとの違い

ローカルPVが登場する前は、ローカルディスクを使用する方法は、ローカルディスクを使用するのと同じHostPathボリュームでしたが、違いは何ですか。

  1. 最も重要な違いは、ローカルPVが特定のノードに関連していることです。つまり、ローカルPVを使用するポッドは、複数回再起動すると、Kubernetesスケジューラーによって同じノードにスケジュールされます。HostPathボリュームが使用されている場合、再起動ごとにKubernetesスケジューラによって新しいノードにスケジュールされ、同じローカルパスを使用する場合があります。
  2. HostPathボリュームを使用する場合、PVCで宣言するか、ポッドの構成に直接書き込むことができますが、ローカルPVはPVCでのみ宣言できます。PVリソースの場合、通常、専任の担当者がいて、ポッド開発を回避します。ローカルディスクの不正使用による競合とリスク。
  3. また、ホストパスボリュームとローカルPVの両方がローカルディスクを使用していることにも注意してください。一般的な分散ファイルシステムと比較すると、ローカルディスクの障害によりデータが失われます。重要なデータを保存するためにホストパスボリュームとローカルPVを使用しないでください

基本的なコンセプトが完成し、その後、実際の戦闘経験。

実際の戦闘環境情報

  1. オペレーティングシステム:CentOS Linuxリリース7.8.2003(コア)
  2. 知事:1.15.3
  3. ヘルム:2.16.1

ローカルPVを体験する手順の簡単な説明

この実際の戦闘の目的は、ローカルPVをすばやく作成し、ローカルPVが通常使用可能であることを確認することです。全文は次の部分で構成されています。

  1. ローカルPVを作成します。
  2. helmからTomcatチャートをダウンロードします。
  3. チャートを変更して、作成したローカルPVをTomcatが使用できるようにします。
  4. Tomcatをデプロイします。
  5. フォルダーがサーバーに正常に書き込まれていることを確認してください。

参考記事

Kubernetesとhelmについて詳しく知りたい場合は、次を参照してください。

  1. "Kubespray 2.11 install kubernetes 1.15" ;
  2. "Helmをデプロイして体験する(バージョン2.16.1)" ;

準備後、実際の運用を開始します。

PVを作成

  1. ローカルPVが使用するkubernetes作業ノードにフォルダーを作成します。これは/ root / temp / 202005/24 / local-pv /です。
  2. 上記のフォルダーに読み取りおよび書き込み権限を付与します。chmod -R a + r、a + w / root / temp / 202005/24 / local-pv
  3. 次の内容で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
  1. 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あるノード上に作成できることを意味します。
  2. コマンドkubectl apply -f local-storage-pv.yaml実行してPVを作成します。
  3. 次の図の赤いボックスに示すように、kubectl describe pv example-pvを実行して、作成が成功したかどうか確認します。このPVはすでに利用可能です。
    ここに画像の説明を挿入

PVを使用

次に、helmを介してtomcatをデプロイし、tomcatに上記のローカルPVを使用させます。helmがインストールされていることを確認してください。

  1. ヘルムウェアハウス(tomcatを備えたウェアハウス)を追加helm repo add bitnami https://charts.bitnami.com/bitnami
  2. Tomcatのチャートをダウンロード:helm fetch bitnami / tomcat
  3. チャートが正常にダウンロードされると、tomcat構成圧縮パッケージtomcat-6.2.4.tgzが現在のディレクトリに表示され、解凍します。tar -zxvf tomcat-6.2.4.tgz
  4. 解凍してtomcatフォルダーを取得し、入力後にvalues.yamlファイルを開き、永続化ノードを見つけて、次の図の赤いボックスにコンテンツを追加します。
    ここに画像の説明を挿入
  5. tomcatディレクトリでコマンドを実行します:helm install --name-template tomcat001 -f values.yaml。--Namespace hello-storageclass
  6. Tomcatのポッドとサービスを確認します。すべてが正常であり、ポートがホストの31835にマッピングされています。
    ここに画像の説明を挿入
  7. ブラウザがホストIP:31835にアクセスすると、tomcatウェルカムページが表示されます。
    ここに画像の説明を挿入
  8. 次の図に示すように、ディレクトリ/ root / temp / 202005/24 / local-pv /に移動して、ディスクの使用状況確認します。tomcatに割り当てられたPVCが表示され、tomcatの基本データが書き込まれます。
    ここに画像の説明を挿入
  9. ローカルPVを再度確認し、ステータスが変更
    ここに画像の説明を挿入
    されていることを確認します。これまでのところ、ローカルPVがTomcatによって使用されており、データがホストの指定されたフォルダーに保存されていることが確認できます。

ローカルPVをクリーンアップする

  1. 一般的に、PVをクリーンアップするには、次の操作を実行する必要があります:
    a。ポッドまたはデプロイメントを
    削除する; b。pvcを削除する;
    c。ローカルPVを削除する;
  2. ここではhelmが使用されているため、上記のステップ1と2はhelmを介して実行され、コマンドhelm delete tomcat001
  3. 次に、local-storage-pv.yamlが配置されているディレクトリでkubectl delete -f local-storage-pv.yamlを実行して、ローカルPVを削除します。

これでローカルPVの学習と実践は完了です。この種のストレージを使用している場合は、この記事を参考にしてください。

私のパブリックアカウントへようこそ:プログラマーXin Chen

ここに画像の説明を挿入

おすすめ

転載: blog.csdn.net/boling_cavalry/article/details/106453727