Knative服务的默认域名格式为{route}.{namespace}.{default-example.com}
,其中{default-example.com}
是默认的域名后缀,通常是example.com
。默认域名格式可以根据需要进行配置和更改。本文介绍如何在Knative服务中使用全局自定义的域名后缀,以及如何为单独的服务自定义域名。
前提条件
已成功申请一个域名。具体操作,请参见阿里云域名服务。
步骤一:创建Knative服务
登录容器服务管理控制台,在左侧导航栏选择集群。
在集群列表页面,单击目标集群名称,然后在左侧导航栏,选择 。
在Knative页面的服务管理页签下,选择命名空间为default,然后单击使用模板创建,选择使用容器控制台的示例模板创建Knative服务,最后单击创建。
本文以创建一个名为helloworld-go的服务为例。
步骤二:自定义域名
修改全局域名:适用于不需要为每个Service单独定义域名的情况。域名修改后,在没有特定配置的情况下,所有的Service都可以使用修改后的全局域名。
使用DomainMapping自定义单个Service的域名:适用于需要为每个Service定义特定域名的情况,以及希望使用Ingress控制器进行灵活路由配置的情况。
方式一:修改全局域名
执行以下命令,编辑位于
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。实际业务中需替换成您自己的服务域名。
执行以下命令,查看域名是否生效。
# 需将命令中的helloworld-go替换成实际业务中的Knative服务名。 kubectl get route helloworld-go --output jsonpath="{.status.url}" | awk -F/ '{print $3}'
预期输出:
helloworld-go.default.mydomain.com
预期结果表明,自定义域名已生效。
将Knative网关IP设置到对应的域名解析。更多信息,请参见添加解析记录。
执行以下命令,通过自定义域名访问Knative服务。
curl http://helloworld-go.default.mydomain.com
预期输出:
Hello Knative!
预期结果表明,自定义域名已配置成功,并且Knative服务已经正确地响应了请求。
方式二:使用DomainMapping自定义单个Service的域名
执行以下命令,创建
helloworld.knative.top.yaml
文件。vi helloworld.knative.top.yaml
在vi编辑器中添加以下YAML内容,保存后退出编辑器。
apiVersion: serving.knative.dev/v1alpha1 kind: DomainMapping metadata: name: helloworld.knative.top.mydomain.com # 设置服务域名。实际业务中需替换成您自己的服务域名。 namespace: default # 设置命名空间,与服务所在的命名空间一致。 spec: ref: name: helloworld-go # 目标服务名称 kind: Service apiVersion: serving.knative.dev/v1
执行以下命令,将
helloworld.knative.top.yaml
中定义的资源应用到Kubernetes集群中。kubectl apply -f helloworld.knative.top.yaml
预期输出:
domainmapping.serving.knative.dev/helloworld.knative.top created
执行以下命令,验证DomainMapping。
kubectl get domainmapping helloworld.knative.top
预期输出:
NAME URL READY REASON helloworld.knative.top http://helloworld.knative.top True
预期结果表明,自定义域名已生效。
将Knative网关IP设置到对应的域名解析。更多信息,请参见添加解析记录。
执行以下命令,通过自定义域名访问Knative服务。
curl http://helloworld.knative.top.mydomain.com
预期输出:
Hello Knative!
预期结果表明,自定义域名已配置成功,并且Knative服务已经正确地响应了请求。
- 本页导读 (1)