ACK Oneは、ALBマルチクラスタゲートウェイを介した地理災害復旧システムの作成を容易にします。 ジオディザスタリカバリは、地震や洪水などの地域の大惨事に対して保護しますが、待ち時間、コスト、およびメンテナンス要件も増加します。 このトピックでは、ALBマルチクラスタゲートウェイを使用してジオディザスタリカバリシステムを確立するためのアーキテクチャとアプリケーションシナリオについて説明します。
アーキテクチャ
2つのリージョンのそれぞれにACKクラスターを確立します。 リージョン1では、ACK OneフリートとALBマルチクラスタゲートウェイを設定します。 ALB Ingress Controllerをクラスター2にデプロイして、ALB 2をコールドバックアップとして確立します。
リージョン1のALBマルチクラスタゲートウェイをリージョン2のALBインスタンスにリンクするためにGTMを使用して、リージョン1のリージョナル災害が発生した場合にリージョン2のALB 2に切り替えることができます。
フリート内では、マルチクラスタゲートウェイを利用して、QUICの0-RTTやヘッダベースの転送など、2つのリージョンにわたる柔軟なレイヤ7トラフィック管理を行い、相互の災害復旧を実現します。
CENまたはVPCピアリング接続を介してクラスター1とクラスター2を接続し、専用回線を介してクロスリージョントラフィックをルーティングして信頼性を確保します。
ApsaraDB RDSを使用したデータ同期には、ミドルウェアの依存関係があります。
利点
ACK One ALBマルチクラスタゲートウェイに基づくジオ災害復旧システムには、いくつかの利点があります。
強化されたマルチクラスタルーティングおよび転送機能: 複雑なシナリオに対応する、洗練されたコンテンツベースのルーティングと、従来のGTMよりも適応性の高いヘルスチェックメカニズムを提供します。
集中型マルチクラスタトラフィック管理エントリ: コントロールプレーン (フリート) を介してIngressの構成とサービスを管理し、サービスとアプリケーションの拡張とメンテナンスを簡素化し、管理オーバーヘッドを削減します。
DNSクライアントのキャッシュの問題を軽減: ディザスタリカバリの状況では、頻繁なサービスやクラスターの中断により、DNSドメイン名解決IPの変更が不要になり、迅速なフェールオーバーが可能になります。
シナリオ
ALBマルチクラスタゲートウェイを介したマルチリージョンディザスタリカバリシステムの迅速な展開は、次のようなシナリオに特に適しています。
GPUリソースの需要が高いAIの現在の急増時に見られるように、リージョン間の高可用性とローカルリソースの不足。
堅牢なマルチクラスタトラフィック管理も要求する厳しい低レイテンシ要件を備えたクライアントアプリケーション。
包括的なディザスタリカバリ機能は、GTMと連携してALBマルチクラスタゲートウェイによって確立されます。ALBマルチクラスターゲートウェイは、マルチクラスタートラフィックのルーティングと転送を均一に管理します。 次のフェールバックシナリオは、GTMがトラフィックをリダイレクトする場合と、マルチクラスタゲートウェイがトラフィックを管理する場合を示しています。
リージョン1内でクラスター障害やサービスの異常が発生した場合、またはリージョン2での地質災害が発生した場合、ALBマルチクラスタゲートウェイはDNS IPを変更することなく、トラフィックを正常なクラスターに自動的に再ルーティングします。
リージョン1で地域の災害またはALBサービスの中断が発生した場合にのみ、ヘルスチェックに基づいてGTMによってリージョン2のALBにトラフィックがリダイレクトされます。
前提条件
フリート管理機能が有効になっています。 詳細については、「マルチクラスター管理の有効化」をご参照ください。
FleetインスタンスのkubeconfigファイルはDistributed Cloud Container Platform for Kubernetes (ACK One) コンソールで取得され、kubectlクライアントはFleetインスタンスに接続されています。
ステップ1: ネットワークとクロスリージョンネットワークの相互接続を計画する
ネットワーク計画。
ACKクラスター1とACKクラスター2が、ノードCIDRとポッドCIDRが重複しない異なるリージョンにあることを確認します。
ACK OneフリートとACKクラスター1を同じリージョンとVPC内に配置します。
リージョン間でVPCをリンクします。 詳細な手順については、「ネットワーク接続」をご参照ください。 Cloud Enterprise Networkを利用する場合は、「クロスリージョン接続」をご参照ください。
クロスリージョンVPCネットワークを確立したら、両方のACKクラスターのセキュリティグループを調整して、ALBマルチクラスタゲートウェイを収容するVPCからのアクセスを許可します。 詳細な手順については、「クラスターセキュリティグループの設定」をご参照ください。
詳細については、「フリート管理ネットワーク計画」をご参照ください。
ACK Oneフリートを2つのクロスリージョンACKクラスターにリンクします。 詳細な手順については、「関連クラスターの管理」をご参照ください。
ステップ2: ALBマルチクラスタゲートウェイに基づくgeoディザスタリカバリの実装
ジオディザスタリカバリの主なステップは次のとおりです。 包括的な手順については、「ゾーンディザスタリカバリシステムの構築」をご参照ください。
GitOpsまたはアプリケーション配布を使用して両方のクラスターにアプリケーションを配布し、一貫性を確保します。
AlbConfigを作成し、2つのACKクラスターをゲートウェイに統合することにより、ACK Oneフリート内にALBマルチクラスターゲートウェイを確立します。
ゾーン災害復旧を容易にするために、提供された例に基づいてACK Oneフリートでルーティング /転送ルール (Ingress) を策定します。 追加のルーティング機能については、[さまざまなシナリオでのトラフィック管理方法] および [Ingressの設定] を参照してください。
apiVersion: networking.k8s.io/v1 kind: Ingress metadata: annotations: alb.ingress.kubernetes.io/listen-ports: | [{"HTTP": 8001}] alb.ingress.kubernetes.io/cluster-weight.${cluster1-id}: "20" alb.ingress.kubernetes.io/cluster-weight.${cluster2-id}: "80" name: web-demo namespace: gateway-demo spec: ingressClassName: alb rules: - host: alb.ingress.alibaba.com http: paths: - path: /svc1 pathType: Prefix backend: service: name: service1 port: number: 80
ステップ3: Ingressリソースを定期的にバックアップする
リージョン1で障害が発生した場合に中断のないサービス運用を確保するには、リージョン1フリートのIngressリソースとAlbConfigを定期的にバックアップします。 障害が発生した場合は、これらのリソースをクラスター2に同期し、ALB 2がトラフィックをクラスター2のバックエンドサービスにルーティングし、通常のサービス機能を維持できるようにします。
リージョン2のデータストレージにOSSを使用するなど、ニーズに合ったバックアップ方法を選択します。
手順4: GTMプライマリおよびバックアップディザスタリカバリの設定
上記の手順を完了すると、2つのジオディザスタリカバリクラスターと一部のディザスタリカバリ機能を管理するためのツールが得られました。 リージョン1で異常または障害が発生した場合、またはリージョン2で災害が発生した場合、ALBマルチクラスタゲートウェイはトラフィックをシームレスに転送します。 さらに、リージョン1の地質災害やALBサービス障害の場合、Alibaba Cloud DNSのGlobal Traffic Manager (GTM) がプライマリおよびバックアップのディザスタリカバリ管理に使用されます。 リージョン1で障害が発生した場合、この手順を次のように設定します。
ALB Ingressを使用して、リージョン2のACKクラスター2にALBインスタンスをプロビジョニングします。 関連する手順については、「create AlbConfig」をご参照ください。
リージョン1のALBマルチクラスタゲートウェイとリージョン2のALBインスタンスのDNSNameをGTMに統合して、プライマリおよびバックアップ構成を確立します。 この設定により、リージョン1に障害が発生した場合、GTMはヘルスチェックに基づいてリージョン2のサービスに自動的に切り替えることができます。 関連する手順については、「GTMのプライマリおよびバックアップディザスタリカバリの実装方法」をご参照ください。
説明このステップでのGTMスイッチは、ローカルDNSクライアントキャッシュの問題により、サービスの中断が長引く可能性があります。