Service Mesh (ASM) を使用すると、同じ仮想プライベートクラウド (VPC) 内の複数の Kubernetes クラスターにアプリケーションサービスをデプロイし、これらのクラスターのインバウンドトラフィックのプロキシとしてサーバーレスイングレスゲートウェイを設定できます。 これにより、全体的なサービスの可用性が向上し、コンピューティングリソースのコストが削減されます。
前提条件
この例では、m1c1 と m1c2 の 2 つの Container Service for Kubernetes (ACK) クラスターが同じ VPC に作成されています。 詳細については、「ACK 専用クラスターを作成する」または「ACK マネージドクラスターを作成する」をご参照ください。
説明クラスターを作成するときは、クラスターに高度なセキュリティグループを設定することをお勧めします。
v1.18.0.139 以降の ASM インスタンスが作成されています。 この例では、ASM インスタンス mesh1 が使用されています。 ASM インスタンスの作成方法の詳細については、「ASM インスタンスを作成する」をご参照ください。
手順 1:2 つのクラスターが相互に通信できることを確認する
デフォルトでは、同じ VPC 内の 2 つのクラスターは、高度なセキュリティグループに関連付けられている場合、相互に通信できます。 1 つのクラスターが基本セキュリティグループに関連付けられている場合、または 2 つのセキュリティグループが相互に通信できない場合は、クラスターのセキュリティグループルールを設定する必要があります。 詳細については、「セキュリティグループルールを管理する」をご参照ください。
手順 2:ASM インスタンスにクラスターを追加し、サーバーレスイングレスゲートウェイを作成する
2 つのクラスターを ASM インスタンスに追加した後、サーバーレスイングレスゲートウェイを作成します。
2 つのクラスターを ASM インスタンスに追加します。 詳細については、「ASM インスタンスにクラスターを追加する」をご参照ください。
次の YAML ファイルを使用して、サーバーレスイングレスゲートウェイを作成します。 詳細については、「イングレスゲートウェイを作成する」をご参照ください。
手順 3:Bookinfo アプリケーションをデプロイする
ASM を使用すると、クラスター全体にアプリケーションをデプロイできます。 Bookinfo アプリケーションのマイクロサービスを 2 つのクラスターにデプロイできます。
次の内容を使用して、m1c2 クラスターの bookinfo-m1c2.yaml ファイルで設定されたリソースを作成します。
説明reviews マイクロサービスの v3 バージョンは、評価を赤い星で表示します。
次のコマンドを実行して、reviews マイクロサービスの v3 バージョンを含まない Bookinfo アプリケーションを m1c2 クラスターにデプロイします。
kubectl apply -f bookinfo-m1c2.yaml次の内容を使用して、m1c1 クラスターの bookinfo-m1c1.yaml ファイルで設定されたリソースを作成します。
次のコマンドを実行して、reviews マイクロサービスの v3 バージョンと ratings マイクロサービスを m1c1 クラスターにデプロイします。
kubectl apply -f bookinfo-m1c1.yaml
手順 4:仮想サービスと Istio ゲートウェイを追加する
ASM インスタンスのデフォルト名前空間に bookinfo という名前の仮想サービスを作成します。 詳細については、「仮想サービスを管理する」をご参照ください。
ASM インスタンスのデフォルト名前空間に bookinfo-gateway という名前の Istio ゲートウェイを作成します。 詳細については、「Istio ゲートウェイを管理する」をご参照ください。
ブラウザーのアドレスバーに
http://{サーバーレスイングレスゲートウェイの IP アドレス}/productpageと入力し、ページを複数回更新します。reviews マイクロサービスの 3 つのバージョンにルーティングされるリクエストの比率が 1:1:1 に近いことがわかります。 reviews マイクロサービスの v3 バージョンは、他のマイクロサービスと同じクラスターにデプロイされていなくても、正常に有効になります。
(オプション) 手順 5:リクエストが常に reviews マイクロサービスの v3 バージョンにルーティングされるように指定する
デスティネーションルールと仮想サービスを定義して、Bookinfo アプリケーションのマイクロサービスをデプロイするためのポリシーを設定できます。 次の例では、リクエストが常に reviews マイクロサービスの v3 バージョンにルーティングされるように指定します。
ASM インスタンスのデフォルト名前空間に reviews という名前のデスティネーションルールを作成します。 詳細については、「仮想サービスを管理する」をご参照ください。
ASM インスタンスのデフォルト名前空間に reviews という名前の仮想サービスを作成します。 詳細については、「仮想サービスを管理する」をご参照ください。
ブラウザーのアドレスバーに
http://{サーバーレスイングレスゲートウェイの IP アドレス}/productpageと入力し、ページを複数回更新します。リクエストが常に reviews マイクロサービスの v3 バージョンにルーティングされることがわかります。 この場合、評価は赤い星で表示されます。
