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

Container Service for Kubernetes:Knative でのカスタムドメイン名の使用

最終更新日:Mar 26, 2026

デフォルトでは、ACK Knative は {route}.{namespace}.example.com の形式でドメイン名を割り当てます。独自のドメイン名を使用するには、ユースケースに応じて、ACK Knative が 4 種類の構成方法をサポートしています。

構成方法使用するタイミング実施方法
グローバルドメイン接尾辞クラスター内のすべてのサービスで同一のドメイン接尾辞を使用する場合config-domain ConfigMap の編集
単一サービス向けドメイン名特定のサービスに対して専用のドメイン名を指定する場合コンソールまたは DomainMapping リソース
カスタムパスドメイン上の特定パスへトラフィックをルーティングする場合knative.aliyun.com/serving-ingress アノテーション
ワイルドカードドメイン名すべてのサブドメインにマッチさせる場合(ALB ゲートウェイのみ対応)knative.aliyun.com/serving-ingress: "/"

前提条件

開始する前に、以下の条件を満たしていることを確認してください。

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

config-domain ConfigMap を knative-serving 名前空間内で編集することで、すべての Knative サービスに同一のドメイン接尾辞を一度に適用できます。

  1. ConfigMap を編集モードで開きます。

    kubectl edit cm config-domain --namespace knative-serving
  2. example.com をご自身のドメイン名に置き換え、ファイルを保存して閉じます。

    apiVersion: v1
    kind: ConfigMap
    metadata:
      name: config-domain
      namespace: knative-serving
    data:
      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. カスタムドメイン名を Knative ゲートウェイの IP アドレスにマッピングする DNS レコードを追加します。

  5. カスタムドメイン名を使用して Knative サービスにアクセスします。

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

    期待される出力:

    Hello Knative!

単一サービス向けカスタムドメイン名の設定

特定の Knative サービスに専用のドメイン名をバインドするには、ACK コンソールまたは DomainMapping リソースを使用します。

コンソール

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

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

  3. [Knative] ページで、[サービス] タブをクリックし、対象となるサービス名をクリックします。

  4. サービスの詳細ページで、右上隅の [アクセス制御] をクリックして、カスタムドメイン名を設定します。

kubectl

DomainMapping リソースを使用して、特定のドメイン名を Knative サービスにマッピングします。

  1. helloworld.knative.top.yaml という名前のファイルを作成します。

    vi helloworld.knative.top.yaml
  2. 以下の内容をファイルに追加し、保存して閉じます。

    apiVersion: serving.knative.dev/v1beta1
    kind: DomainMapping
    metadata:
      name: helloworld.knative.top.mydomain.com # 実際のドメイン名に設定してください。
      namespace: default # 対象サービスが存在する名前空間に設定してください。
    spec:
      ref:
        name: helloworld-go # 対象となる Knative サービスの名称。
        kind: Service
        apiVersion: serving.knative.dev/v1
  3. DomainMapping をクラスターに適用します。

    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. カスタムドメイン名を Knative ゲートウェイの IP アドレスにマップする DNS レコードを追加します。

  6. カスタムドメイン名を使用して Knative サービスにアクセスします。

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

    期待される出力:

    Hello Knative!

単一サービス向けカスタムパスの設定

knative.aliyun.com/serving-ingress アノテーションを使用すると、カスタムドメイン上の特定パスへトラフィックをルーティングできます。たとえば、knative.aliyun.com/serving-ingress: cafe.mydomain.com/coffee は、/coffee パスへのトラフィックを cafe.mydomain.com にルーティングします。

複数のパスから同一サービスへトラフィックをルーティングする場合は、カンマでパスを区切ります。

単一パス:

apiVersion: serving.knative.dev/v1
kind: Service
metadata:
  name: coffee-mydomain
  annotations:
    knative.aliyun.com/serving-ingress: cafe.mydomain.com/coffee
spec:
  template:
    spec:
      containers:
      - image: registry.cn-hangzhou.aliyuncs.com/knative-sample/helloworld-go:160e4dc8

複数パス:

apiVersion: serving.knative.dev/v1
kind: Service
metadata:
  name: coffee-mydomain
  annotations:
    knative.aliyun.com/serving-ingress: cafe.mydomain.com/coffee,cafe.mydomain.com/tea
spec:
  template:
    spec:
      containers:
      - image: registry.cn-hangzhou.aliyuncs.com/knative-sample/helloworld-go:160e4dc8

パスの書き換え

Application Load Balancer (ALB) ゲートウェイはパスの書き換えをサポートしています。alb.ingress.kubernetes.io/rewrite-target アノテーションを knative.aliyun.com/serving-ingress と併用することで、トラフィックがサービスに到達する前に受信パスを書き換えることができます。

以下の例では、Ingress 上の /api/coffee からのトラフィックを、サービス上の /coffee へ書き換えます。

apiVersion: serving.knative.dev/v1
kind: Service
metadata:
  name: coffee-mydomain
  annotations:
    knative.aliyun.com/serving-ingress: cafe.mydomain.com/api/coffee
    alb.ingress.kubernetes.io/rewrite-target: /coffee
spec:
  template:
    spec:
      containers:
      - image: registry.cn-hangzhou.aliyuncs.com/knative-sample/helloworld-go:160e4dc8

ワイルドカードドメイン名の設定

カスタムドメイン下のすべてのサブドメインにマッチさせるには、knative.aliyun.com/serving-ingress アノテーションを / に設定します。

ワイルドカードドメイン名は ALB ゲートウェイでのみサポートされます。
apiVersion: serving.knative.dev/v1
kind: Service
metadata:
  name: coffee-mydomain
  annotations:
    knative.aliyun.com/serving-ingress: "/"
spec:
  template:
    spec:
      containers:
      - image: registry.cn-hangzhou.aliyuncs.com/knative-sample/helloworld-go:160e4dc8

次のステップ