先ほど、ローカル ストレージと NFS 共有ストレージについて学習しました。これらのストレージ タイプに加えて、ブロック ストレージもあります。 Ceph RBD など、Kubernetes にブロック ストレージを提供するソリューションは数多くあります。本日は、Rancher のオープンソース Kubernetes クラウドネイティブ分散ブロック ストレージ ソリューションである Longhorn をご紹介します。 Longhorn は、あらゆるインフラストラクチャで実行できる軽量で強力なクラウドネイティブ Kubernetes 分散ストレージ プラットフォームです。 Longhorn は Rancher と組み合わせて使用することも可能で、Kubernetes 環境で高可用性の永続ブロック ストレージを簡単、迅速、かつ確実に導入できるようになります。 Longhorn を使用すると、次のことが可能になります。
Longhorn にはスタンドアロン UI も付属しており、Helm、kubectl、または Rancher アプリケーション カタログを使用してインストールできます。 建築Longhorn はボリュームごとに専用のストレージ コントローラを作成し、複数のノードに保存されている複数のコピー間でボリュームを同期的に複製します。 Longhorn は一般に、データ プレーンとコントロール プレーンの 2 つのレイヤーに分かれています。 Longhorn Engine はデータ プレーンに対応するストレージ コントローラーであり、Longhorn Manager はコントロール プレーンに対応します。 Longhorn Manager は、Longhorn クラスターの各ノード上で DaemonSet として実行されます。 Kubernetes クラスター内のボリュームの作成と管理、および UI または Kubernetes ボリューム プラグインからの API 呼び出しの処理を担当します。 Kubernetes コントローラー パターンに従います。 Longhorn Manager は、Kubernetes APIServer と通信して新しい Longhorn ボリューム CRD を作成します。その後、Longhorn Manager は APIServer の応答を監視し続けます。新しい Longhorn ボリューム CRD が作成されたことを確認すると、Longhorn Manager は対応する新しいボリュームを作成します。 Longhorn Manager はボリュームの作成を要求されると、ボリュームが接続されているノード上に Longhorn Engine インスタンスを作成し、レプリカが配置される各ノード上にレプリカを作成します。最大限の可用性を確保するには、レプリカを異なるホストに配置する必要があります。レプリカの複数のデータ パスにより、Longhorn ボリュームの高可用性が確保されます。レプリカまたはエンジンに障害が発生しても、すべてのレプリカまたはポッドによるボリュームへのアクセスには影響しません。 Longhorn エンジンは、常に Longhorn ボリュームを使用するポッドと同じノード上で実行され、複数のノードに保存されている複数のレプリカ間でボリュームを同期的に複製します。 次の図は、Longhorn ボリューム、Longhorn エンジン、レプリカ インスタンス、およびディスク間の読み取り/書き込みデータ フローを示しています。 ボリューム、Longhorn エンジン、レプリカ インスタンス、ディスク間の読み取り/書き込みデータ フロー
注: 図のエンジンは独立したポッドではありませんが、各ボリュームはgolangによって実行されるLinuxプロセスに対応しています。 Longhorn では、各エンジンは 1 つのボリュームのみを提供する必要があるため、ストレージ コントローラーの設計が簡素化されます。コントローラ ソフトウェアの障害ドメインは単一のボリュームから分離されているため、コントローラのクラッシュは 1 つのボリュームにのみ影響します。 Longhorn Engine はシンプルで軽量なので、最大 100,000 個の独立したエンジンを作成できます。 Kubernetes はこれらの独立したエンジンをスケジュールし、共有ディスクのセットからリソースを抽出し、Longhorn と連携して回復力のある分散ブロック ストレージ システムを形成します。 各ボリュームには独自のコントローラがあるため、各ボリュームのコントローラとレプリカ インスタンスも、IO 操作に大きな中断を引き起こすことなくアップグレードできます。 Longhorn は、システム操作を中断することなくすべてのボリュームのアップグレードを調整するための長時間実行ジョブを作成できます。 Longhorn は、CSI ドライバーを通じて Kubernetes で管理されます。 CSI ドライバーは、Longhorn を呼び出してボリュームを作成し、Kubernetes ワークロードの永続データを作成します。 CSI プラグインを使用すると、ボリュームおよびスナップショット ボリュームの作成、削除、接続、切断、マウントが可能になります。 Kubernetes クラスターは CSI インターフェースを使用して Longhorn CSI ドライバーと通信し、Longhorn CSI ドライバーは Longhorn API を使用して Longhorn Manager と通信します。 さらに、Longhorn は、Longhorn API を介して Longhorn Manager と対話する UI インターフェイス プログラムも提供します。 Longhorn UI を通じて、スナップショット、バックアップ、ノード、ディスクを管理できます。さらに、クラスターの作業ノードのスペース使用量も Longhorn UI を通じて表示できます。 インストールKubernetes クラスターに Longhorn をインストールするには、クラスター内の各ノードが次の要件を満たしている必要があります。
Longhorn を適切に導入および操作するには、Longhorn ワークロードを root として実行できる必要があります。 頼るこれらの環境要件を確認するために、Longhorn では確認に役立つスクリプトが公式に提供されています。スクリプトを実行するには、jq ツールをローカルにインストールする必要があります。スクリプトを実行するには、次のコマンドを実行します。 ➜ curl - sSfL https://raw.githubusercontent.com/longhorn/longhorn/v1.2.3/scripts/environment_check.sh |バッシュ チェックが失敗した場合は、関連するプロンプト メッセージが表示されます。 open-iscsi をインストールするには、次のコマンドを直接使用できます。 # apt - get install open - iscsi # Debian およびUbuntu のコマンド Longhorn には、open-iscsi を自動的にインストールしやすくする iscsi インストーラーも用意されています。 ➜ kubectl apply -f https://raw.githubusercontent.com/longhorn/longhorn/v1.2.3/deploy/prerequisite/longhorn-iscsi-installation.yaml デプロイが完了したら、次のコマンドを実行してインストーラーのポッドのステータスを確認します。 ➜ kubectl ポッドを取得| grep longhorn - iscsi - インストール 次のコマンドを使用して、ログとインストール結果を表示することもできます。 ➜ kubectl ログlonghorn - iscsi - インストール- pzb7r - c iscsi - インストール NFSv4 クライアントをインストールするには、次のコマンドを使用します。 # apt - get install nfs - common # Debian およびUbuntu のコマンド 同様に、Longhorn は nfs クライアント インストール プログラムも提供しており、これにより nfs-client をより簡単に自動的にインストールできます。 ➜ kubectl apply -f https://raw.githubusercontent.com/longhorn/longhorn/v1.2.3/deploy/prerequisite/longhorn-nfs-installation.yaml デプロイが完了したら、次のコマンドを実行してインストーラーのポッドのステータスを確認します。 ➜ kubectl ポッドを取得| grep longhorn - nfs - インストール 次のコマンドを使用して、ログとインストール結果を表示することもできます。 ➜ kubectl ログlonghorn - nfs - インストール- t2v9v - c nfs - インストール 関連する依存環境が準備されたら、Longhorn のインストールを開始できます。 展開するRancher Catalog アプリケーション、kubectl、helm を使用したインストールを公式にサポートします。ここでは、インストールに helm を使用することを選択します。 まず、longhorn チャート リポジトリを追加します。 ➜ helm リポジトリにlonghorn を追加しますhttps://charts.longhorn.io その後、実際のシナリオに応じて値ファイルをカスタマイズできます。次のコマンドを実行すると、デフォルト値ファイルを取得できます。 ➜ curl - Lo 値.yaml https://raw.githubusercontent.com/longhorn/charts/master/charts/longhorn/values.yaml その後、値ファイル内の設定を変更できます。 Longhorn では、ストレージとして別のディスクを使用することを推奨しています。ここでは、デフォルトの /var/lib/longhorn ディレクトリがテスト用に直接使用されます。 デフォルト構成の例のスニペットを以下に示します。 デフォルト設定: 次に、次のコマンドを実行して、ワンクリックで Longhorn をインストールします。 ➜ helm アップグレード-- longhornをインストールlonghorn / longhorn -- namespace longhorn - system -- create - namespace - f values .yaml デプロイ後、Pod の実行ステータスをチェックして、インストールが正しいことを確認できます。 ➜ kubectl get pods - n longhorn - システム 上記のインストール中に Ingress サポートを追加したので、構成されたドメイン名を通じて Longhorn UI にアクセスできます。 ➜ kubectl get ingress - n longhorn - システム ここでは、ingress-nginx コントローラーを使用します。インストール後、ブラウザで http://longhorn.k8s.local にアクセスするだけです。 Longhorn UI には現在のストレージ システムのステータスが表示され、その他の関連する構成もこのページで行うことができます。 デフォルトの StorageClass オブジェクトも作成されます。 ➜ kubectl を取得sc longhorn テスト次に、longhorn を使用してストレージ ボリュームを提供するテストを行います。デフォルトの StorageClass が提供されているため、PVC を直接作成できます。以下に示すように PVC を作成します。 APIバージョン: v1 次に、データの永続性のために上記の PVC を使用するために、mysql アプリケーションをデプロイします。 apiバージョン: アプリ/ v1 上記のリソース オブジェクトを直接作成します。 ➜ kubectl でpvc を取得- pvc アプリケーションが正常に起動したら、ノード上のデータをチェックして成功したかどうかを確認できます。 ➜ ls / var / lib / longhorn / Longhorn は分散ブロック ストレージであり、分散ファイル システムとは異なり、pv で設定されたストレージ サイズ (上記の例では 1G) を超えることはできないことに注意してください。データベースに longhorn という名前のデータベースを作成し、ポッドを再構築してデータがまだ存在するかどうかを確認しました。 ➜ kubectl ポッドを取得する 先ほど作成したデータベースがまだ存在しており、データの永続性が成功したことが証明されています。 Longhorn UI インターフェイスでデータ ボリューム情報を確認することもできます。 Longhorn の高度な機能については、今後の記事にも注目してください。 |
>>: 2022 年の Kubernetes の 5 つのトレンド
[51CTO.com クイック翻訳] Web スケールのアプリケーションでは、優れたユーザー エクス...
2022 年までに、企業データの 60% がクラウドに保存されるようになります。これは、2015 年...
VMware は、Mobile World Congress 2022 で一連の製品リリースを開始し...
私は、yunserver.com の Frozen から、XEN 仮想化に基づく peer1 ロサン...
この記事は、安価な VPS、安価なアメリカの VPS について知りたい、そして優れたアメリカの VP...
始める前にKubernetes はシンプルでありながら複雑なシステムです。シンプルさは、全体的なアー...
【51CTO.comオリジナル記事】 [51CTO オリジナル記事、パートナーサイトに転載する場合は...
海外で人気の VPS 販売業者 budgetvm がついに Alipay 決済機能の提供を開始し、中...
中国で最も人気のあるウェブマスターフォーラムの1つであるA5は、情報、取引、フォーラムを統合し、大多...
おそらく、多くの場合、私たちは百度の度重なるコンテンツ要求に負けています。記事を書ける友達はそれほど...
文/呉俊(Fayiba創設者、Dianmo Media中核メンバー)不完全な統計によると、インターネ...
ご存知のとおり、クラウド コンピューティング ソリューションは徐々に普及してきました。企業におけるク...
Taobao の顧客が自社製品を宣伝したい場合、Meilishuo のような Web サイトは適して...
ショートビデオ、セルフメディア、インフルエンサーのためのワンストップサービスまず、Weibo につい...
2018年最もホットなプロジェクト:テレマーケティングロボットがあなたの参加を待っています企業の購買...