如果Knative Service需要配置多个不同的域名,您可以通过knative.aliyun.com/serving-ingress
Annotation直接指定自定义的域名和路径,并且通过自定义域名和路径访问Knative Service。本文介绍如何添加自定义的域名和路径,并通过自定义域名和路径访问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中使用自定义域名。
如果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!