配置私有服务¶
默认情况下,通过 Knative 部署的服务使用 `.svc.cluster.local` 域,这意味着它们是私有的,因此没有公共 IP 地址或公共 URL。
为了默认使 Knative 服务公开(具有公共 IP 地址和公共 URL),请为服务配置域名。这可以针对单个服务或集群中的所有服务进行。
使单个服务私有化¶
要使单个服务私有化,可以通过为服务或路由打上 `networking.knative.dev/visibility=cluster-local` 标签,使其不向外部网关发布。
-
为 Knative 服务打标签
kubectl label kservice ${KSVC_NAME} networking.knative.dev/visibility=cluster-local通过为 Kubernetes 服务打标签,您可以更精细地限制可见性。有关已标记路由的信息,请参阅流量管理。
-
在直接使用路由而没有 Knative 服务时,为路由打标签
kubectl label route ${ROUTE_NAME} networking.knative.dev/visibility=cluster-local -
为 Kubernetes 服务打标签
kubectl label service ${SERVICE_NAME} networking.knative.dev/visibility=cluster-local
示例¶
您可以部署Hello World 示例,然后通过为服务打标签将其转换为集群本地服务。
kubectl label kservice helloworld-go networking.knative.dev/visibility=cluster-local
然后,您可以通过验证 `helloworld-go` 服务的 URL 来确认更改已完成。
kubectl get kservice helloworld-go
NAME URL LATESTCREATED LATESTREADY READY REASON
helloworld-go http://helloworld-go.default.svc.cluster.local helloworld-go-2bz5l helloworld-go-2bz5l True
该服务返回带有 `svc.cluster.local` 域的 URL,表明该服务仅在集群本地网络中可用。