Cluster Management
This guide covers managing your connected Kubernetes clusters in TinySystems.
Cluster Dashboard
Access your clusters from the workspace dashboard:
┌─────────────────────────────────────────────────────────────────────┐
│ Clusters │
├─────────────────────────────────────────────────────────────────────┤
│ 🟢 production-gke │ GKE │ 5 modules │ Healthy │ [Manage] │
│ 🟢 staging-eks │ EKS │ 3 modules │ Healthy │ [Manage] │
│ 🟡 dev-local │ Kind │ 2 modules │ Warning │ [Manage] │
└─────────────────────────────────────────────────────────────────────┘Cluster Status
Status Indicators
| Status | Indicator | Meaning |
|---|---|---|
| Healthy | 🟢 Green | All systems operational |
| Warning | 🟡 Yellow | Minor issues detected |
| Error | 🔴 Red | Connection or health issues |
| Unknown | ⚪ Gray | Status cannot be determined |
Health Checks
TinySystems monitors:
- API Server Connectivity: Can reach the cluster
- Namespace Status: tinysystems namespace exists
- RBAC Permissions: Service account has required access
- Module Status: Deployed modules are running
- Resource Usage: CPU/memory utilization
Viewing Cluster Details
Click a cluster to see:
Overview Tab
┌─────────────────────────────────────────────────────────────────────┐
│ Cluster: production-gke │
├─────────────────────────────────────────────────────────────────────┤
│ Status: 🟢 Healthy │
│ Connected: 2024-01-10 │
│ Last Seen: 5 seconds ago │
│ │
│ Resources │
│ ├── Nodes: 3 │
│ ├── CPU: 4.2 / 12 cores (35%) │
│ ├── Memory: 8.5 / 24 GB (35%) │
│ └── Pods: 45 / 330 (13%) │
│ │
│ Modules │
│ ├── common-module-v1: 2 replicas ✅ │
│ ├── http-module-v1: 2 replicas ✅ │
│ └── custom-module-v1: 1 replica ✅ │
└─────────────────────────────────────────────────────────────────────┘Modules Tab
View and manage deployed modules:
- Module name and version
- Replica count
- Resource usage
- Health status
- Quick actions (scale, restart, remove)
Nodes Tab
See TinyNode resources:
- Node count
- Status distribution
- Recent activity
- Error logs
Events Tab
Recent cluster events:
- Module deployments
- Node creations/deletions
- Errors and warnings
- Health check results
Managing Modules
Deploy a Module
- Click Deploy Module
- Select module from catalog
- Configure settings:
- Replicas
- Resource limits
- Environment variables
- Click Deploy
Scale Module
- Find the module in the Modules tab
- Click Scale
- Set replica count
- Confirm
Or via kubectl:
kubectl scale deployment common-module-v1 \
--replicas=3 \
-n tinysystemsUpdate Module
- Find the module
- Click Update
- Select new version
- Review changes
- Click Update
Remove Module
- Find the module
- Click Remove
- Confirm deletion
Warning: Removing a module stops all nodes using its components.
Resource Management
Viewing Resource Usage
Monitor cluster resources:
CPU Usage Over Time
│
│ ████
│ ██████
│ ████████████
│ ██████████████████████
└──────────────────────────▶
12:00 13:00 14:00Resource Alerts
Configure alerts for:
- CPU usage > 80%
- Memory usage > 80%
- Pod restart loops
- Module failures
Scaling Recommendations
TinySystems provides scaling suggestions:
⚠️ Scaling Recommendation
Module: http-module-v1
Current: 2 replicas
Suggested: 4 replicas
Reason: High CPU usage (85%) during peak hours
[Apply] [Dismiss]Kubeconfig Management
Update Kubeconfig
When credentials change:
- Go to Cluster Settings
- Click Update Kubeconfig
- Upload new kubeconfig
- Test connection
- Save
Rotate Credentials
Periodic credential rotation:
- Generate new token in cluster
- Update kubeconfig
- Test connection
- Remove old credentials
Cluster Settings
General Settings
| Setting | Description |
|---|---|
| Name | Display name |
| Description | Notes about the cluster |
| Environment | Production/Staging/Development |
| Tags | Organization labels |
Connection Settings
| Setting | Description |
|---|---|
| Namespace | Target namespace |
| Timeout | Connection timeout |
| Retry Policy | Reconnection behavior |
Resource Defaults
Default limits for new modules:
defaults:
replicas: 2
resources:
requests:
cpu: 100m
memory: 128Mi
limits:
cpu: 500m
memory: 512MiMulti-Cluster Operations
Deploying Across Clusters
Deploy the same flow to multiple clusters:
- Create flow in workspace
- Select target clusters
- Deploy to each
Cluster Groups
Organize clusters into groups:
- Production clusters
- Staging clusters
- Regional clusters
Apply actions to groups:
- Deploy to all production
- Update all staging
- Compare configurations
Failover Configuration
Set up cluster failover:
- Define primary cluster
- Define failover cluster(s)
- Configure health checks
- Set failover triggers
Monitoring and Logging
Built-in Metrics
View in cluster dashboard:
- Request rates
- Error rates
- Latency percentiles
- Resource utilization
External Monitoring
Integrate with:
- Prometheus/Grafana
- Datadog
- New Relic
- CloudWatch
Log Access
View logs in UI or via kubectl:
# All module logs
kubectl logs -n tinysystems -l app.kubernetes.io/part-of=tinysystems
# Specific module
kubectl logs -n tinysystems deployment/common-module-v1Maintenance
Draining Nodes
Before cluster maintenance:
- Identify affected TinyNodes
- Drain traffic (if HTTP endpoints)
- Perform maintenance
- Verify recovery
Backup Considerations
Backup these resources:
# Export TinyNodes
kubectl get tinynodes -n tinysystems -o yaml > tinynodes-backup.yaml
# Export TinyModules
kubectl get tinymodules -n tinysystems -o yaml > tinymodules-backup.yamlDisaster Recovery
Recovery steps:
- Restore cluster access
- Verify namespace exists
- Reapply CRDs if needed
- Restore TinyNode configurations
- Redeploy modules
- Test flows
Disconnecting a Cluster
Graceful Disconnect
- Undeploy all modules
- Remove all TinyNodes
- Go to Cluster Settings
- Click Disconnect
- Confirm
Cleanup Resources
After disconnecting:
# Remove namespace
kubectl delete namespace tinysystems
# Remove cluster-scoped resources
kubectl delete clusterrole tinysystems-controller
kubectl delete clusterrolebinding tinysystems-controllerNext Steps
- Troubleshooting Clusters - Common issues
- Installing Modules - Deploy modules
- Module Configuration - Configure modules