全部產品
Search
文件中心

Container Service for Kubernetes:為Knative添加自訂路由

更新時間:Apr 09, 2025

本文介紹如何添加自訂的網域名稱和路徑,並通過自訂網域名和路徑訪問Knative Service。

配置自訂網域名

Knative的配置中有一個預設的主網域名稱,每一個Knative Service都基於主網域名稱、命名空間和Service名稱產生一個唯一網域名稱。網域名稱建置規則為{ksvc-name}.{namespace}.{knative-default-domain}。Knative預設的主網域名稱是example.com,例如,一個名為Coffee的Knative Service部署在Default命名空間中,預設的唯一網域名稱是coffee.default.example.com。您可以修改預設的example.com網域名稱,詳細介紹請參見使用自訂網域名

如果Knative Service需要配置多個不同的網域名稱,您可以通過knative.aliyun.com/serving-ingress Annotation直接指定自訂的網域名稱和路徑。例如,knative.aliyun.com/serving-ingress: cafe.mydomain.com/coffee表示指定cafe.mydomain.com網域名稱和/coffee路徑。

說明

配置一個自訂網域名和路徑並不會替換預設的網域名稱,而是在預設網域名稱的基礎之上增加一個新的網域名稱。

操作步驟

  1. 建立並拷貝以下內容到ingress-domain.yaml

    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
  2. 建立Knative Service。

    kubectl apply -f ingress-domain.yaml
  3. 查看Knative Service資訊。

    可以看到coffee-mydomain.default.example.com是當前Knative Service的預設網域名稱。

    kubectl get ksvc

    預期輸出:

    NAME              URL                                          LATESTCREATED           LATESTREADY             READY   REASON
    coffee-mydomain   http://coffee-mydomain.default.example.com   coffee-mydomain-sbwhz   coffee-mydomain-sbwhz   True
  4. 通過預設網域名稱訪問Knative Service。

    curl -H "Host: coffee-mydomain.default.example.com" http://alb-ijvf32ubve64wz****.cn-shanghai.alb.aliyuncs.com

    預期輸出:

    Hello World!
  5. 通過自訂網域名和路徑訪問Knative Service。

    curl -H "Host: cafe.mydomain.com" http://alb-ijvf32ubve64wz****.cn-shanghai.alb.aliyuncs.com/coffee

    預期輸出:

    Hello World!