本文介紹如何添加自訂的網域名稱和路徑,並通過自訂網域名和路徑訪問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路徑。
配置一個自訂網域名和路徑並不會替換預設的網域名稱,而是在預設網域名稱的基礎之上增加一個新的網域名稱。
操作步驟
建立並拷貝以下內容到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建立Knative Service。
kubectl apply -f ingress-domain.yaml查看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通過預設網域名稱訪問Knative Service。
curl -H "Host: coffee-mydomain.default.example.com" http://alb-ijvf32ubve64wz****.cn-shanghai.alb.aliyuncs.com預期輸出:
Hello World!通過自訂網域名和路徑訪問Knative Service。
curl -H "Host: cafe.mydomain.com" http://alb-ijvf32ubve64wz****.cn-shanghai.alb.aliyuncs.com/coffee預期輸出:
Hello World!