高パフォーマンスと高可用性を備えたサービスメッシュ(ASM)ゲートウェイは、ビジネスの継続性を確保し、ユーザーエクスペリエンスを向上させます。このトピックでは、サービスリクエストの高パフォーマンスと高可用性を確保する ASM ゲートウェイを構成する方法について説明します。
背景情報
ASM ゲートウェイは、Istio の主要コンポーネントであり、ASM インスタンスのイングレス トラフィックとエグレス トラフィックを管理するために使用されます。
ASM ゲートウェイを作成すると、コンテナサービス Kubernetes 版(ACK)クラスターの istio-system 名前空間に istio-ingressgateway デプロイメントが作成されます。 istio-ingressgateway デプロイメントは、クラシックロードバランサー(CLB)インスタンスに関連付けられています。ゲートウェイのポッドは、CLB インスタンスのバックエンドサーバーとして機能します。
上の図は、サービスリクエストのトラフィックパスを示しています。パスの各部分は、サービスリクエストの応答時間と ASM ゲートウェイの可用性に影響します。次のセクションでは、サービスリクエストの高パフォーマンスと高可用性を確保するために CLB インスタンスと ASM ゲートウェイを構成する方法について説明します。
高パフォーマンス
ビジネス クラスターを複数のリージョンにデプロイして、クライアントが近くのクラスターにアクセスできるようにします
ASM は、複数のリージョンの ACK クラスターを管理して、クライアントに近くのアクセスを提供できます。さらに、ASM はリージョン間の負荷分散をサポートしています。詳細については、「ASM を使用してリージョン間のディザスタリカバリと負荷分散を実装する」をご参照ください。
ASM はインテリジェント ドメイン ネーム システム(DNS)解決を統合して、ドメイン名をクライアントに最も近い CLB インスタンスの IP アドレスに解決します。
CLB インスタンスを使用して ASM ゲートウェイにアクセスする
Terway Container Network Interface(CNI)プラグインを使用する ACK クラスターでは、CLB インスタンスはトラフィックを ASM ゲートウェイのポッドに直接転送できます。 Flannel CNI プラグインを使用する ACK クラスターでは、CLB インスタンスは最初にトラフィックを NodePort サービスに転送する必要があります。次に、NodePort サービスはトラフィックを ASM ゲートウェイのポッドにルーティングします。サービス パフォーマンスを向上させるために、Terway CNI プラグインを使用することをお勧めします。 Terway プラグインと Flannel プラグインの比較の詳細については、「Terway と Flannel」をご参照ください。
単一の CLB インスタンスでは ASM ゲートウェイのトラフィックを処理するのに不十分な場合は、複数の CLB インスタンスを ASM ゲートウェイに関連付けることができます。これにより、複数の CLB インスタンスを使用して ASM ゲートウェイにアクセスできます。詳細については、「複数の CLB インスタンスを使用して ASM ゲートウェイにアクセスする」をご参照ください。
TLS アクセラレーションを使用する
商用版の ASM インスタンスで作成された ASM ゲートウェイは、Intel Multi-Buffer に基づく Transport Layer Security(TLS)アクセラレーションをサポートしています。テスト結果に基づくと、これにより 1 秒あたりのクエリ数(QPS)が 80% 向上します。詳細については、「TLS アクセラレーションのために Multi-Buffer を有効にする」をご参照ください。
高可用性
マルチリージョン デプロイメントとアクティブ ジオレプリケーションに基づいて地理的ディザスタリカバリを実装する
詳細については、「ASM を使用してリージョン間のディザスタリカバリと負荷分散を実装する」をご参照ください。
複数の CLB インスタンスを使用して高可用性を確保する
ASM では、複数の CLB インスタンスを単一の ASM ゲートウェイに関連付けることができます。 1 つの CLB インスタンスに障害が発生した場合、別の CLB インスタンスを使用できます。詳細については、「複数の CLB インスタンスを使用して ASM ゲートウェイにアクセスする」をご参照ください。
ASM ゲートウェイのノードベースの高可用性を実装する
ASM ゲートウェイのポッドを異なるノードまたは異なるゾーンにデプロイして、ASM ゲートウェイの高可用性を確保できます。詳細については、「ASM インスタンスのイングレス ゲートウェイ サービスの可用性を向上させる」をご参照ください。
サービスのグレースフル シャットダウンを有効にする
サービスが停止する前に実行されるスクリプトを構成できます。これにより、サービスのポッドをグレースフルにシャットダウンし、リクエストの失敗や損失を防ぐことができます。詳細については、「ソリューション 2:サイドカー プロキシのライフサイクルを構成する」をご参照ください。
ASM インスタンスの CLB インスタンスのグレースフル シャットダウンを有効にする
ASM ゲートウェイの CLB インスタンスのグレースフル シャットダウンを有効にすることができます。 ASM ゲートウェイがスケールインまたはスケールアウトされると、既存の接続を特定の期間保持できます。これにより、トラフィックの損失を防ぎます。詳細については、「グレースフル シャットダウンを有効にしてトラフィックの損失を防ぐ」をご参照ください。