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 kubeParameters:
--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 -adminorreadonly(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-agentin specified namespaceRBAC: 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:443Custom Proxy: Use
--proxy-addrfor alternative proxyEnvironment 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-xxxNode Agent: Check system logs:
sudo journalctl -u teleport -fInstallation 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?
