テストドメインの使用

ワイルドカード DNS レコードを使用してクラスタのドメインを構成する方法について説明します。サービスがリクエストを受け入れ、テスト目的でのアクセスを許可するようにドメインを構成する必要があります。

デフォルトでは、Cloud Run for Anthos on Google Cloud クラスタは example.com ベースドメインを使用し、サービスに対するリクエストを許可しません。たとえば、http://{service}.{namespace}.example.com へのリクエストの送信は失敗します。

クラスタ内のサービスがリクエストを受け入れるには、次のいずれかを使用するようにドメインを構成する必要があります。

リクエストの信頼性に関する問題があるため、DNS ワイルドカード レコードはテスト目的でのみ使用してください。ワイルドカード DNS レコードの詳細をご覧ください。

始める前に

Cloud SDK と kubectl がインストールされ、構成されていることを確認します。

ワイルドカード DNS サービスとカスタム ドメインの選択

開発とテストでは、デフォルト ドメインを変更してワイルドカード DNS のテストサイトを使用できます。次に例を示します。

テストに使用するドメインがすでにある場合や、テスト用にドメインを購入したくない場合は、独自のドメインを使用するようにデフォルト ドメインを設定できます。カスタム ドメインを使用すると、テストの信頼性が向上します。

外部 IP アドレスを取得する

続行する前に、Istio Ingress コントローラに作成されたロードバランサ サービスの外部 IP アドレスを取得する必要があります。

Console

Google Cloud Console からロードバランサの外部 IP アドレスを取得するには:

  1. Cloud Console の GKE ページに移動します。
    GKE ページに移動

  2. [Services と ingress] をクリックします。

  3. クラスタの Istio Ingress コントローラのサービスを特定します。Service のタイプ外部ロードバランサです。次の表に、クラスタのバージョンに基づく Service の名前を示します。

    クラスタのバージョン ISTIO-GATEWAY
    1.15.3-gke.19 以降
    1.14.3-gke.12 以降
    1.13.10-gke.8 以降
    istio-ingress
    他のすべてのバージョン istio-ingressgateway
  4. クラスタの Istio Ingress コントローラが見つかったら、そのエンドポイントをコピーします。これは、ポート番号なしの IP アドレスになります。たとえば、00.000.000.000:11 がエンドポイントとして表示される場合がありますが、00.000.000.000 のコピーが必要です。

コマンドライン

Istio Ingress ゲートウェイの外部 IP を取得するには: ```sh kubectl get svc istio-ingress -n gke-system ``` 出力結果は次のようになります。 ```sh NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) istio-ingress LoadBalancer XX.XX.XXX.XX pending 80:32380/TCP,443:32390/TCP,32400:32400/TCP ``` 使用する IP アドレスは、ロードバランサの EXTERNAL-IP です。

ワイルドカード サービスを使用している場合は、クラスタ構成を編集するときに外部 IP アドレスが必要になります。独自のカスタム ドメインを使用している場合、ドメイン登録事業者でレコードを作成または更新するときに外部 IP アドレスが必要になります。

クラスタのドメインの構成

Cloud Run for Anthos は、config-domain ConfigMap を使用して、クラスタにデプロイされたすべてのサービスのベースドメインを定義します。この構成を編集するコマンドは、ワイルドカード DNS サービスを使用しているか、独自のカスタム ドメインを使用するかによって異なります。後でデフォルトのクラスタ ドメインを更新する場合は、異なる値を使用してこれらの手順を繰り返します。

DNS ワイルドカード サービスでのテスト

xip.io では、DNS ワイルドカード サービスを使用するようにドメインを構成していますが、任意のサービスに置き換えることができます。

Console

Cloud Console で、デフォルトのベースドメインを example.com から DNS ワイルドカード サービス(xip.io など)に変更するには:

  1. Google Cloud Console で Cloud Run for Anthos の [ドメイン マッピング] ページに移動します。
    [ドメイン マッピング] ページに移動

  2. [マッピングを追加] > [クラスタのデフォルト ドメインを追加] の順に選択します。

  3. [Apply this domain mapping to all Cloud Run for Anthos services deployed to this cluster] の横にあるチェックボックスをオンにします。

  4. プルダウン メニューからクラスタを選択します。

  5. [ドメイン] フィールドに「[EXTERNAL-IP].xip.io」と入力します。次のように置き換えます。

    • [EXTERNAL-IP] は、ロードバランサの外部 IP アドレスに置き換えます。

    • xip.io は、使用しているワイルドカード DNS サイトに置き換えます。

コマンドライン

デフォルトのベースドメインを example.com から DNS ワイルドカード サイト(xip.io など)に変更するには:

kubectl patch configmap config-domain --namespace knative-serving --patch \
  '{"data": {"example.com": null, "[EXTERNAL-IP].xip.io": ""}}'

次のように置き換えます。

  • [EXTERNAL-IP] は、ロードバランサの外部 IP アドレスに置き換えます。
  • xip.io は、使用しているワイルドカード DNS サイトに置き換えます。

サービスが {service-name}.{namespace}.{[EXTERNAL-IP].xip.io} で使用可能になります。

カスタム ドメインでテストする

独自のカスタム ドメインをテスト用に使用する場合は、次の手順で設定します。

まず、自分のドメインを参照するようにクラスタの ConfigMap を更新します。

Console

  1. Google Cloud Console で Cloud Run for Anthos の [ドメイン マッピング] ページに移動します。
    [ドメイン マッピング] ページに移動

  2. [マッピングを追加] > [クラスタのデフォルト ドメインを追加] の順に選択します。

  3. [Apply this domain mapping to all Cloud Run for Anthos services deployed to this cluster] の横にあるチェックボックスをオンにします。

  4. プルダウン メニューからクラスタを選択します。

  5. [ドメイン] にドメイン名を入力します。例: example.com

コマンドライン

次のコマンドを使用して、カスタム ドメインを指定します。

kubectl patch configmap config-domain --namespace knative-serving --patch \
'{"data": {"example.com": null, "[DOMAIN]": ""}}'

[DOMAIN] は、実際のドメイン(mydomain.com など)に置き換えます。上記のコマンドにより、example.com が ConfigMap から削除され、mydomain.com がデフォルトのベースドメインとして追加されます。これを別のドメインに変更する場合は、同じコマンドを使用できます。

残りの手順は、ドメイン登録事業者のウェブサイトで行う必要があります。

  1. ドメイン登録事業者のアカウントにログインし、DNS 構成ページを開きます。

  2. ドメインの構成ページのホストレコードのセクションに移動し、必要なリソース レコードを追加します。

    1. DNS プロバイダでアカウントに DNS レコードを追加するには:

      • レコードタイプ A を選択します。
      • 次の例のように、ワイルドカード * を指定します。

        DNS ワイルドカード

    2. ドメインのアカウントの DNS 構成ページで変更を保存します。通常、この変更が反映されるまでに数分しかかかりませんが、登録事業者やドメインの以前の DNS レコードに設定されている有効期間(TTL)によっては、数時間かかることもあります。

DNS レコードを更新してクラスタを設定すると、{service-name}.{namespace}.{your-domain} でサービスが使用できるようになります。