Container Service for Kubernetes (ACK) エッジクラスターでコンテナ化アプリケーションを実行する場合、トラフィックルーティングとクラスター間の可観測性を一元的に管理する必要があります。Service Mesh (ASM) は、Istio ベースのトラフィック管理をエッジ環境に拡張し、カナリアリリース、トラフィック分割、エンドツーエンドの可視性を提供します。
前提条件
開始する前に、以下を確認してください:
ACK エッジクラスター。詳細については、「コンソールでの ACK エッジクラスターの作成」をご参照ください。
有効化された ASM サービス。ASM を有効化するには、ASM コンソールに移動します。
ASM インスタンスに ACK エッジクラスターを追加する権限を申請するためのチケットが提出済みであること。
設定ワークフロー
エンドツーエンドの設定には、次のステップが含まれます:
ASM インスタンスの作成
ACK エッジクラスターの ASM インスタンスへの追加
イングレスゲートウェイの作成
サイドカープロキシ注入によるアプリケーションのデプロイ
(オプション) トラフィックルーティングのための Istio リソースの定義
ステップ 1:ASM インスタンスの作成
ASM コンソールにログインします。左側のナビゲーションウィンドウで、Service Mesh > メッシュ管理 を選択します。
メッシュ管理 ページで、ASM インスタンスの作成 をクリックします。
Service Mesh の作成 ページで、次の表で説明するパラメーターを設定し、サービス規約 を読んで同意し、Service Mesh の作成 をクリックします。パラメーターの完全なリストについては、「ASM インスタンスの作成」をご参照ください。
パラメーター 説明 リージョン ACK エッジクラスターが存在するリージョンに近いリージョンを選択します。 Istio バージョン 1.14 以降を選択します。 VPC ACK エッジクラスターが存在する VPC を選択します。クラシックロードバランサー (CLB) インスタンスは、コントロールプレーン上の Istio Pilot に関連付けられます。データプレーンの VPC は、CLB インスタンスをホストする VPC に接続されている必要があります。詳細については、「Cloud Enterprise Network」をご参照ください。 vSwitch vSwitch を選択します。作成するには、vSwitch の作成 をクリックします。詳細については、「vSwitch の作成と管理」をご参照ください。 API サーバーアクセス API サーバーの CLB インスタンス仕様を選択します。ASM インスタンスは Kubernetes 上で実行され、API サーバーは仮想サービス、宛先ルール、Istio ゲートウェイなどのメッシュリソースを定義します。選択した仕様で内部向け CLB インスタンスが作成されます。EIP を使用して API サーバーを公開 を選択またはクリアします: - 選択済み:EIP が作成され、内部向け CLB インスタンスに関連付けられます。ポート 6443 は、kubeconfig ファイルを介したインターネットアクセス用に公開されます。 - クリア:EIP は作成されません。アクセスは、クラスターが存在する VPC に制限されます。
ASM インスタンスの作成には 2〜3 分かかります。
ステップ 2:ACK エッジクラスターの ASM インスタンスへの追加
メッシュ管理 ページで、対象の ASM インスタンスを見つけます。インスタンス名をクリックするか、操作 列の 管理 をクリックします。
左側のナビゲーションウィンドウで、クラスターとワークロード管理 > Kubernetes クラスター を選択します。表示されたページで、追加 をクリックします。
Kubernetes クラスターの追加 ページで、ASM インスタンスと同じ VPC 内の Kubernetes クラスターをフィルター を選択し、ACK エッジクラスターを選択してから OK をクリックします。
クラスターを追加すると、ASM インスタンスのステータスが 更新中 に変わります。数秒待ってから、右上隅のリフレッシュアイコンをクリックしてください。クラスターが正常に追加されると、ステータスは 実行中 に変わります。待機時間は、ACK エッジクラスターのネットワーク状態によって異なります。Kubernetes クラスター ページで追加されたクラスターを表示します。
ステップ 3:イングレスゲートウェイの作成
イングレスゲートウェイは、エッジクラスターで実行されているアプリケーションへのインターネットまたは内部ネットワークトラフィックの単一のエントリポイントとして機能します。
ASM インスタンスの詳細ページで、左側のナビゲーションウィンドウから ASM ゲートウェイ > イングレスゲートウェイ を選択します。
イングレスゲートウェイ ページで 作成 をクリックし、次の表で説明するパラメーターを設定してから、作成 をクリックします。パラメーターの完全なリストについては、「イングレスゲートウェイの作成」をご参照ください。
パラメーター 説明 クラスター イングレスゲートウェイをデプロイする ACK エッジクラスターを選択します。 CLB インスタンスタイプ インターネットアクセス または プライベートアクセス を選択します。次に、CLB インスタンスの作成 または 既存の CLB インスタンスを使用 を選択します。 ポートマッピング 公開するポートを指定します。ポートの値は、サービス YAML ファイルの portフィールドに対応します。各マッピングでtargetPortフィールドをportフィールドと同じ値に設定することを推奨します。ASM は、Istio で一般的に使用される 2 つのデフォルトポートを提供します。必要に応じて、デフォルトを保持または削除し、新しいポートを追加してください。イングレスゲートウェイが作成されたら、ACK エッジクラスターにログインしてデプロイメントを確認します。
ステップ 4:アプリケーションのデプロイ
自動サイドカープロキシ注入を有効にします。詳細については、「グローバル名前空間の管理」および「サイドカープロキシ注入ポリシーの設定」をご参照ください。
kubectl または ACK コンソールを使用して、ACK エッジクラスターにアプリケーションをデプロイします。詳細については、「ASM インスタンスに追加された ACK クラスターへのアプリケーションのデプロイ」をご参照ください。
ステップ 5 (オプション):Istio リソースの定義
アプリケーションがデプロイされた後、Istio リソースを定義して、サービスバージョン間のトラフィックルーティングを制御します。詳細については、「Istio リソースを使用した異なるサービスバージョンへのトラフィックルーティング」をご参照ください。
次のステップ
トラフィックルーティング:カナリアリリースや A/B テストのために、比率に基づいて異なるサービスバージョンにトラフィックをルーティングします。詳細については、「Istio リソースを使用した異なるサービスバージョンへのトラフィックルーティング」をご参照ください。
イングレスゲートウェイ:アプリケーションへのインターネットまたは内部ネットワークアクセスのエントリポイントとして ASM イングレスゲートウェイをデプロイします。詳細については、「イングレスゲートウェイの作成」をご参照ください。
メッシュトポロジー:アプリケーション、サービス、サービスバージョン間の呼び出し関係とトラフィックフローを表示します。詳細については、「メッシュトポロジーを有効にして可観測性を向上させる」をご参照ください。