設定私有服務¶
預設情況下,透過 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,表示該服務僅在叢集本機網路中可用。