Skip to main content

Replicate networking services

With open source vCluster, you need to replicate services between the host cluster and virtual cluster.

Host cluster to virtual cluster​

In this example, you map a service my-host-service in the namespace my-host-namespace to the virtual cluster service my-virtual-service in the virtual cluster namespace my-virtual-namespace.

networking:
replicateServices:
fromHost:
- from: my-host-namespace/my-host-service
to: my-virtual-namespace/my-virtual-service

vCluster replicates the service in the virtual cluster, with the virtual cluster service pointing to the service running in the host cluster. Pods inside the virtual cluster can access the host service using my-virtual-service.my-virtual-namespace syntax. For example, if you use cURL, the command is curl http://my-virtual-service.my-virtual-namespace.

Virtual cluster to host cluster​

You can also map a virtual cluster service to a host cluster service. This is especially useful if you want to expose an application that runs inside the virtual cluster to other workloads running in the host cluster, which makes it easier to share services across vCluster instances.

In this example, you map the virtual service my-virtual-service in the namespace my-virtual-namespace to the host namespace service my-host-service

networking:
replicateServices:
toHost:
- from: my-virtual-namespace/my-virtual-service
to: my-host-service

With this configuration, vCluster manages a service called my-host-service inside the namespace where the vCluster workloads are synced, which points to the virtual service my-virtual-service in namespace my-virtual-namespace inside the virtual cluster. Pods in the host cluster are able to access the virtual service by calling the host service. If you use cURL, the command based on the preceding example is curl http://my-host-service.

Config reference​

replicateServices required object pro​

ReplicateServices allows replicating services from the host within the virtual cluster or the other way around.

toHost required object[] pro​

ToHost defines the services that should get synced from virtual cluster to the host cluster. If services are synced to a different namespace than the virtual cluster is in, additional permissions for the other namespace are required.

from required string pro​

From is the service that should get synced. Can be either in the form name or namespace/name.

to required string pro​

To is the target service that it should get synced to. Can be either in the form name or namespace/name.

fromHost required object[] pro​

FromHost defines the services that should get synced from the host to the virtual cluster.

from required string pro​

From is the service that should get synced. Can be either in the form name or namespace/name.

to required string pro​

To is the target service that it should get synced to. Can be either in the form name or namespace/name.