Management Services - Complete Administrative Interface Layer
File: docs/package-management-readme.md
Purpose: Overview of all management and administration services in Urbalurba infrastructure
Target Audience: Database administrators, system administrators, DevOps engineers
Last Updated: September 23, 2024
📋 Overview
Urbalurba infrastructure provides a comprehensive suite of management and administration interfaces for databases, message brokers, and other services. These web-based interfaces offer intuitive administrative capabilities, monitoring, and configuration management through modern browser-based consoles.
Available Management Services:
- pgAdmin: PostgreSQL database administration with auto-configuration
- RedisInsight: Redis database management with manual connection setup
- RabbitMQ Management: Message broker administration with integrated UI
🖥️ Management Services
pgAdmin - PostgreSQL Administration Interface 🐘
Status: Optional (not-in-use) | Port: 80 | Type: Database Management
Auto-Configuration: Pre-configured PostgreSQL Connection • Server Definitions • Authentication Integration
pgAdmin provides a comprehensive web-based interface for PostgreSQL database administration with automatic server configuration and seamless integration with the cluster PostgreSQL instance.
Key Features:
- Auto-Connected: Pre-configured connection to cluster PostgreSQL
- Web-Based: Complete database administration via browser
- SQL Editor: Advanced query editor with syntax highlighting
- Visual Tools: Database designer and visual query builder
- User Management: Role and permission administration
- Backup/Restore: Database backup and restore operations
RedisInsight - Redis Administration Interface 🔴
Status: Optional (not-in-use) | Port: 5540 | Type: Database Management
Manual Configuration: First-time Setup • Manual Connection Configuration • Flexible Multi-Instance Support
RedisInsight offers a modern web-based interface for Redis database administration with first-time user setup and flexible connection management for multiple Redis instances.
Key Features:
- First-Time Setup: Create your own user account on initial access
- Manual Connections: Configure Redis connections through web interface
- Memory Analysis: Advanced memory usage analysis and optimization
- CLI Integration: Built-in Redis CLI with command execution
- Performance Monitoring: Real-time metrics and slow query analysis
- Data Visualization: Key browser and data structure visualization
RabbitMQ Management - Message Broker Administration 🐰
Status: Active (with RabbitMQ) | Port: 15672 | Type: Message Broker Management
Integrated Interface: Built-in Management Plugin • Real-time Monitoring • Queue Administration
RabbitMQ Management provides a comprehensive administrative console that's automatically deployed with RabbitMQ installation, offering complete message broker management capabilities.
Key Features:
- Automatic Deployment: Included with RabbitMQ installation
- Queue Management: Create, monitor, and manage message queues
- Exchange Administration: Configure routing and message distribution
- User & Permission Management: Control access and virtual host permissions
- Real-Time Monitoring: Live message rates and performance metrics
- Connection Tracking: Monitor client connections and channels
🏗️ Deployment Architecture
Service Activation
Management Interface Status:
├── pgAdmin (OPTIONAL) - Located in not-in-use/ folder
├── RedisInsight (OPTIONAL) - Located in not-in-use/ folder
└── RabbitMQ Management (AUTOMATIC) - Deployed with RabbitMQ
Access Methods
All management interfaces use Traefik IngressRoute for DNS-based routing:
- pgAdmin:
http://pgadmin.localhost - RedisInsight:
http://redisinsight.localhost - RabbitMQ Management:
http://rabbitmq.localhost
Authentication Models
Authentication Approaches:
├── pgAdmin: urbalurba-secrets (PGADMIN_DEFAULT_EMAIL/PASSWORD)
├── RedisInsight: First-time setup (user-created credentials)
└── RabbitMQ: urbalurba-secrets (RABBITMQ_USERNAME/PASSWORD)
🚀 Quick Start
Activate Database Management (pgAdmin)
# Move from not-in-use to activate
cd provision-host/kubernetes/06-management/
mv not-in-use/03-setup-pgadmin.sh ./
# Deploy pgAdmin
./03-setup-pgadmin.sh rancher-desktop
# Access via browser
open http://pgadmin.localhost
Activate Redis Management (RedisInsight)
# Move from not-in-use to activate
cd provision-host/kubernetes/06-management/
mv not-in-use/05-setup-redisinsight.sh ./
# Deploy RedisInsight
./05-setup-redisinsight.sh rancher-desktop
# Access via browser (first-time setup required)
open http://redisinsight.localhost
Access Message Broker Management (RabbitMQ)
# RabbitMQ Management is automatically available when RabbitMQ is deployed
# No separate installation required
# Access via browser
open http://rabbitmq.localhost
🔍 Management Interface Selection Guide
When to Use pgAdmin ✅
- PostgreSQL Administration: Primary choice for PostgreSQL management
- Auto-Configuration: Prefer automatic server configuration
- Team Environments: Multiple users sharing database management
- Advanced SQL Operations: Complex query development and optimization
- Database Design: Visual database modeling and design tasks
When to Use RedisInsight 🔴
- Redis Administration: Essential for Redis database management
- Memory Optimization: Analyzing Redis memory usage patterns
- Performance Tuning: Monitoring Redis performance and slow queries
- Multi-Instance: Managing multiple Redis instances or clusters
- Development: Redis-specific development and debugging tasks
When to Use RabbitMQ Management 🐰
- Message Broker Operations: Queue and exchange management
- Performance Monitoring: Real-time message broker statistics
- User Administration: Managing RabbitMQ users and permissions
- Troubleshooting: Diagnosing message flow and connection issues
- Configuration Management: Setting up routing and policies
🛠️ Management Operations
Common Access Patterns
# Check management service status
kubectl get pods -l component=management
kubectl get pods -l app.kubernetes.io/name=pgadmin4
kubectl get pods -l app.kubernetes.io/name=redisinsight
kubectl get pods -l app.kubernetes.io/name=rabbitmq
# Verify web interface accessibility
curl -H "Host: pgadmin.localhost" http://localhost/
curl -H "Host: redisinsight.localhost" http://localhost/
curl -H "Host: rabbitmq.localhost" http://localhost/
Authentication Management
# Get pgAdmin credentials
kubectl get secret urbalurba-secrets -o jsonpath='{.data.PGADMIN_DEFAULT_EMAIL}' | base64 -d
kubectl get secret urbalurba-secrets -o jsonpath='{.data.PGADMIN_DEFAULT_PASSWORD}' | base64 -d
# Get RabbitMQ credentials
kubectl get secret urbalurba-secrets -o jsonpath='{.data.RABBITMQ_USERNAME}' | base64 -d
kubectl get secret urbalurba-secrets -o jsonpath='{.data.RABBITMQ_PASSWORD}' | base64 -d
# RedisInsight: No pre-configured credentials (first-time setup)
Port-Forward Alternative Access
# pgAdmin port-forward
kubectl port-forward svc/pgadmin-pgadmin4 8080:80
# Access: http://localhost:8080
# RedisInsight port-forward
kubectl port-forward svc/redisinsight 8081:5540
# Access: http://localhost:8081
# RabbitMQ Management port-forward
kubectl port-forward svc/rabbitmq 8082:15672
# Access: http://localhost:8082
🔧 Troubleshooting
Common Issues
Management Interface Won't Load:
# Check pod status
kubectl describe pod -l app.kubernetes.io/name=pgadmin4
kubectl describe pod -l app.kubernetes.io/name=redisinsight
kubectl describe pod -l app.kubernetes.io/name=rabbitmq
# Verify service endpoints
kubectl get endpoints pgadmin-pgadmin4 redisinsight rabbitmq
# Check IngressRoute configuration
kubectl get ingressroute pgadmin redisinsight rabbitmq-management
Authentication Issues:
# Verify secrets exist
kubectl get secret urbalurba-secrets
# Check secret values
kubectl describe secret urbalurba-secrets
# Test service connectivity
kubectl run test-pod --image=curlimages/curl --rm -it -- \
curl http://pgadmin-pgadmin4.default.svc.cluster.local:80/misc/ping
DNS Resolution Problems:
# Test internal DNS
kubectl run test-pod --image=busybox --rm -it -- \
nslookup pgadmin-pgadmin4.default.svc.cluster.local
# Verify Traefik routing
kubectl logs -n kube-system -l app.kubernetes.io/name=traefik
# Test with curl
curl -v -H "Host: pgadmin.localhost" http://127.0.0.1/
Service-Specific Troubleshooting
pgAdmin Issues:
- PostgreSQL connection problems → Check PostgreSQL service status
- Login failures → Verify PGADMIN_DEFAULT_EMAIL/PASSWORD in secrets
- Performance issues → Check pgAdmin pod resource limits
RedisInsight Issues:
- First-time setup problems → Check persistent storage permissions
- Redis connection failures → Verify Redis service and credentials
- Memory issues → Monitor RedisInsight pod resource usage
RabbitMQ Management Issues:
- Management UI unavailable → Check rabbitmq_management plugin enabled
- Authentication failures → Verify RABBITMQ_USERNAME/PASSWORD in secrets
- Missing features → Ensure management plugin is properly loaded
📋 Maintenance
Regular Tasks
- Health Monitoring: Check pod and service status regularly
- Storage Monitoring: Monitor persistent volume usage for configurations
- Access Review: Review user access and authentication credentials
- Performance Monitoring: Track resource usage and response times
- Security Updates: Update container images and configurations
Backup Procedures
# pgAdmin configuration backup
kubectl exec -it deployment/pgadmin-pgadmin4 -- \
tar -czf /tmp/pgadmin-backup.tar.gz /var/lib/pgadmin
kubectl cp deployment/pgadmin-pgadmin4:/tmp/pgadmin-backup.tar.gz ./pgadmin-backup.tar.gz
# RedisInsight configuration backup
kubectl exec -it deployment/redisinsight -- \
tar -czf /tmp/redisinsight-backup.tar.gz /data
kubectl cp deployment/redisinsight:/tmp/redisinsight-backup.tar.gz ./redisinsight-backup.tar.gz
# RabbitMQ configuration backup
kubectl exec -it rabbitmq-0 -- \
rabbitmqctl export_definitions /tmp/definitions.json
kubectl cp rabbitmq-0:/tmp/definitions.json ./rabbitmq-definitions.json
Service Removal
# Remove management services
cd provision-host/kubernetes/06-management/not-in-use/
# Remove pgAdmin
./03-remove-pgadmin.sh rancher-desktop
# Remove RedisInsight
./05-remove-redisinsight.sh rancher-desktop
# RabbitMQ Management is removed automatically when RabbitMQ is removed
cd provision-host/kubernetes/03-queues/not-in-use/
./08-remove-rabbitmq.sh rancher-desktop
💡 Key Insight: The management layer provides intuitive web-based interfaces for all major infrastructure components, with varying authentication models to suit different security and usability requirements. pgAdmin offers auto-configuration for immediate productivity, RedisInsight provides flexible multi-instance management, and RabbitMQ Management integrates seamlessly with message broker deployment.