IBM Cloud Kubernetes Service ストレージの概要
仮想プライベート・クラウド クラシック・インフラストラクチャー Satellite
クラスターで使用可能なストレージ・オプションの概要については、以下のセクションを参照してください。
IBM Cloud® Kubernetes Service クラスタにどのタイプのストレージが適切なソリューションであるかを決定する前に、 IBM Cloud インフラストラクチャ・プロバイダー、アプリケーションの要件、保存したいデータのタイプ、およびこのデータにアクセスする頻度を理解する必要があります。
- データを永続的に保管する必要があるかどうかを決定します。
- 永続ストレージ: 永続ストレージに保管されたデータは、コンテナー、ワーカー・ノード、またはクラスターが削除されても保持されます。 ステートフル・アプリ、コア・ビジネス・データ、または法的要件 (定義された保存期間など) のために使用可能にする必要があるデータには、永続ストレージを使用します。 永続ストレージは、監査のための優れたオプションでもあります。
- 非永続ストレージ: コンテナー、ワーカー・ノード、またはクラスターが削除されるときに、データを削除できます。 非永続ストレージは、通常、ロギング情報 (システム・ログやコンテナー・ログなど)、開発テスト、またはホストのファイル・システムからデータにアクセスする場合に使用されます。
- データを保持する必要がある場合は、アプリが特定のタイプのストレージを必要とするかどうかを分析します。 既存のアプリを使う場合、そのアプリは以下のいずれかの方法でデータを保存するように設計されているかもしれない。
- ファイル・システムの場合: データは、ディレクトリーにファイルとして保管できます。 例えば、このファイルをローカルのハード・ディスクに保管することができます。 一部のアプリでは、データ・ストアを最適化し、パフォーマンス目標を達成するために、
nfs
やext4
などの特定のファイル・システムにデータを保管する必要があります。 - データベースの場合: データは、特定のスキーマに従うデータベースに保管する必要があります。 一部のアプリには、データを保管するために使用できるデータベース・インターフェースが用意されています。 例えば、WordPress は MySQL データベースにデータを保管するために最適化されています。 このような場合は、ストレージのタイプが選択されます。
- 保管するデータのタイプを決定します。
- 構造化データ: 列と行がある表を含むリレーショナル・データベースに保管できるデータ。 表内のデータは、キーを使用して接続することができます。また、事前定義のデータ・モデルにより、通常は簡単にアクセスできます。 例として、電話番号、アカウント番号、社会保障番号、郵便番号などがあります。
- 準構造化データ: リレーショナル・データベースに適合しないデータ。ただし、このデータをより簡単に読み取って分析するために使用できるいくつかの組織プロパティーが含まれています。 例として、CSV、XML、または JSON などのマークアップ言語ファイルがあります。
- 非構造化データ: 組織的なパターンに従わない、非常に複雑で、事前定義されたデータ・モデルを使用してリレーショナル・データベースに保管できないデータ。 このデータにアクセスするには、高度なツールとソフトウェアが必要です。 例えば、電子メールメッセージ、ビデオ、写真、オーディオファイル、プレゼンテーション、ソーシャルメディアデータ、ウェブページなどです。
構造化データと非構造化データがある場合は、各データ・タイプを、そのデータ・タイプ用に設計されたストレージ・ソリューションに個別に保管してみてください。 データ・タイプに適したストレージ・ソリューションを使用すると、データへのアクセスが容易になり、パフォーマンス、スケーラビリティー、耐久性、および整合性の利点が得られます。
- データへの希望するアクセス方法を分析します。 ストレージ・ソリューションは、通常、読み取り操作または書き込み操作をサポートするように設計および最適化されています。
- 読み取り専用: データの書き込みや変更は行いません。 データは読み取り専用です。
- 読み取り/書き込み: ユーザーは、データの読み取り、書き込み、および変更を行いたいと考えています。 読み取りおよび書き込みが行われるデータについて、操作は読み取りが多いか、書き込みが多いか、またはバランスが取れているかを理解することが重要です。
- データがアクセスされる頻度を判別します。
- ホット・データ: 頻繁にアクセスされるデータ。 Web アプリやモバイル・アプリが一般的なユース・ケースです。
- クール・データまたはウォーム・データ: アクセス頻度の低い (月 1 回以下程度) データ。 アーカイブ、短期データ保存、および災害復旧が一般的なユース・ケースです。
- コールド・データ: めったにアクセスされないデータ。 アーカイブ、長期バックアップ、履歴データが一般的なユース・ケースです。
- 凍結データ: アクセスされないが、法的理由により保持する必要があるデータ。
頻度を予測できない場合、または頻度が厳密なパターンに従っていない場合は、ワークロードの読み取りが多いか、書き込みが多いか、バランスが取れているかを判別します。 次に、ワークロードに適合するストレージ・オプションを調べ、必要な柔軟性をもたらすストレージ層について調査してください。 例えば、IBM Cloud Object Storage には、1 カ月のデータへのアクセス頻度を考慮し、月単位の課金を最適化するためにこの測定値を考慮する flex
ストレージ・クラスが用意されています。
- 複数のアプリ・インスタンス、ゾーン、またはリージョンにわたってデータを共有する必要があるかどうかを調査します。
- 複数のポッドによるアクセス: ストレージにアクセスするために Kubernetes 永続ボリュームを使用する場合、ボリュームを同時にマウントすることができるポッドの数を決定できます。 一部のストレージ・ソリューションには、一度に 1 つのポッドのみがアクセスできます。 他のストレージ・ソリューションでは、複数のポッド間でボリュームを共有できます。
- 複数のゾーンおよびリージョンでのアクセス: 複数のゾーンまたはリージョンでデータをアクセス可能にする必要がある場合があります。 ファイル・ストレージやブロック・ストレージなどの一部のストレージ・ソリューションはデータ・センター固有であり、複数ゾーン・クラスター・セットアップのゾーン間で共有することはできません。
データを複数のゾーンやリージョンで利用できるようにする場合は、社内の法務部門に相談して、データを複数のゾーンや国外に保管できることを確認してください。
- 選択に影響を与えるその他のストレージ特性を理解します。
- 整合性: 読み取り操作で最新バージョンのファイルが返されるという保証。 ストレージ・ソリューションは、ユーザーが常に最新バージョンのファイルを受け取ることが保証されている場合は
strong consistency
を示し、読み取り操作で最新バージョンが返されない場合があるときはeventual consistency
を示すことができます。 eventual consistency は、書き込み操作が最初にすべてのインスタンスにわたって複製される必要がある、地理的に分散されたシステムで見られることが多いです。 - パフォーマンス: 読み取り操作または書き込み操作を完了するために要する時間。
- 耐久性: ギガバイトやテラバイトのデータが同時にストレージに書き込まれる場合でも、ストレージにコミットされた書き込み操作が永久に存続し、破損も損失もしない保証。
- 回復力: ハードウェア・コンポーネントまたはソフトウェア・コンポーネントで障害が発生した場合でも、障害からリカバリーし、操作を続行する機能。 障害には、物理ストレージに電源異常やネットワーク障害が発生することや、自然災害で物理ストレージが損傷することなどがあります。
- 可用性: データ・センターまたはリージョンが使用不可になっている場合でもデータへのアクセスを提供する機能。 通常、データの可用性は、冗長性の追加とフェイルオーバー・メカニズムのセットアップによって実現されます。
- スケーラビリティー: ニーズに応じて容量を拡張し、パフォーマンスをカスタマイズする機能。
- 暗号化: 無許可ユーザーがデータにアクセスしたときに表示されなくなるデータのマスキング。
非永続ストレージのオプション
データが永久に保管される必要がない場合、またはアプリ・コンポーネントに単体テストを実行する場合は、非永続ストレージ・オプションを使用できます。 以下のイメージは、IBM Cloud Kubernetes Service で使用可能な非永続データ・ストレージ・オプションを示しています。
特性 | コンテナー内 | ワーカー・ノードの 1 次ディスクまたは 2 次ディスク上 |
---|---|---|
複数ゾーンに対応 | いいえ | いいえ |
データ・タイプ | すべて | すべて |
容量 | ワーカー・ノードの使用可能な 2 次ディスクに制限されます。 ポッドが消費するセカンダリー・ストレージの量を制限するには、 エフェメラル・ストレージのリソース要求と制限を使用します。 | ワーカーノードがプライマリディスク (hostPath ) またはセカンダリディスク (emptyDir ) で利用可能な容量に制限されます。ポッドが消費するセカンダリストレージの量を制限するには、 エフェメラルストレージのリソース要求と制限を使用します。 |
データ・アクセス・パターン | 任意の頻度の読み取り操作と書き込み操作 | 任意の頻度の読み取り操作と書き込み操作 |
アクセス | コンテナーのローカル・ファイル・システム経由 | Via Kubernetes hostPath でワーカーノードのプライマリストレージにアクセスします。 ワーカーノードのセカンダリストレージにアクセスするための Kubernetes emptyDir ボリューム 経由。 |
パフォーマンス | 高 | ハイ (SSD を使用する場合の待ち時間が短い) |
回復力 | 低 | 低 |
可用性 | コンテナーに固有 | ワーカー・ノードに固有 |
スケーラビリティー | ワーカー・ノードの 2 次ディスクの容量に制限されるため拡張は難しい | ワーカー・ノードの 1 次ディスクと 2 次ディスクの容量に制限されるため拡張は難しい |
耐久性 | コンテナーがクラッシュするか削除されるとデータは失われます。 | ワーカー・ノードの削除、再ロード、更新やクラスターの削除が行われた場合、または IBM Cloud アカウントが一時停止状態になった場合、hostPath ボリュームまたは emptyDir ボリュームのデータは失われます。 また、割り当てられたポッドがワーカー・ノードから永久に削除された場合や、割り当てられたポッドが別のワーカー・ノードにスケジュールされた場合にも、emptyDir ボリュームのデータは削除されます。 |
一般的なユース・ケース | ローカル・イメージ・キャッシュやコンテナー・ログ | 高性能のローカル・キャッシュのセットアップ、ワーカー・ノードのファイル・システムにあるファイルへのアクセス、単体テストの実行。 |
推奨されないユース・ケース | 永続データ・ストレージ、コンテナー間のデータ共有 | 永続データ・ストレージ |
単一ゾーン・クラスター
ゾーン・リージョン・クラスタが1つの場合、 IBM Cloud Kubernetes Service、データへの高速アクセスを提供する以下のオプションから選択できます。 より高い可用性を得るには、地理的に分散したデータ用に設計されたストレージ・オプションを使用し、お客様の要件に可能であれば、マルチゾーン・クラスタを作成します。
次の図は、単一クラスター内にデータを永続的に保管するために IBM Cloud Kubernetes Service で使用できるオプションを示しています。
特性 | 説明 |
---|---|
デプロイメント・ガイド | File Storage for Classicをセットアップします。 |
理想的なデータ型 | すべて |
サポートされるプロビジョニング・タイプ | 動的および静的 |
データの使用パターン | ランダム読取り/書込み操作、シーケンシャル読取り/書込み操作、または書込み集中型の作業負荷 |
アクセス | マウントされたボリューム上のファイル・システム経由 |
対応 Kubernetes アクセスモード |
|
パフォーマンス | IOPS とサイズが割り当てられるため、予測可能です。 IOPS はボリュームにアクセスするポッド間で共有されます。 |
整合性 | ストロング |
耐久性 | 高 |
回復力 | ミディアム (データ・センターに固有であるため)。 ファイル・ストレージ・サーバーは、冗長ネットワーキングで IBM によってクラスター化されます。 |
可用性 | ミディアム (データ・センターに固有であるため)。 |
スケーラビリティー | データ・センターを超える拡張は難しい。 既存のストレージ層を変更することはできません。 |
暗号化 | 静止 |
バックアップとリカバリー | 定期スナップショットのセットアップ、スナップショットのレプリケーション、ストレージの複製、IBM Cloud Object Storage へのデータのバックアップ、ポッドやコンテナーとの間のデータのコピー。 |
一般的なユース・ケース | 大量または単一のファイル・ストレージ、単一ゾーン・クラスター内でのファイル共有。 |
推奨されないユース・ケース | マルチゾーン・クラスタまたは地理的に分散したデータ。 |
特性 | 説明 |
---|---|
デプロイメント・ガイド | Block Storage for Classicをセットアップします。 |
理想的なデータ型 | すべて |
サポートされるプロビジョニング・タイプ | 動的および静的 |
データの使用パターン | ランダム読取り/書込み操作、シーケンシャル読取り/書込み操作、または書込み集中型の作業負荷 |
アクセス | マウントされたボリュームのファイルシステム経由。 |
対応 Kubernetes アクセスモード | ReadWriteOnce (RWO) |
パフォーマンス | IOPS とサイズが割り当てられるため、予測可能です。 IOPS はポッド間で共有されません。 |
整合性 | ストロング |
耐久性 | 高 |
回復力 | ミディアム (データ・センターに固有であるため)。 ブロック・ストレージ・サーバーは、冗長ネットワーキングで IBM によってクラスター化されます。 |
可用性 | ミディアム (データ・センターに固有であるため)。 |
スケーラビリティー | データ・センターを超える拡張は難しい。 既存のストレージ層を変更することはできません。 |
暗号化 | 休息中。 |
バックアップとリカバリー | 定期スナップショットのセットアップ、スナップショットのレプリケーション、ストレージの複製、IBM Cloud Object Storage へのデータのバックアップ、ポッドやコンテナーとの間のデータのコピー。 |
一般的なユース・ケース | ステートフル・セット、独自のデータベースを実行する場合のバッキング・ストレージ、単一ポッドのハイパフォーマンス・アクセス。 |
推奨されないユース・ケース | マルチゾーン・クラスター、地理的分散データ、複数のアプリ・インスタンスでのデータ共有。 |
特性 | 説明 |
---|---|
デプロイメント・ガイド | File Storage for VPCをセットアップします。 |
理想的なデータ型 | すべて |
サポートされるプロビジョニング・タイプ | 動的および静的 |
データの使用パターン | ランダム読取り/書込み操作、シーケンシャル読取り/書込み操作、または書込み集中型の作業負荷 |
アクセス | マウントされたボリューム上のファイル・システム経由 |
対応 Kubernetes アクセスモード |
ReadWriteMany (RWX)
|
パフォーマンス | IOPS とサイズが割り当てられるため、予測可能です。 IOPS はポッド間で共有されません。 |
整合性 | ストロング |
耐久性 | 高 |
回復力 | ミディアム (データ・センターに固有であるため)。 ファイル・ストレージ・サーバーは、冗長ネットワーキングで IBM によってクラスター化されます。 |
可用性 | ミディアム (データ・センターに固有であるため)。 |
スケーラビリティー | データ・センターを超える拡張は難しい。 既存のストレージ層を変更することはできません。 |
暗号化 | なし |
バックアップとリカバリー | kubectl cp を実行するか、ポッドおよびコンテナーとの間でデータをコピーします。 |
一般的なユース・ケース | 大量または単一のファイル・ストレージ、単一ゾーン・クラスター内でのファイル共有。 |
推奨されないユース・ケース | マルチゾーン・クラスター、地理的分散データ、複数のアプリ・インスタンスでのデータ共有。 |
特性 | 説明 |
---|---|
デプロイメント・ガイド | Block Storage for VPCをセットアップします。 |
複数ゾーン対応 | いいえ (データ・センターに固有であるため)。 独自のデータ複製を実装しない限り、ゾーン間でデータを共有することはできません。 |
理想的なデータ型 | すべて |
データの使用パターン | ランダム読取り/書込み操作、シーケンシャル読取り/書込み操作、または書込み集中型の作業負荷 |
アクセス | マウントされたボリューム上のファイル・システム経由 |
サポートされる Kubernetes アクセス書き込み | ReadWriteOnce (RWO) |
パフォーマンス | IOPS とサイズが割り当てられるため、予測可能です。 IOPS はポッド間で共有されません。 |
整合性 | ストロング |
耐久性 | 高 |
回復力 | ミディアム (データ・センターに固有であるため)。 ブロック・ストレージ・サーバーは、冗長ネットワーキングで IBM によってクラスター化されます。 |
可用性 | ミディアム (データ・センターに固有であるため)。 |
スケーラビリティー | データ・センターを超える拡張は難しい。 既存のストレージ層を変更することはできません。 |
暗号化 | Key Protect を使用した転送中の暗号化 |
バックアップとリカバリー | 定期スナップショットのセットアップ、スナップショットのレプリケーション、ストレージの複製、IBM Cloud Object Storage へのデータのバックアップ、ポッドやコンテナーとの間のデータのコピー。 |
一般的なユース・ケース | ステートフル・セット、独自のデータベースを実行する場合のバッキング・ストレージ、単一ポッドのハイパフォーマンス・アクセス。 |
推奨されないユース・ケース | マルチゾーン・クラスター、地理的分散データ、複数のアプリ・インスタンスでのデータ共有。 |
複数ゾーン・クラスター
以下のセ ク シ ョ ンでは、 IBM Cloud Kubernetes Service でマルチゾーン・クラスターにデータを永続的に保存し、データを高可用性にするためのオプションを示します。 これらのオプションを単一ゾーン・クラスター内で使用することもできますが、ご使用のアプリで要求される高可用性の利点は得られない可能性があります。
特性 | 説明 |
---|---|
デプロイメント・ガイド | IBM Cloud Object Storageをセットアップします。 |
サポート対象のインフラストラクチャー・プロバイダー | クラシック、VPC、 Satellite |
理想的なデータ型 | 準構造化データと非構造化データ |
データの使用パターン | 読み取り主体のワークロード。 書き込み操作は少ないか、まったく行われない。 |
アクセス | マウントされたボリューム上のファイル・システム経由 (プラグイン) またはアプリからの REST API 経由 |
対応 Kubernetes アクセスモード | ReadWriteMany (RWX) |
パフォーマンス | 読み取り操作の場合は高い。 非 SDS マシンの使用時は、割り当てられる IOPS とサイズのために予測可能です。 |
整合性 | 結果 |
耐久性 | 非常にハイ (ストレージ・ノードのクラスター全体にデータ・スライスが分散するため)。 どのノードもデータの一部のみ保管します。 |
回復力 | ハイ (3 つのゾーンまたはリージョンにわたってデータ・スライスが分散するため)。 ミディアム、単一ゾーン・リージョンに設定した場合のみ。 |
可用性 | ハイ (複数のゾーンまたはリージョンへの分散のため)。 |
スケーラビリティー | 自動的にスケーリングします |
暗号化 | 転送中および静止 |
バックアップとリカバリー | データは、耐久性を高めるために、複数のノード間で自動的に複製されます。 詳しくは、 IBM Cloud Object Storage サービスのご利用条件の SLA を参照してください。 |
一般的なユース・ケース | 地理的に分散したデータ、静的ビッグデータ、静的マルチメディア・コンテンツ、Web アプリケーション、バックアップ、アーカイブ、ステートフル・セット。 |
推奨されないユース・ケース | 書き込み集中型ワークロード、ランダム書き込み操作、増分データ更新、またはトランザクション・データベース。 |
特性 | 説明 |
---|---|
デプロイメント・ガイド | Portworxのセットアップ。 |
サポート対象のインフラストラクチャー・プロバイダー | クラシック、VPC、 Satellite |
理想的なデータ型 | 任意 |
データの使用パターン | 読み取りと書き込みが集中する作業負荷。 |
アクセス | マウントされたボリューム上のファイル・システム経由 (プラグイン) またはアプリからの REST API 経由 |
対応 Kubernetes アクセスモード |
|
パフォーマンス | 読み取り操作の場合は高い。 非 SDS マシンの使用時は、割り当てられる IOPS とサイズのために予測可能です。 |
整合性 | ストロング |
耐久性 | 非常にハイ (ストレージ・ノードのクラスター全体にデータ・スライスが分散するため)。 どのノードもデータの一部のみ保管します。 |
回復力 | ハイ (3 つのゾーンまたはリージョンにわたってデータ・スライスが分散するため)。 ミディアム、単一ゾーン・リージョンに設定した場合のみ。 |
可用性 | ハイ (複数のゾーンまたはリージョンへの分散のため)。 |
スケーラビリティー | 自動的にスケーリングします |
暗号化 | IBM Key Protect を使用して転送中および保存中のデータを保護するための独自のキーを用意してください。 |
バックアップとリカバリー | データは、耐久性を高めるために、複数のノード間で自動的に複製されます。 詳しくは、 IBM Cloud Object Storage サービスのご利用条件の SLA を参照してください。 ローカルまたはクラウドのスナップショットを使用して、ボリュームの現在の状態を保存します。 詳細については、 ローカルスナップショットの作成と使用を参照してください。 |
一般的なユース・ケース | 複数ゾーン・クラスター。 地理的分散データ。 静的ビッグデータ。 静的マルチメディア・コンテンツ |
推奨されないユース・ケース | 書き込み集中型ワークロード、ランダム書き込み操作、増分データ更新、またはトランザクション・データベース。 |
特性 | 説明 |
---|---|
デプロイメント・ガイド | Cloud Databases デプロイメントを IBM Cloud Kubernetes Service アプリケーションに接続します。 |
サポート対象のインフラストラクチャー・プロバイダー | クラシック、VPC、 Satellite |
理想的なデータ型 | DBaaS によって異なる |
データの使用パターン | 読み書き集中型のワークロード |
アクセス | アプリから REST API を使用。 |
サポートされる Kubernetes アクセス書き込み | 該当なし (アプリから直接アクセスされるため)。 |
パフォーマンス | アプリと同じデータ・センターにデプロイされた場合はハイ。 |
整合性 | DBaaS によって異なる |
耐久性 | 高 |
回復力 | DBaaS およびセットアップによって異なります。 |
可用性 | ハイ (複数のインスタンスをセットアップした場合)。 |
スケーラビリティー | 自動的にスケーリングします |
暗号化 | 静止 |
バックアップとリカバリー | DBaaS によって異なる |
一般的なユース・ケース | 複数ゾーン・クラスター、リレーショナル・データベースと非リレーショナル・データベース、または地理的に分散したデータ。 |
推奨されないユース・ケース | ファイル・システムに書き込むように設計されたアプリケーション。 |
次のステップ
計画プロセスを続けるために、環境アーキテクチャを文書化します。