DUICUO

Kubernetes で HostPath 永続ボリュームを作成するにはどうすればよいですか?

[51CTO.com クイック翻訳]

ご存知のとおり、Pod内のデータはPodのライフサイクル全体を通じて保持されます。Podが消滅すると、そのPodに属するすべてのデータも消滅します。そのため、Podのライフサイクル終了後もデータを保持したい場合は、Kubernetesは永続ボリュームと呼ばれる機能を提供します。

簡単に始められるHostPath永続ボリュームの作成方法を学ぶと良いでしょう。また、ボリュームの保持に関する基本についても学ぶことができます。

Kubernetes では、ベンダーに応じて次のタイプの永続ボリュームが使用できます。

  • GCEPersistentDisk
  • AWSエラスティックブロックストア
  • Azureファイル
  • Azure ディスク
  • CSI
  • FC(ファイバーチャネル)
  • フレックスボリューム
  • フロッカー
  • NFS
  • iSCSI
  • RBD (Ceph ブロックデバイス)
  • セフFS
  • Cinder(OpenStack ブロックストレージ)
  • グラスターフス
  • Vsphereボリューム
  • クォーバイトボリューム
  • HostPath (単一ノードのテストのみ – ローカルストレージを一切サポートしておらず、マルチノード クラスターでは使用できません)
  • ポートワークスボリューム
  • ScaleIOボリューム
  • ストレージOS

ご覧のとおり、HostPath はテスト目的にのみ使用してください。また、マルチノードクラスターはサポートされていません。永続ボリュームについて詳しく知りたい場合は、こちらのリンク (https://kubernetes.io/docs/concepts/storage/persistent-volumes/) をクリックしてください。

永続ボリュームの基本的なプロセスは次のとおりです。

  1. Kubernetes 管理者はクラスター内に永続ボリュームを作成します。
  2. ユーザーが状態が「バインド」に変更されたことを宣言すると、「永続ボリューム宣言」を使用してそれを宣言します。
  3. その後、ポッドはこのボリュームを使用して、ポッドのライフサイクルが終了した後も保持されるデータを保存します。

理論については十分に説明しましたので、技術的な手順について説明しましょう。

  • 永続ボリュームを作成する

このステップでは、同じ目的を達成するために次の YAML マニフェスト ファイルを使用します。

図1

上記の定義ファイルに示されているように、ストレージサイズは1GBです。パスは「/tmp/kube」です。以下の手順でPVを作成しましょう。

図2

次のコマンドを使用して、PV と永続ボリュームの宣言を再確認します。

図3

ご覧の通り、PVが作成され、ステータスは「使用可能」になっています。再宣言戦略を指定していないため、デフォルト値「保持」を使用しています。これは、PVC(永続ボリューム宣言)が削除されても、PVとそのデータは自動的に削除されないことを意味します。これをテストします。

  • 永続ボリューム宣言を作成する

PVを使用するには、永続ボリューム宣言(PVC)を作成する必要があります。以下は、同じYAMLマニフェストファイルです。

図4

上記の定義では、宣言は100MB(PVのサイズ以上)にのみ適用され、アクセスモードはPVモードと同じ「ReadWriteOnce」であることに注意してください。したがって、PVCは次のように作成できます。

図5

PV および PVC のステータスを確認します。

図6

PV ステータスが「使用可能」から「バインド済み」に変更されていることがわかります。

  • ポッドを作成し、この PV をそのポッド内のマウント ポイントとして使用します。

図7

Pod定義ファイルに記述されているように、Pod内にマウントポイント /tmp/mydata が作成されます。上記の定義ファイルを使用してPodを作成することをお勧めします。

図8

ステータスを確認し、ポッドを確認します。

図9

説明出力を見ると、pvc-hostpath で宣言されたホストボリュームを使用して /tmp/mydata ボリュームが作成されたことがわかります。さらに、Pod はスケジュールに従ってノード「kworker01」に作成されました。

ログインして、Pod作成サンプルファイルにアクセスしてみましょう。これは、Podが消滅した後のデータのライフサイクルを示しています。

図10

上記のデモでは、/tmp/mydata に「Hello.txt」を作成しました。それでは、Pod を削除してみましょう。

図11

Podの削除に成功しました。ノード「kworker01」にログインできます。Podは計画通りに作成されました。Podの削除後もデータが保持されているか確認してください。

図12

ご覧のとおり、ポッドは消えていますが、ファイル「Hello.txt」はまだノード上に残っています。

元のタイトル: Kubernetes で HostPath 永続ボリュームを作成する方法

[この記事は51CTOによって翻訳されました。提携サイトへの転載の際は、元の翻訳者と出典を51CTO.comとして明記してください。]