1. 背景RocketMQ がマスター/スレーブ モードを採用するか、Dledger マルチコピー モードを採用するかにかかわらず、RocketMQ クラスターの高可用性を確保できます。ただし、コンピュータ室の停電、コンピュータ室の火災、地震、その他の不可抗力要因などの極端なシナリオでは、IDC アベイラビリティ ゾーンの RocketMQ クラスターは通常のメッセージ サービス機能を提供できません。したがって、リスク耐性を強化するためには、メッセージ キュー RocketMQ クラスターにマルチアクティブおよびリモート災害復旧機能を持たせることが非常に重要です。 2. リモート災害復旧ソリューションの物理的な展開図2-1 物理的展開リモート災害復旧ソリューション Mobile Cloud に導入された RocketMQ はマスター/スレーブ モデルを使用します。このモデルでは、リモート ディザスタ リカバリ ソリューションの物理的な導入に次の部分が含まれます。 (1)ネームサーバーコンポーネントは、ステートレスな軽量登録センターであり、ブローカーサービスの更新と検出を担当します。 Namesrv 間の通信はありません。単一の Namesrv に障害が発生しても、他の Namesrv ノードやクラスターの機能には影響しません。 2 つの Namesrv が異なる可用性ゾーンにデプロイされています。 1 つのアベイラビリティ ゾーンに障害が発生した場合でも、他のアベイラビリティ ゾーンの Namesrv は外部にサービスを提供し続けることができます。 (2)ブローカーコンポーネントはメッセージ転送エージェントとして機能し、メッセージの保存と転送を担当します。マスター/スレーブ デプロイメント モードを採用し、2 つのアベイラビリティ ゾーンにクロスデプロイされます (たとえば、ブローカー a のマスターはアベイラビリティ ゾーン 1 にデプロイされ、スレーブ ノードはアベイラビリティ ゾーン 2 にデプロイされます。ブローカー b のマスターはアベイラビリティ ゾーン 2 にデプロイされ、スレーブ ノードはアベイラビリティ ゾーン 1 にデプロイされます)。メッセージはマスター ノードに送信された後、各アベイラビリティ ゾーンにメッセージの全量が保存されるように、スレーブ ノードにリアルタイムで同期されます。 1 つのアベイラビリティ ゾーンに障害が発生した場合でも、外部に対してメッセージの読み取りと書き込みの機能が引き続き提供されます。 3. クラウド版リモート災害復旧シングルクラスタソリューション物理マシンに導入された RocketMQ の運用、保守、移行、スケーリングには時間がかかり、労力がかかり、操作が複雑です。ビジネスが拡大するにつれて、リソースは弾力的に対応できなくなり、手動でのスケーリングではリアルタイムのパフォーマンスが低下します。基盤となるリソースの使用率が低く、ユーザー リソースの分離とトラフィック制御には追加の投資が必要です。 K8S オペレーターを使用できます。 Operator の動作原理は、実際には Kubernetes のカスタム API リソース (CRD、CustomResourceDefinition など) を使用して、デプロイするアプリケーションを記述することです。次に、カスタム コントローラーで、カスタム API オブジェクトの変更に応じて、具体的な展開と運用および保守作業を完了します。 Operator を実現するための鍵となるのは、CRD (カスタムリソース) と Controller (コントローラー) の設計です。 図3-1 オペレータ概略図 RocketMQ Operator を開発することで、数秒でのクラスターのデプロイメント、スケーリング、仕様変更など、一連の一般的な運用・保守操作を実現し、物理的なデプロイメントによって発生する問題を解決しました。次の図は、RocketMQ Operator の設計と実装を示しています。 図3-2 RocketMQオペレータアーキテクチャ図 このソリューションでは、3 つのリモート アベイラビリティ ゾーンを使用して K8S クラスターをデプロイし、各アベイラビリティ ゾーンにマスター ノードをデプロイします。図のブローカーは、クロスデプロイメントを備えた 2 つのマスターと 2 つのスレーブの高可用性ソリューションであり、各可用性ゾーンに 1 つの namesrv インスタンスがデプロイされています。 図3-3 クラウドベースのリモート災害復旧単一クラスタソリューション このソリューションにはいくつかの問題があります。大規模な単一の K8S クラスターに障害が発生すると、クラスター全体に影響が及ぶ可能性があり、コンポーネントのアップグレードは困難でリスクが伴います。ビジネスが拡大するにつれて、コアコンポーネントへの圧力が高まり、パフォーマンスが低下します。単一のクラスターの構築は、特定の地理的位置と事前の計画によって制限される可能性があり、柔軟性に欠けます。 4. クラウド版リモート災害復旧クラスタフェデレーションソリューション上記のソリューションの欠点を考慮して、RocketMQ クラウド バージョンのメッセージ キューのマルチゾーン バージョンは現在次のように最適化されています。 図4-1 クラウドベースのリモート災害復旧マルチフェデレーションクラスタソリューション K8S クラスターは、クラウドネイティブの Kosmos を使用して複数のクラスターを統合します。もはや単一の K8S クラスターだけに依存することはありません。 RocketMQ サービス リソースは、Kosmos CluterTree を介してフェデレーション クラスター間で svc、pod、およびその他のリソースを同期し、フェデレーション クラスター間のネットワークは Kosmos ClusterLink によって接続されます。 5. コスモスの紹介Kosmos は、モバイル クラウド向けの分散型クラウド ネイティブ フェデレーション クラスター テクノロジーのコレクションです。 2023 年 8 月にオープンソース化されました。プロジェクト アドレスは https://github.com/kosmos-io/kosmos です。 Kosmos には、マルチクラスター ネットワーク ツール ClusterLink、クロスクラスター オーケストレーション ツール ClusterTree などが含まれています。 図5-1 Kosmosモジュールとコンポーネント ClusterLink の機能は、複数の Kubernetes クラスターを接続することです。 CNI上位層に実装されます。ユーザーはインストールされた CNI プラグインをアンインストールしたり再起動したりする必要がなく、実行中のポッドには影響しません。 ClusterLink の主な機能は次のとおりです。 ClusterTree の役割は、Kubernetes のツリー状の拡張とアプリケーションのクラスター間オーケストレーションを実装することです。 ClusterTree は基本的にコントローラーのグループです。ユーザーは、追加のコード変更を必要とせずに、単一のクラスターを使用する場合と同じように、コントロール プレーン kube-apiserver と直接対話できます。現在、ClusterTree の主な機能は次のとおりです。 さらに、Kosmos はいくつかの補助ツールも提供しており、その中で kosmos-operator は Kosmos の展開を簡素化します。 Kosmosctl は、ネットワーク接続テスト、クラスター管理、Kosmos の展開とインストールなどの機能をユーザーに提供するコマンドライン ツールです。 6. Kosmos マルチクラスターネットワーク ClusterLink1. ClusterLink のワークフローと原則ClusterLink は、Linux トンネル テクノロジーを使用してクラスター間ネットワークを接続します。トンネル タイプは、VxLAN や IPSec など、構成可能です。 ClusterLink には、次の図の水色部分に示すように、Network-Manager や Agent などの複数のコンポーネントが含まれています。さまざまなコンポーネントが連携して、トンネル、ルーティング テーブル、fdb などのネットワーク構成を完了します。 図6-1 ClusterLinkアーキテクチャ ワークフローは次のとおりです。
(II) ClusterLinkネットワークモードの紹介図6-2 ClusterLinkネットワークモード 現在、ClusterLink にはゲートウェイと P2P の 2 つのネットワーク モードが含まれています。ゲートウェイ モードでは、データ パケットは左側のポッドから送信された後、まずクラスター内の vx-local トンネルを介してクラスター ゲートウェイ ノードに到達します。次に、クラスター間トンネルを使用してピア クラスターに到達します。データ パケットがピア クラスターに到達すると、CNI によって処理され、単一のクラスター ネットワークを介してターゲット ポッドに到達します。このモデルには利点と欠点の両方があります。その利点は、外部アクセスを提供するために各クラスターで必要なノードが 1 つだけ (HA を考慮すると 2 つ) であり、これはクロスクラウド ハイブリッド クラウド シナリオに適していることです。欠点は、ネットワーク パスが長いため、パフォーマンスが多少低下することです。この問題に対処するために、ClusterLink は、より高いネットワーク パフォーマンスが必要なシナリオで使用できる P2P モードを提供します。このモードでは、データ パケットの制御粒度がより細かくなり、ピア ポッドが配置されているノードに直接送信されます。さらに、P2P モードとゲートウェイ モードは混合使用をサポートします。 7. Kosmos クロスクラスターオーケストレーション ClusterTree(I) ClusterTree のコンポーネントと原理の紹介ClusterTree は、Kubernetes のツリー拡張とアプリケーションのクラスター間オーケストレーションを実装します。ユーザーは、単一のクラスターを使用しているかのように、ルート kube-apiserver にアクセスできます。リーフ クラスターはルート クラスター内のノードとして追加されます。ユーザーは、labelSelector、アフィニティ/アンチアフィニティ、テイントと許容度、トポロジ分散制約などのポッド分散を制御するために、k8s ネイティブ メソッドを使用できます。 図7-1 ClusterTreeアーキテクチャ ClusterTree は基本的にコントローラーのグループです。各コントローラーの機能は次のとおりです。
(II) ClusterTree 高可用性の紹介AZ レベルの障害が発生したり、AZ 間のネットワークが中断されたりした場合に、ユーザーが RocketMQ クラスター インスタンスに正常にアクセスできることを確認することが非常に重要です。上図に示すように、A でのネットワーク切断やコントロール プレーン障害に対処するために、ClusterTree はサービスとエンドポイント リソースの同期を実装し、ユーザー アクセス トラフィックがサブ クラスターを直接通過できるようにすることで、管理と業務を切り離し、ネットワーク パスを短縮します。 RocketMQ のネームサーバー ポッドはクラスター全体に分散されます。 B のネットワークが切断されたり、AZ に障害が発生したりした場合、ユーザーが nsv ポッドにアクセスできない可能性が 50% あります。この問題に対処するために、ClusterTree の eps-probe プラグインは、定期的にクラスター間の ep を検出し、失敗したエンドポイントを削除します。 図7-2 RocketMQクロスAZ高可用性 8. Kosmos クラスターの負荷とネットワーク パフォーマンス テストClusterTree はいくつのノードとポッドを管理できますか? ClusterLink のパフォーマンスは、単一のクラスター ネットワークと比較してどうですか?これらはユーザーが非常に懸念している問題であり、私たちも対応するテストを実施しました。 (I)クラスタ負荷テスト
図8-1 クラスタ負荷テスト - テスト方法 図に示すように、まず kwok を通じて 20 個の大規模クラスターを作成しました。各クラスターには 5,000 個のノードが含まれており、これらのクラスターは Kosmos を使用して管理されています。次に、clusterloader2 を使用してコントロール プレーン kube-apiserver に接続し、クラスターの負荷テストを実行します。主要なテストパラメータを図に示します。
図8-2 クラスタ負荷テスト - テスト結果 Kosmos を使用して k8s クラスター フェデレーションを管理すると、100,000 ノードと 200,000 ポッドのシナリオで公式の SLO 標準が満たされ、このスケールは Kosmos の上限に達しません。 (II)ネットワークパフォーマンステスト
図8-3 ネットワークパフォーマンステスト - テスト方法
写真 |
<<: 開発者に優しい DevSecOps のヒント 5 つ
>>: データの心配は無用、一発で学習:CKA 認定に不可欠な etcd のバックアップと復元のヒントをマスターしましょう。
この生涯 50% 割引コード: CORGI50オプションのオペレーティング システム: Linux ...
ウェブサイトの構築を準備する際に、あなたのビジネスや会社にとって最も重要な要素は何でしょうか? それ...
Bluehost は EIG に買収されて以来大きな動きはなく、データセンターも以前ほど良くないよう...
ウェブホスティングの有名なブランドは数多くありますが、Siteground ほど評判が良いものや、S...
1. 競合他社のウェブサイトを訪問者として訪問し、ウェブサイトの情報を完全に理解します。 ( 1)競...
最近の広告研究財団の会議で、私はメディア計画、メディア購入、メディアターゲティングにおけるコミュニテ...
2Bエンタープライズサービス、クラウドコンピューティング、モバイルインターネット、プロフェッショナル...
この世で唯一負けない武術こそが真の武術だ! 、正規品、公正な価格、これがMixue Bingchen...
みなさんこんにちは!私はHuaxiaming.comのLi Qiangです。メール マーケティングは...
[[339154]]セッション セッションについて言えば、すべてのプログラマーはそれをよく知っており...
Baidu Webmaster Platformからのニュースによると、Baiduがインデックスツー...
ソフト記事はなぜ存在するのか?星文天下がこの疑問を提起したとき、ソフト記事が存在する根本的な理由、つ...
フレンドリーリンクについての記事はたくさんあるので、今日はその詳細についてお話します。これが、大規模...
注目を集める資金調達、狂気じみた拡大、そしてサイトの縮小を経て、共同購入業界の再編は今年4月から加速...
ビットコイン、ライトコイン、元宝コインのいずれにしても、国内市場での熱狂的な投機の時期と監督強化の後...