Ice-Kubernetes
Ice-Kubernetes
Migration from Docker Compose stacks to a centralized K3s Kubernetes cluster with GitOps (ArgoCD) and monitoring (Prometheus/Grafana).
Architecture
+---------------------+
| GitHub (GitOps) |
| Ice-Kubernetes.git |
+----------+----------+
|
v
+----------+----------+
| ArgoCD |
| (auto-sync to K3s) |
+----------+----------+
|
+---------------------+---------------------+
| | |
+--------v--------+ +---------v--------+ +----------v---------+
| K3s Server Node | | K3s Agent Node | | Docker Host |
| (Control Plane) | | (GPU Worker) | | (Monitored Only) |
| - Core Platform | | - GPU Workloads | | - NFS Storage |
| - App Workloads | | - ML Inference | | - Legacy Containers|
+-----------------+ +------------------+ +--------------------+
Cluster Nodes
| Role | Host | OS | CPU | RAM | Storage | GPU | Status |
|---|---|---|---|---|---|---|---|
| Server | NUC-HA | Debian 13 | i7-8559U (8T) | 32GB | 1.2TB NVMe | - | Planned |
| Agent | ki01 | Ubuntu 24.04 | 8 vCPU | 16GB | 2.9TB | RTX 3060 12GB | Planned |
| Agent | kibana-osint | Ubuntu 24.04 | 12 vCPU | 32GB | 7.9TB | - | Planned |
| Monitor-only | Synology NAS | DSM 7 | 8 vCPU | 32GB | 22TB+ | - | Docker |
Core Platform
| Component | Purpose | Deployment |
|---|---|---|
| K3s | Lightweight Kubernetes | Binary install |
| ArgoCD | GitOps / Continuous Deployment | Helm chart |
| Prometheus + Grafana | Monitoring & Dashboards | Helm chart (kube-prometheus-stack) |
| MetalLB | LoadBalancer for bare-metal | Helm chart |
| Traefik | Ingress Controller | Built into K3s |
| NFS Provisioner | Persistent storage via NFS | Helm chart |
Workloads to Migrate
| # | Stack | Containers | Complexity |
|---|---|---|---|
| 1 | Stock Analyzer | 1 | Low |
| 2 | SearXNG | 1 | Low |
| 3 | Ice-Leak-Monitoring | 1 | Low |
| 4 | eBay Selling Assistant | 2 | Low |
| 5 | Epstein Research | 1 | Low |
| 6 | XWiki + AnythingLLM | 5 | Medium |
| 7 | Cribl / ELK Stack | 4 | Medium |
| 8 | Open Archiver | 5 | Medium |
| 9 | Tax-AI Pipeline | 13 | High |
Not Migrating
| Workload | Reason |
|---|---|
| Home Assistant Supervised | Managed by hassio_supervisor, would break if moved |
| InfluxDB, Cribl, Apache2 | Native systemd services, not Docker |
| Synology containers (42) | DSM kernel too old for K3s agent, stays Docker + monitored |
Quick Start
See docs/01-prerequisites.md to get started.
Documentation
- Prerequisites
- K3s Server Setup
- Core Platform
- Workload Migration
- Agent Nodes
- Monitoring
- GitOps with ArgoCD
Directory Structure
.
├── docs/ # Step-by-step documentation
├── manifests/
│ ├── core/ # ArgoCD, Monitoring, MetalLB, NFS
│ └── apps/ # Application workload manifests
├── helm-values/ # Helm chart value overrides
├── scripts/ # Installation & utility scripts
└── .env.example # Environment variable template
License
MIT