Expose a Service in one cluster to another cluster (cross-cluster connectivity)
Last validated: Jan 5, 2026
You can use the Tailscale Kubernetes Operator to expose a Service in one cluster to another cluster. This is done by exposing the Service on destination cluster A to the tailnet ( cluster ingress), and connecting from a source Service in cluster B to the tailnet ( cluster egress) to access the Service running in cluster A.
For GitOps workflows that need to manage deployments across multiple clusters, refer to Manage multi-cluster Kubernetes deployments with ArgoCD. To distribute secrets between clusters, refer to Sync Kubernetes secrets across clusters with External Secrets Operator.
Prerequisites
Cross-cluster connectivity setup
This will need to be configured for each Ingress and Egress pair of Services. To set this up for access through ingress to a Service in cluster A and routing through egress from a Service in cluster B:
- Set up
Ingressin cluster A for theServiceyou wish to access. - Expose the external
Service(running in cluster A) using its Tailscale IP address in cluster B with an annotation on the externalService.
Customization
Customize the operator and resources it manages.
Troubleshooting
Troubleshoot the operator and resources it manages.
Ask AI
reCAPTCHA
Recaptcha requires verification.
protected by reCAPTCHA