在Knative中使用自定義域名
Knative服務的默認域名格式為{route}.{namespace}.{default-example.com}
,其中{default-example.com}
是默認的域名后綴,通常是example.com
。默認域名格式可以根據(jù)需要進行配置和更改。本文介紹如何在Knative服務中使用全局自定義的域名后綴,以及如何為單獨的服務自定義域名。
前提條件
已成功申請一個域名。具體操作,請參見阿里云域名服務。
自定義全局域名
如果您希望所有部署在ACK Knative中的Knative服務都共享同一個域名后綴,無需分別為每個單獨定義域名,請按照如下步驟操作。
執(zhí)行以下命令,編輯位于
knative-serving
命名空間下的名為config-domain
的ConfigMap對象。kubectl edit cm config-domain --namespace knative-serving
修改配置文件。
將配置文件中的默認域名
example.com
改為自定義域名后,保存配置。本示例配置自定義域名為mydomain
。apiVersion: v1 kind: ConfigMap metadata: name: config-domain namespace: knative-serving data: mydomain.com: "" # 將example.com替換為mydomain.com。實際業(yè)務中需替換成您自己的服務域名。
執(zhí)行以下命令,查看域名是否生效。
# 需將命令中的helloworld-go替換成實際業(yè)務中的Knative服務名。 kubectl get route helloworld-go --output jsonpath="{.status.url}" | awk -F/ '{print $3}'
預期輸出:
helloworld-go.default.mydomain.com
預期結(jié)果表明,自定義域名已生效。
將Knative網(wǎng)關IP設置到對應的域名解析。更多信息,請參見添加解析記錄。
執(zhí)行以下命令,通過自定義域名訪問Knative服務。
curl http://helloworld-go.default.mydomain.com
預期輸出:
Hello Knative!
預期結(jié)果表明,自定義域名已配置成功,并且Knative服務已經(jīng)正確地響應了請求。
自定義單個服務的域名
如果您需要為某個Knative服務定義特定的域名,可以按照如下方式配置。
控制臺操作指導
登錄容器服務管理控制臺,在左側(cè)導航欄選擇集群。
在集群列表頁面,單擊目標集群名稱,然后在左側(cè)導航欄,選擇 。
在Knative頁面,單擊服務管理頁簽,找到并單擊目標服務的名稱。
在目標服務詳情頁面,單擊右上角的訪問設置,即可根據(jù)頁面提示為目標服務配置自定義域名。
Kubectl操作指導
如果您需要為某個Service定義特定的域名,同時希望使用Ingress控制器進行靈活的路由配置,可以使用DomainMapping實現(xiàn)。
執(zhí)行以下命令,創(chuàng)建
helloworld.knative.top.yaml
文件。vi helloworld.knative.top.yaml
在vi編輯器中添加以下YAML內(nèi)容,保存后退出編輯器。
apiVersion: serving.knative.dev/v1beta1 kind: DomainMapping metadata: name: helloworld.knative.top.mydomain.com # 設置服務域名。實際業(yè)務中需替換成您自己的服務域名。 namespace: default # 設置命名空間,與服務所在的命名空間一致。 spec: ref: name: helloworld-go # 目標服務名稱 kind: Service apiVersion: serving.knative.dev/v1
執(zhí)行以下命令,將
helloworld.knative.top.yaml
中定義的資源應用到Kubernetes集群中。kubectl apply -f helloworld.knative.top.yaml
預期輸出:
domainmapping.serving.knative.dev/helloworld.knative.top created
執(zhí)行以下命令,驗證DomainMapping。
kubectl get domainmapping helloworld.knative.top
預期輸出:
NAME URL READY REASON helloworld.knative.top http://helloworld.knative.top True
預期結(jié)果表明,自定義域名已生效。
將Knative網(wǎng)關IP設置到對應的域名解析。更多信息,請參見添加解析記錄。
執(zhí)行以下命令,通過自定義域名訪問Knative服務。
curl http://helloworld.knative.top.mydomain.com
預期輸出:
Hello Knative!
預期結(jié)果表明,自定義域名已配置成功,并且Knative服務已經(jīng)正確地響應了請求。
相關文檔
如需為自定義域名配置相應的HTTPS證書,請參見配置HTTPS證書訪問。