Kubernetes と OpenEBS における永続ボリュームと永続ボリュームクレームの理解

Kubernetes と OpenEBS における永続ボリュームと永続ボリュームクレームの理解

[[438582]]

[51CTO.com クイック翻訳]概要: Kubernetes のボリュームとは何ですか?

Kubernetes では、ストレージ ボリュームの抽象化を使用して、アプリケーション リソースの消費方法からストレージの物理的な実装を抽象化する API が提供されます。 Kubernetes 上で実行されるコンテナは、作成または処理したデータを保存しません。ボリュームは基本的に、ポッド内で実行されているコンテナがデータを保存および共有するために使用できるストレージ ディレクトリを提供します。

Kubernetes は主に 2 種類のボリュームをサポートしています。

(1)一時ボリューム - 再起動後にデータを保存する必要はあるが、データにアクセスする必要がないアプリケーションに使用されます。エフェメラル ボリュームはポッドの有効期間中のみ存続し、ポッドの実行が停止すると削除されます。エフェメラル ボリュームは、メモリ サイズが制限され、パフォーマンスに影響する可能性がある低レイテンシ アプリケーションに適しています。 Kubernetes では、次のようなさまざまな方法で一時ボリュームを使用できます。

  • 空のディレクトリ
  • Secrets、ConfigMap、downAPI について
  • CSI エフェメラルボリューム
  • 一般的な一時ボリューム

(2)永続ボリューム - これは、ポッドによって使用される物理ストレージの抽象的な実装を表す API オブジェクトですが、ポッドのライフサイクルを超えて存続します。永続ボリューム (PV) は、ポッドが接続する物理ストレージの一部であり、コンテナの再起動後も利用可能なデータを保存できます。

この記事では、永続ボリュームと、それが Kubernetes エコシステムで解決する問題について説明します。

ボリュームプラグイン

Kubernetes は、ストレージ実装用のサードパーティ プラグインの作成を標準化する Container Storage Interface (CSI) を実装します。 Kubernetes はこれらのプラグインを使用して、ノード上の物理ストレージをクラスター データ プラットフォームで実行されている Kubelet に公開します。このようにして、Kubernetes は Pod とコンテナへのストレージ リソースのプロビジョニングを抽象化します。 CSI を搭載したプラグイン システムにより、ベンダーは Kubernetes のコア コードとバイナリを変更することなく、Kubernetes にストレージ システムを追加することもできます。

最も人気のある Kubernetes CSI プラグインには次のようなものがあります。

  • AWS エラスティックブロックストレージ
  • Azure ディスク
  • ビーGFS
  • セフFS
  • デル EMC PowerMax
  • GCE 永続ディスク
  • Google クラウド ファイルストア
  • グラスターFS
  • Huawei ストレージ CSI
  • HyperV CSI
  • IBM ブロックストレージ
  • オープンEBS
  • ポートワークス
  • ピュアストレージCSI

(1)Kubernetesの永続ストレージ

CSI プラグインが Kubernetes でセットアップされ実行されると、リソースとユーザーは Kubernetes ストレージ API オブジェクト (永続ボリューム (PV)、永続ボリューム要求 (PVC)、およびストレージ クラス) を使用してボリュームを使用できるようになります。このセクションでは、これらの API オブジェクトと、Kubernetes のコンテナに永続ストレージを提供する上でのそれらの役割について説明します。

(2)永続ボリューム(PV)

PV はクラスターで使用できるブロック ストレージであり、iSCSI (インターネット経由の SCSI)、NFS、または特定のベンダーやクラウド プロバイダーによって提供されるストレージ システムなど、実装プロトコルの詳細をキャプチャすることで、オブジェクト、ファイル、およびブロック ストレージ システムを公開します。 PV のライフサイクルは、それを使用する Pod からは独立しています。これは、PV がアプリケーションのライフサイクル全体にわたってコンテナーが使用するためのデータを保持することを意味します。

PV は、次のような構成を持つ Kubernetes API オブジェクトです。

永続ボリュームクレーム (PVC)

