跳至內容

設定私有服務

預設情況下,透過 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 分享以用於該目的。了解更多。