跳至内容

配置私有服务

默认情况下,通过 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,表明该服务仅在集群本地网络中可用。

我们使用分析和 Cookie 来了解网站流量。有关您使用我们网站的信息将为此目的与 Google 共享。 了解更多。