本文介绍了如何在Knative Serving中使用自定义域名。

前提条件

背景信息

在Knative Serving Route路由中使用example.com作为默认域名,Route完全定义的域名格式默认为:{route}.{namespace}.{default-domain}

通过Kubectl修改域名

下面以在命名空间knative-serving中将域名修改为自定义域名为例进行介绍。

  1. 通过kubectl连接Kubernetes集群
  2. 执行如下命令,编辑域名config-map配置文件config-domain
    kubectl edit cm config-domain --namespace knative-serving
  3. 修改配置文件。
    将配置文件中的example.com改为自定义域名后,保存配置。本例中的自定义域名为:mydomain.com。
    apiVersion: v1
    data:
      mydomain.com: ""
    kind: ConfigMap
    [...]

部署应用

如果您已经部署了应用,Knative会根据域名配置configmap,自动更新所有的Service和Route。

  1. 部署一个应用。以部署一个命名为helloworld-go的应用为例,请参见快速部署Serverless应用
  2. 执行以下操作,查看部署结果。
    • 在Knative 0.7版本下,执行以下命令,查看域名。
      kubectl get route ${SVC_NAME} --output jsonpath="{.status.url}"| awk -F/ '{print $3}'`
    • 在Knative 0.6版本下,执行以下命令,查看域名。
      kubectl get route helloworld-go --output jsonpath="{.status.domain}"
    当返回结果如下时,表示自定义域名已生效。
    helloworld-go.default.mydomain.com

发布域名

  1. 登录容器服务管理控制台
  2. 在控制台左侧导航栏中,单击集群
  3. 集群列表页面中,单击目标集群名称或者目标集群右侧操作列下的详情
  4. 在集群管理页左侧导航栏中,选择应用 > Knative
  5. 单击服务管理页签,然后单击目标服务名称。
    您可以在Knative服务详情页的基本信息区域,查看访问网关和域名。
  6. 将Knative网关IP设置到对应的域名解析。更多信息,请参见添加解析记录

执行结果

执行以下命令,查看执行结果。
curl http://helloworld-go.default.mydomain.com