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.
replicateServices
required object pro​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.
toHost
required object[] pro​fromHost
required object[] pro​
FromHost defines the services that should get synced from the host to the virtual cluster.
fromHost
required object[] pro​