Architecture
Cluster architecture and component overview
Cluster Layout
| VM | IP | Role | Resources |
|---|
| Storage | 192.168.56.20 | NFS Server | 1GB / 1 CPU |
| ControlPlane | 192.168.56.10 | Master | 6GB / 4 CPU |
| Node01 | 192.168.56.11 | Worker + AI | 8GB / 2 CPU |
| Node02 | 192.168.56.12 | Worker | 4GB / 2 CPU |
Note: Node01 has extra resources for AI workloads (Ollama). Total: 19GB RAM, 9 CPUs.
Network Architecture
| Network | CIDR | Purpose |
|---|
| Host-only | 192.168.56.0/24 | VM communication |
| Pod | 10.244.0.0/16 | Pod networking (Calico) |
| Service | 10.96.0.0/12 | Kubernetes services |
| MetalLB | 192.168.56.200-250 | LoadBalancer IPs |
Component Stack
From top to bottom:
| Layer | Component |
|---|
| 7 | Applications |
| 6 | Istio (Service Mesh) |
| 5 | MetalLB (LoadBalancer) |
| 4 | Calico (CNI) |
| 3 | Kubernetes 1.32 |
| 2 | CRI-O (Container Runtime) |
| 1 | Debian 12 |
| 0 | VirtualBox |
Observability Stack
| Component | Purpose |
|---|
| Grafana | Visualization & Dashboards |
| Prometheus | Metrics collection |
| Loki | Log aggregation |
| Node Exporter | Host metrics |
| kube-state-metrics | Kubernetes metrics |
| Promtail | Log collector |
Storage Stack
| Component | Purpose |
|---|
| NFS Server | Persistent storage backend |
| NFS Dynamic Provisioner | Automatic PV provisioning |
| StorageClass: nfs-dynamic | Auto-create PVs (default) |
| StorageClass: nfs-static | Manual PV management |
AI Stack (Optional)
| Component | Purpose |
|---|
| Karpor | Kubernetes Explorer with AI |
| Ollama | LLM backend (local/cloud) |
| llama3.2:3b | Default AI model |
To disable AI features, set karpor_ai.enabled: false in config.yaml.