Skip to content

配置私有服务

默认情况下,通过Knative部署的服务被发布到一个外部IP地址,使它们成为公共IP地址和公共URL上的公共服务。

Knative提供了两种方法来启用仅在集群内部可用的私有服务:

  1. 要使所有Knative服务私有,请将默认域更改为svc.cluster.local编辑config-domain ConfigMap. 这将更改通过Knative部署的所有服务,只将其发布到集群。
  2. 要使单个服务私有,服务或路由可以标记为networking.knative.dev/visibility=cluster-local,这样它就不会被发布到外部网关。

使用 cluster-local 标签

要配置一个Knative服务,使其只在集群-本地网络上可用,而不是在公共互联网上可用,您可以将networking.knative.dev/visibility=cluster-local标签应用到Knative服务、路由或Kubernetes服务对象上。

  • 标记本地服务:

    kubectl label kservice ${KSVC_NAME} networking.knative.dev/visibility=cluster-local
    

    通过标记Kubernetes服务,您可以以更细粒度的方式限制可见性。 有关标记路由的信息,请参见流量管理

  • 当路由直接被使用而没有本地服务时,要标记一个路由:

    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,表示该服务仅在集群-本地网络中可用。

Back to top

We use analytics and cookies to understand site traffic. Information about your use of our site is shared with Google for that purpose. Learn more.

× OK