Skip to main content

Federated Kubernetes Access with Trusted Clusters

There are cases when you have Kubernetes clusters that have to operate independently, for example, they are part of a different organization or have intermittent connectivity.

You can take advantage of trusted clusters to federate trust across Kubernetes clusters.

When multiple trusted clusters are present behind the Teleport Proxy Service, the kubeconfig generated by tsh login contains the Kubernetes API endpoint determined by the <cluster> argument to tsh login.

For example, consider the following scenario:

  • There are three Teleport/Kubernetes clusters: the root cluster named main and the leaf clusters named east and west in the cluster_name setting for each cluster.
  • The clusters east and west trust the main root cluster certificate authority.
  • Users always authenticate against main but use their certificates to access SSH nodes and the Kubernetes API in all three clusters.
  • The DNS name of the root cluster Teleport Proxy Service is main.example.com.

In this scenario, users usually log in using the following command:

# Using login without arguments
$ tsh --proxy=main.example.com login

# User's `kubeconfig` now contains one entry for the main Kubernetes
# endpoint, i.e. `main.example.com`.

# Receive a certificate for "east":
$ tsh --proxy=main.example.com login east

# User's `kubeconfig` now contains the entry for the "east" Kubernetes
# endpoint, i.e. `east.main.example.com`.