すべてのプロダクト
Search
ドキュメントセンター

Container Compute Service:Knative サービスのカスタムドメイン名を指定する

最終更新日:Dec 28, 2024

Knative サービスのデフォルトのドメイン名は、{route}.{namespace}.{default-example.com} 形式です。 {default-example.com} はデフォルトのサフィックスです。ほとんどの場合、サフィックスは example.com です。このトピックでは、トラフィックを柔軟にルーティングするためにカスタムドメイン名を構成する方法について説明します。 ACS Knative の ConfigMap を変更して、すべての Knative サービスに影響するグローバルドメイン名を変更できます。また、DomainMapping を追加して、単一の Knative サービスのカスタムドメイン名を指定することもできます。

前提条件

グローバルドメイン名を変更する

ACS Knative にデプロイされたすべての Knative サービスで同じドメイン名サフィックスを共有する場合は、次の手順を実行します。

  1. 次のコマンドを実行して、knative-serving 名前空間の config-domain ConfigMap を変更します。

    kubectl edit cm config-domain --namespace knative-serving
  2. ConfigMap を変更します。

    ConfigMap のデフォルトのドメイン名 example.com をカスタムドメイン名に変更し、ConfigMap を保存します。この例では、カスタムドメイン名 mydomain を使用します。

    apiVersion: v1
    kind: ConfigMap
    metadata:
      name: config-domain
      namespace: knative-serving
    data:
      mydomain.com: "" # example.com を mydomain.com に変更します。デフォルトのドメイン名を、実際に使用するドメイン名に置き換えます。
  3. 次のコマンドを実行して、ドメイン名を確認します。

    # コマンドの helloworld-go を Knative サービスの名前に置き換えます。
    kubectl get route helloworld-go --output jsonpath="{.status.url}" | awk -F/ '{print $3}'

    期待される出力:

    helloworld-go.default.mydomain.com

    この出力は、カスタムドメイン名が有効になっていることを示しています。

  4. Alibaba Cloud DNS コンソールのカスタムドメイン名の解決設定に、Knative ゲートウェイの IP アドレスを追加します。

  5. 次のコマンドを実行して、カスタムドメイン名を使用して Knative サービスにアクセスします。

    curl http://helloworld-go.default.mydomain.com

    期待される出力:

    Hello Knative!

    この出力は、Knative サービスがリクエストに正常に応答したことを示しています。

単一の Knative サービスのドメイン名を指定する

単一の Knative サービスのドメイン名を指定するには、次の手順を実行します。

コンソールを使用する

  1. ACS コンソールにログインします。左側のナビゲーションペインで、クラスタをクリックします。

  2. クラスタページで、管理するクラスタを見つけて、その ID をクリックします。クラスタ詳細ページの左側のナビゲーションペインで、アプリケーション > Knative を選択します。

  3. Knative ページで、サービスタブをクリックし、構成するサービスの名前を見つけてクリックします。

  4. 詳細ページの右上隅にあるアクセス制御をクリックし、プロンプトに従ってパラメータを設定します。

kubectl

単一の Knative サービスのドメイン名を指定し、Ingress コントローラを使用して Ingress を管理する場合は、DomainMapping を追加します。

  1. 次のコマンドを実行して、helloworld.knative.top.yaml という名前のファイルを作成します。

    vi helloworld.knative.top.yaml
  2. vi エディタを開き、次の YAML コンテンツを追加して保存し、終了します。

    apiVersion: serving.knative.dev/v1beta1
    kind: DomainMapping
    metadata:
      name: helloworld.knative.top.mydomain.com # Knative サービスのドメイン名。使用するドメイン名に置き換えます。
      namespace: default # Knative サービスが属する名前空間。
    spec:
      ref:
        name: helloworld-go # Knative サービスの名前。
        kind: Service
        apiVersion: serving.knative.dev/v1
  3. 次のコマンドを実行して、helloworld.knative.top.yaml ファイルで定義されているリソースをクラスタにデプロイします。

    kubectl apply -f helloworld.knative.top.yaml

    期待される出力:

    domainmapping.serving.knative.dev/helloworld.knative.top created
  4. 次のコマンドを実行して、DomainMapping を確認します。

    kubectl get domainmapping helloworld.knative.top

    期待される出力:

    NAME                          URL                                      READY   REASON
    helloworld.knative.top       http://helloworld.knative.top            True

    この出力は、カスタムドメイン名が有効になっていることを示しています。

  5. Alibaba Cloud DNS コンソールのカスタムドメイン名の解決設定に Knative ゲートウェイの IP アドレスを追加します。

  6. 次のコマンドを実行して、カスタムドメイン名を使用して Knative サービスにアクセスします。

    curl http://helloworld.knative.top.mydomain.com

    期待される出力:

    Hello Knative!

    この出力は、Knative サービスがリクエストに正常に応答したことを示しています。

参考資料