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

Container Service for Kubernetes:Knative Serviceのカスタムドメイン名の指定

最終更新日:Nov 15, 2024

Knative Serviceのデフォルトのドメイン名は {route}.{namespace}.{default-example.com} 形式で、{default-example.com} はデフォルトのサフィックスです。 柔軟なルーティング設定を実現するには、このトピックを参照してカスタムドメイン名を設定します。 ACK Knative は、すべてのKnativeサービスに適用可能なConfigMapを介してグローバルカスタムドメイン名を変更する機能を提供します。 DomainMappingを使用して、ACK Knative の個々のKnativeサービスのカスタムドメイン名を指定することもできます。

前提条件

カスタムグローバルドメイン名の指定

各Knative Serviceのドメイン名を指定しない場合は、グローバルドメイン名を指定できます。 次の設定を完了すると、ACK 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: "" # Change example.com to mydomain.com. Replace the default domain name with the actual domain name that you want to use.
  3. 次のコマンドを実行してドメイン名を確認します。

    # Replace helloworld-go in the command with the name of your Knative Service. 
    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 Serviceのカスタムドメイン名を指定するには、以下の手順に従います。

ACKコンソールの使用

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

  2. [クラスター] ページで、管理するクラスターの名前をクリックします。 左側のナビゲーションウィンドウで、[アプリケーション] > [ネイティブ] を選択します。

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

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

kubectlの使用

Ingressコントローラーを使用して異なるKnativeサービスのルーティング構成をカスタマイズする場合は、DomainMappingsを使用して各Knativeサービスのドメイン名を指定できます。

  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 # The domain name of the Knative Service. Replace it with the domain name that you want to use. 
      namespace: default # The namespace to which the Knative Service belongs. 
    spec:
      ref:
        name: helloworld-go # The name of the Knative Service.
        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サービスがリクエストに正常に応答したことを示します。

関連ドキュメント