Deploy exit nodes and subnet routers on Kubernetes
Tailscale Kubernetes operator installation includes a Connector
Custom Resource Definition.
You can use the Connector
to configure the operator to deploy a Tailscale device that acts as a Tailscale subnet router, exit-node, or both.
For example, you can deploy a Connector
that acts as a subnet router and exposes to your tailnet cluster Service
CIDRs or some cloud service CIDRs that are available from the cluster, but not publicly accessible.
Prerequisites
Deploy an exit node or subnet router
To create a Connector
that exposes 10.40.0.0/14
CIDR to your tailnet:
-
(Optional) Set the tag of the
Connector
node to be auto-approved. By default, the device will be tagged withtag:k8s
. You can set one or more custom tags using.connector.spec.tags
in step 2. If you set a custom tag, you must also ensure that the operator is an owner of this tag. -
Create a
Connector
Custom Resource:apiVersion: tailscale.com/v1alpha1 kind: Connector metadata: name: ts-pod-cidrs spec: hostname: ts-pod-cidrs subnetRouter: advertiseRoutes: - "10.40.0.0/14"
-
Wait for the
Connector
resources to get created:$ kubectl get connector ts-pod-cidrs NAME SUBNETROUTES ISEXITNODE STATUS ts-pod-cidrs 10.40.0.0/14 false ConnectorCreated
-
(Optional) If you did not configure the route to be auto-approved in step 1, open the Machines page of the admin console and manually approve the newly created
ts-pod-cidrs
device to advertise the10.40.0.0/14
route. -
(Optional and for Linux clients only) Ensure that clients that need to access resources in the subnet have accepted the advertised route.
Customization
Learn how to customize the operator and resources it manages. You can find all available Connector
configuration options on GitHub.
Troubleshooting
Learn how to troubleshoot the operator and resources it manages.