ユーザーが PV ストレージを要求する場合、アクセス モードやサイズなどの特定のストレージ要件を要求する Kubernetes オブジェクトである PVC を使用します。 PVC は、次のような仕様の YAML 構成ファイルをクラスターに適用することによって作成されます。

Pod は、Pod 構成ファイルでボリューム仕様として宣言することで PVC に接続されます。

Pod が PVC にバインドされると、PVC は、構成ファイルで指定されたディスク サイズとアクセス モードに基づいて、Pod を対応する PV に接続します。

静的リソース割り当てと動的リソース割り当て

PV は静的または動的に構成できます。静的 PV 構成では、ストレージ オブジェクトは最初にホスト上で作成および構成され、その後クラスターで使用できるようになります。この場合、Pod は、このストレージ オブジェクトの特定の部分を指す PV に接続されます。

PV が動的にプロビジョニングされる場合、ストレージ クラス オブジェクトを使用して、物理ストレージ システムを指すさまざまなストレージ実装特性を定義します。ストレージ クラス オブジェクトは、ストレージ オブジェクトの一部を要求し、構成ファイルの仕様に一致するボリュームを作成します。ストレージ クラスを使用すると、PV を Kubernetes オブジェクトに自動的かつ動的に割り当てることができます。

ストレージ クラス オブジェクトの構成ファイルは次のようになります。

PVとPVCのライフサイクル

PVC は PV リソースの要求を表します。 2 つのオブジェクト間の相互作用は次のパターンに従います。

(1)プロビジョニング - ここで物理ストレージシステムがクラスターユーザーに利用可能になります。プロビジョニングは静的または動的に行うことができます。

(2)結合 - PVCを適切なPVとマッチングさせ、それらを結合するプロセス。

(3)使用量:ポッドがボリュームを消費するプロセス。

(4)再利用 - ユーザーがボリュームの使用を終了すると、バインドされたオブジェクトが削除され、ストレージリソースが再利用されます。サポートされているリサイクル戦略には次のようなものがあります。

  • 予約する
  • 消去
  • リサイクル

事前バインド手順を使用して、特定の PV 用にいくつかの PV を予約できます。つまり、Pod がアプリケーションを実行しているかどうかに関係なく、PVC は常に PV にバインドされます。

モノリシック蓄電システムにおけるPVとPVC

従来のストレージ システムでは、Kubernetes は複数のストレージ デバイスを仮想化して集約するモノリシック ストレージ ソフトウェアとインターフェイスします。これらのデバイスは、SAN ストレージ、ベアメタル サーバー、またはクラウドベースのブロック ストレージ ソリューションになります。このソフトウェアは、PV、PVC、およびストレージ クラスを使用してストレージ アクセスを管理する CSI プラグインとインターフェイスします。

従来の共有ストレージ施設

コンテナ接続ストレージ (CAS) と永続ボリューム (PV)

コンテナ接続ストレージ (CAS) を使用すると、企業はクラウドネイティブ プラットフォームの柔軟性と拡張性を活用して、ボリューム抽象化の機能を拡張できます。 CAS では、ストレージ ソリューションはコンテナー内のマイクロサービスとして展開され、Kubernetes などのオーケストレーターによって管理できます。 CAS クラスターのデータ プラットフォームは、ボリュームをプロビジョニングし、ストレージへのアクセスを許可するコンテナーを実行するレプリカ ポッドで構成されます。 CAS クラスターの制御プラットフォームには、ポリシー、ストレージ コントローラー、データ プラットフォーム構成が含まれます。

OpenEBS ローカルPV ボリューム

OpenEBS は、Kubernetes のローカル ボリュームの動的 PV のプロビジョニングをサポートします。ローカル ボリュームは、パーソナル コンピューター (PC) や仮想マシン (VM) などの単一のノードからのみ利用できるクラスター ストレージです。ローカル ボリュームは、ノードが正常でない場合に使用不可を許容し、ローカル ディレクトリ、パーティション、ディスクを使用してストレージ リソースをクラスターに公開できるアプリケーションに使用されます。これにより、プラグインは、動的な管理と監視を必要とするローカル ニーズや、自己管理のレプリケーションとデータ セキュリティを必要とする高性能アプリケーションに適したものになります。ローカル ボリュームの使用例には次のようなものがあります。

  • データベースをコピーします。
  • 単一ノード クラスターで実行されるエッジ ワークロード。
  • 独自の高可用性クラスター (HA) 構成を備えたステートフル ワークロード。

