Tous les produits
Search
Centre de documentation

Container Service for Kubernetes:Use a custom domain in Knative

Dernière mise à jour :Aug 25, 2026

Le format de nom de domaine par défaut d'un service Knative est {route}.{namespace}.{default-example.com}, où {default-example.com} représente le suffixe de domaine par défaut, généralement example.com. ACK prennent en charge les domaines personnalisés pour une configuration plus flexible des routes.

Vous pouvez personnaliser les domaines de deux manières :

  • Personnalisez globalement le domaine pour tous les services Knative en modifiant la ConfigMap.

  • Utilisez l'annotation knative.aliyun.com/serving-ingress pour configurer rapidement un domaine personnalisé pour un service Knative spécifique.

Prérequis

Configurer un domaine personnalisé global

Pour appliquer un suffixe de domaine commun à tous les services Knative, suivez les étapes ci-dessous.

  1. Exécutez la commande suivante pour modifier l'objet ConfigMap config-domain dans le namespace knative-serving.

    kubectl edit cm config-domain --namespace knative-serving
  2. Modifiez le fichier de configuration.

    Remplacez le nom de domaine par défaut example.com du fichier de configuration par un domaine personnalisé, puis enregistrez la configuration. Dans cet exemple, le domaine personnalisé est défini sur mydomain.

    apiVersion: v1
    kind: ConfigMap
    metadata:
      name: config-domain
      namespace: knative-serving
    data:
      mydomain.com: "" # Replace example.com with mydomain.com. In a real-world scenario, replace this with your own service domain.
  3. Exécutez la commande suivante pour vérifier que le nouveau domaine est appliqué :

    # Replace helloworld-go with the name of your Knative Service.
    kubectl get route helloworld-go --output jsonpath="{.status.url}" | awk -F/ '{print $3}'

    Résultat attendu :

    helloworld-go.default.mydomain.com

    Ce résultat confirme l'application du domaine personnalisé.

  4. Mettez à jour les enregistrements DNS de votre domaine pour qu'ils pointent vers l'adresse IP de la passerelle Knative.

  5. Exécutez la commande suivante pour accéder au service Knative via le domaine personnalisé :

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

    Résultat attendu :

    Hello Knative!

    Ce résultat confirme que le service Knative est accessible via le domaine personnalisé.

Configurer un domaine et un chemin par service

Pour définir un nom de domaine et un chemin spécifiques pour un service Knative, utilisez l'annotation knative.aliyun.com/serving-ingress afin de spécifier directement un nom de domaine et un chemin personnalisés. Par exemple, knative.aliyun.com/serving-ingress: cafe.mydomain.com/coffee spécifie le nom de domaine cafe.mydomain.com et le chemin /coffee.

Exemple de domaine personnalisé

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

Exemple de domaine générique (wildcard)

Séparez plusieurs domaines par une virgule.
apiVersion: serving.knative.dev/v1
kind: Service
metadata:
  name: coffee-mydomain
  annotations:
    knative.aliyun.com/serving-ingress: "*.mydomain.com"
spec:
  template:
    spec:
      containers:
      - image: registry.cn-hangzhou.aliyuncs.com/knative-sample/helloworld-go:160e4dc8

Exemple de chemin unique

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

Exemple de plusieurs chemins

Séparez plusieurs chemins par une virgule.
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

Réécrire un chemin

La passerelle ALB prend en charge la réécriture de chemin. Vous pouvez réécrire le chemin d'un service Knative en configurant l'annotation alb.ingress.kubernetes.io/rewrite-target: . Voici un exemple de code.

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

Configurer un domaine générique universel

Pour définir un domaine générique pour un service Knative, définissez la valeur de l'annotation knative.aliyun.com/serving-ingress sur /. Par exemple, knative.aliyun.com/serving-ingress: / indique un domaine générique complet. Voici un exemple.

Seules les passerelles ALB sont prises en charge.

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

Rubriques connexes