イングレスゲートウェイは、レイヤー 7 でのインバウンドトラフィックをルーティングするための統一された入り口を提供します。 同じ TCP ベースのポートからの HTTP リクエストを、リクエストの内容に基づいて異なる Kubernetes サービスにルーティングします。 このトピックでは、Service Mesh(ASM)インスタンスで複数のイングレスゲートウェイに対して Istio ゲートウェイを設定する方法について説明します。
前提条件
v1.13.4.46 以降の ASM インスタンスが作成されていること。 詳細については、「ASM インスタンスを作成する」をご参照ください。
クラスターが ASM インスタンスに追加されていること。 詳細については、「ASM インスタンスにクラスターを追加する」をご参照ください。
少なくとも 2 つのイングレスゲートウェイがデプロイされていること。 詳細については、「イングレスゲートウェイを作成する」をご参照ください。
ASM インスタンスに追加されたクラスターにアプリケーションがデプロイされていること。 詳細については、「ASM インスタンスに追加された ACK クラスターにアプリケーションをデプロイする」をご参照ください。
背景情報
この例では、xxx.xxx.cn
ドメイン名に対して 2 つの A レコードが設定されています。 2 つの A レコードは、2 つのクラシックロードバランサー(CLB)インスタンスにマッピングされます。 2 つの CLB インスタンスは、それぞれ ASM インスタンス内の 2 つのイングレスゲートウェイに関連付けられています。 2 つのイングレスゲートウェイには、同じ Istio ゲートウェイが必要です。 2 つのイングレスゲートウェイが同じ Istio ゲートウェイを共有するようにするには、Istio ゲートウェイを両方のイングレスゲートウェイに 1 つずつ関連付ける必要があります。 ASM では、いくつかの簡単な手順で、複数のイングレスゲートウェイに対して Istio ゲートウェイを設定できます。 これにより、Istio ゲートウェイの設定が簡素化されます。 イングレスゲートウェイと Istio ゲートウェイのフィールドの詳細については、「ASM ゲートウェイの CRD フィールド」および「Gateway」をご参照ください。
手順
Istio ゲートウェイを複数のイングレスゲートウェイにマッピングできます。 Gateway リソースの spec.selector
フィールドは、Istio ゲートウェイを関連付けるイングレスゲートウェイを選択するために使用されます。 セレクターに一致するラベルを持つイングレスゲートウェイが選択されます。 この例では、ラベル key1: value1
がセレクターとして指定されています。
ASM コンソール にログインします。 左側のナビゲーションペインで、 を選択します。
[メッシュ管理] ページで、ASM インスタンスの名前をクリックします。 左側のナビゲーションペインで、 を選択します。
[イングレスゲートウェイ] ページで、Istio ゲートウェイを関連付けるイングレスゲートウェイをそれぞれ見つけ、[YAML] をクリックします。
[編集] ダイアログボックスで、
podLabels
フィールドを設定し、[OK] をクリックします。... spec: podLabels: key1: value1 ...
Istio ゲートウェイをイングレスゲートウェイに関連付けます。
ASM インスタンスの詳細ページで、左側のナビゲーションペインの を選択します。
[ゲートウェイ] ページで、イングレスゲートウェイに関連付ける Istio ゲートウェイを見つけ、YAML[アクション] 列の をクリックします。
[編集] ダイアログボックスで、
selector
フィールドを設定し、[OK] をクリックします。apiVersion: networking.istio.io/v1beta1 kind: Gateway metadata: name: bookinfo-gateway namespace: default spec: selector: key1: value1 servers: - hosts: - '*' port: name: http number: 80 protocol: HTTP
次のステップ
Istio ゲートウェイは、プロキシがポートをリッスンするように設定するためにのみ使用されます。 トラフィック転送ルールを指定するには、仮想サービスも設定する必要があります。 仮想サービスのフィールドの詳細については、「Virtual Service」をご参照ください。 仮想サービスの作成方法の詳細については、「仮想サービスを管理する」をご参照ください。