デフォルトでは、Knative サービスのドメイン名は '{route}.{namespace}.{default-example.com}' というフォーマットを使用します。ここで、'{default-example.com}' は通常 example.com となるデフォルトのサフィックスです。本トピックでは、より柔軟なルーティングを実現するためにカスタムドメイン名を使用する方法について説明します。ACS Knative では、ConfigMap を使用してすべての Knative サービスにグローバルなカスタムドメインを設定するか、DomainMapping を使用して個別の Knative サービスに固有のドメインをマッピングできます。
前提条件
-
ACS クラスターに Knative をデプロイ済み です。
-
ドメイン名を登録しました。詳細については、「Alibaba Cloud ドメイン」をご参照ください。
-
kubectl を使用して Kubernetes クラスターに接続済み である必要があります。
グローバルカスタムドメインの構成
ACS Knative 内のすべての Knative サービスに同じドメインサフィックスを使用するには、次の手順に従ってください。
単一サービス向けカスタムドメインの構成
Knative サービスに特定のドメイン名を設定するには、以下のいずれかの方法を使用します。
コンソール
-
ACS コンソール にログインします。左側のナビゲーションウィンドウで、クラスターリスト をクリックします。
-
クラスターリスト ページで、対象クラスターの名前をクリックします。左側のナビゲーションウィンドウで、 の順に選択します。
-
[Knative] ページで、[サービス] タブをクリックし、ご利用のサービス名を検索してクリックします。
-
サービスの詳細ページで、右上隅の [アクセス制御] をクリックし、表示される指示に従ってサービスのカスタムドメイン名を構成します。
kubectl
Ingress コントローラーを使用して柔軟なルーティングを実現するために、DomainMapping を使用してサービスに特定のドメインを割り当てます。
-
次のコマンドを実行して、
helloworld.knative.top.yamlという名前のファイルを作成します。vi helloworld.knative.top.yaml -
ファイルに次の YAML コンテンツを追加し、エディターを保存して閉じます。
apiVersion: serving.knative.dev/v1beta1 kind: DomainMapping metadata: name: helloworld.knative.top.mydomain.com # ドメイン名を設定します。本番環境では、これをご利用のドメイン名に置き換えてください。 namespace: default # 名前空間を設定します。これはご利用のサービスと同じ名前空間である必要があります。 spec: ref: name: helloworld-go # 対象サービスの名前。 kind: Service apiVersion: serving.knative.dev/v1 -
次のコマンドを実行して、
helloworld.knative.top.yamlファイルを適用します。kubectl apply -f helloworld.knative.top.yaml期待される出力:
domainmapping.serving.knative.dev/helloworld.knative.top created -
次のコマンドを実行して、DomainMapping を確認します。
kubectl get domainmapping helloworld.knative.top期待される出力:
NAME URL READY REASON helloworld.knative.top http://helloworld.knative.top Trueこの出力により、カスタムドメインが有効になったことが確認できます。
-
ご利用のカスタムドメインを Knative ゲートウェイの IP アドレスにマッピングする DNS レコードを追加します。詳細については、「DNS レコードの追加」をご参照ください。
-
次のコマンドを実行して、カスタムドメイン名を使用して Knative サービスにアクセスします。
curl http://helloworld.knative.top.mydomain.comこの出力により、カスタムドメインが正しく構成され、Knative サービスがリクエストに応答していることが確認できます。
次のステップ
-
HTTPS 経由でトラフィックを提供するには、ご利用のカスタムドメイン名に対して TLS 証明書を構成してください。詳細については、「HTTPS 経由で Knative サービスにアクセスするための証明書の構成」をご参照ください。
-
Knative に gRPC サービスをデプロイしてネットワーク効率を向上させることができます。詳細については、「Knative への gRPC サービスのデプロイ」をご参照ください。