先ほど、ローカル ストレージと 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 つのトレンド
ウェブサイトの入り口ページが多いほど、トラフィックは増加します。シングルページウェブサイト(複数ペー...
123systems は、私の記憶が正しければ、ダラスのデータセンターに常に VPS を設置してきま...
[51CTO.comよりオリジナル記事] 11月16日、VMwareの年次イベントvFORUM 20...
ビジネスを始めるということは、誰も歩んだことのない道を歩むことを意味し、ビジネスを始めるには洞察力、...
まず、従来の IDC は当面消滅したり、クラウド コンピューティング IDC に完全に置き換えられた...
インターネット上には、さまざまな理由でグレーゾーンのビジネスをしている人々が常に存在します(たとえば...
cmivps は、香港データセンター、KVM 仮想化、純粋な SSD、100Mbps 帯域幅、中国本...
検索エンジン最適化担当者が他人の視点から考える方法を知らない場合、その人は優れた SEO 担当者とは...
ウェブマスターとして、特に企業の SEO 担当者として、ウェブサイトのランキングは当然注目の的となり...
近年、SEO最適化業界は活況を呈しており、コンテンツが王様であり、外部リンクが王様であるようです。著...
2017 年の Apple を一言で表すなら、「禁止」が特に適切だと思われます。 予想通り、Appl...
この詳細なブログ投稿では、Kubernetes ネットワークの複雑さについて説明し、コンテナ化された...
8月14日、Taobaoはサードパーティのトラフィックプラットフォームに関する新しいポリシーを発表し...
労働者の日、おそらく中国の労働者の日に相当するのでしょうか? Hostcat の詳細については触れま...
1. クラウドアプリケーションの現状と課題Gビヘイビアは「123+N」デジタル開発システムを深化させ...