結論

PV は、ポッドがデータを保存および共有できるように、物理ストレージ実装を Kubernetes クラスターに公開します。 PV を使用すると、不変のコンテナによって生成および保存されたデータを、アプリケーションのライフサイクル全体にわたって保持できます。

この記事では、主に PV と PVC に焦点を当てて、Kubernetes 永続ストレージを理解するために必要な概念について説明します。 CAS は、マイクロサービスとコンテナ オーケストレーションを利用することでボリュームの機能を拡張し、柔軟で細分化された、可用性の高いクラウド ネイティブ ストレージ インフラストラクチャの作成も可能にします。

オリジナルリンク: Kubernetes と OpenEBS の永続ボリュームと PVC を理解する、著者: Sudip Sengupta

[51CTOによる翻訳。パートナーサイトに転載する場合は、元の翻訳者と出典を51CTO.comとして明記してください。

<<:  クラウド ネイティブ Etcd シリーズ: クォーラムと投票

>>:  クラウドネイティブセキュリティは必須ですか?

推薦する

Weiboマーケティングのポイント

ショートビデオ、セルフメディア、インフルエンサーのためのワンストップサービスWeiboマーケティング...

ソーシャルマーケティングの話はやめましょう。口コミこそが王様です

インターネット以前の時代、人々が製品を購入するかどうかを決める際に一般的に参考にしていたのは 2 つ...

eCity eHomeがTencent Cloudと提携し、ガス業界のデジタル変革を推進

5月21日から23日まで、2019年テンセントグローバルデジタルエコシステムカンファレンスが雲南省昆...

ハイブリッドクラウドのリスクが心配ですか?霧を払いのける5つのヒント

クラウド プラットフォームは運用の回復力と、非常に必要な在宅勤務ツールを提供するため、組織がこの危機...

Lvmama の「ゴールデン トライアングル」: オンライン旅行の伝統的な遺伝的利点

「ママLvは地形が地表に現れた部分であり、かなりの部分が水に浸かっている。」洪青華氏について語るとき...

ダークファイアのメタバースライブ放送事業

バーチャルアイドルやデジタルヒューマンライブストリーミングなどの新しいライブストリーミングモードが人...

Bilibiliはどのようにコンテンツを配信しますか?

最近、たまたまコンテンツ配信に関わるプロダクトデザインに携わる機会があり、この分野でどのプロダクトが...

ハイブリッド クラウドの概念実証を成功させるための 4 つのステップ

ハイブリッド クラウドの概念実証は、展開が IT およびビジネスのニーズを完全に満たしていることを確...

将来の量子コンピューティングの7つの潜在的な用途を探る

量子コンピューティングの力を活用する組織は、人類が世界最大の問題のいくつかを解決し、医薬品研究から世...

第三級都市の電子商取引サンプル: 2013 年に規模を競う企業

文:王潔崇本稿では、第三級都市における電子商取引の発展の現状を説明し、これをサンプルとして使用して、...

最も安全な電子メールサービスはどれですか?

電子メールは、最も基本的なネットワーク通信サービスの 1 つです。その重要性は疑う余地がありません。...

高品質なSEO記事の書き方

昨今、外部リンクの役割がますます小さくなるにつれ、高品質のSEOソフト記事の書き方を知ることが非常に...

Kafkaの独創的な高性能設計の1つ

[[420235]]これは、Kafka に関するシリーズ「Mastering MQ」の 4 番目の記...

ウェブマスター自身だけが独立したブログの発展に影響を与えることができる

独立系ブログが今後も生き残れるかどうかという話題を、私は一度や二度は耳にしたことがあります。QQグル...

百度が2015年の年間検索ランキングを発表

本日、百度は2015年百度沸点ホット検索リストを正式に発表しました。この最終リストは、1年間の検索行...