For the complete documentation index, see llms.txt. This page is also available as Markdown.

Teleport Installation

This guide provides comprehensive instructions for installing Teleport agents on Platform9 Private Cloud Director environments.

Introduction

Teleport enables secure, role-based access to Kubernetes clusters and individual nodes for debugging, monitoring, and management operations. It is a solution for:

  • Secure Remote Access: SSH and web-based access to cluster resources

  • Role-Based Access Control: Granular permissions for different user roles

  • Audit and Compliance: Full logging and session recording

  • Cross-Platform Access: Unified access to multiple environments

Prerequisites

  • Self-hosted Private cloude Directer is installed and configured

  • kubectl access to the Management cluster

  • Valid Teleport join token from Platform9 Support

Installation Options

Option 1: Kubernetes Agent Installation

Install Teleport agent into a Kubernetes namespace for namespace-scoped access.

./install-teleport.sh --token <JOIN_TOKEN> \
  --namespace <NAMESPACE> \
  --proxy-addr <PROXY_ADDR> \
  --cluster-name <CLUSTER_NAME> \
  --version <VERSION> \
  --access-namespace <NAMESPACE[,NAMESPACE]> \
  --access-level <admin|readonly> \
  --resource kube

Parameters:

  • --token: Join token (required)

  • --namespace: Target namespace where the Teleport agent pod runs (default: teleport)

  • --proxy-addr: Teleport proxy address (default: platform9.teleport.sh:443)

  • --cluster-name: name for identification in Teleport interface(default: example-k8s-cluster)

  • --version: Teleport version (default: 18.1.4)

  • --access-namespace: Namespace(s) to grant access (comma-separated)

  • --access-level: Access level - admin or readonly (default: admin)

  • --resource: Resource type - kube (default)

Examples:

Option 2: Node Installation

Install Teleport node agent on individual Kubernetes nodes for node-level access.

Parameters:

  • --token: Join token (required)

  • --proxy-addr: Teleport proxy address (default: platform9.teleport.sh:443)

  • --version: Teleport version (default: 18.1.4)

  • --resource: Resource type - node (required)

Example:

Access Levels

Admin Access

  • Cluster Role: cluster-admin (full cluster access)

  • Namespace Role: admin (full namespace access)

  • Capabilities: Create, read, update, delete resources

Read-Only Access

  • Cluster Role: teleport-view-only (cluster-wide read-only)

  • Namespace Role: teleport-namespace-view (namespace read-only)

  • Capabilities: Get, list, watch resources only

What Gets Installed

Kubernetes Agent

  • Helm Release: teleport-agent in specified namespace

  • RBAC: ClusterRole and RoleBindings for specified access level

  • Service Account: Teleport service account with appropriate permissions

  • Proxy Configuration: Automatic connection to Platform9 Teleport proxy

Node Agent

  • System Service: Teleport node service installed and started

  • Configuration: Node configured with join token and proxy settings

  • System Integration: Integrated with systemd for automatic startup

Proxy Configuration

The script automatically configures connection to Platform9's Teleport proxy:

  • Default Proxy: platform9.teleport.sh:443

  • Custom Proxy: Use --proxy-addr for alternative proxy

  • Environment Variables: HTTP_PROXY, HTTPS_PROXY, NO_PROXY automatically configured

Security Considerations

Token Security

  • Join tokens are single-use and expire after first use

  • Store tokens securely and never commit to version control

  • Obtain fresh tokens for each installation

Access Control

  • Principle of Least Privilege: Use read-only access when possible

  • Namespace Scoping: Limit access to specific namespaces when no cluster-wide access is needed

Network Security

  • Proxy Only: All Teleport connections go through Platform9 proxy

  • TLS Encryption: All communications encrypted via TLS

  • Firewall Rules: Ensure outbound connections to proxy are allowed

Troubleshooting

Common Issues

Token Issues:

Connection Issues:

Log Locations

  • Kubernetes Agent: Check pod logs: kubectl logs -n <NAMESPACE> teleport-agent-xxx

  • Node Agent: Check system logs: sudo journalctl -u teleport -f

  • Installation Logs: Script outputs detailed progress and error messages

Cleanup

Remove Kubernetes Agent:

Remove Node Agent:

Advanced Configuration

Multiple Namespace Access

Grant access to multiple namespaces with comma-separated list:

This creates RoleBindings in each specified namespace with read-only permissions.

Support

For issues or questions:

  • Contact Platform9 Support

  • Verify network connectivity to Teleport proxy

Last updated

Was this helpful?