本文介绍了如何在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的应用为例,请参见部署Serving Hello World应用
  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. 在Kubernetes菜单下,单击左侧导航栏中的Knative > 服务管理
  3. 服务管理页面,选择目标集群及命名空间,可以看到目标应用对应的访问网关
  4. 将Knative网关IP设置到对应的域名解析,参见添加解析记录

执行结果

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