In production

Cicca Fleet — Multi-site k3s Cluster

Outcome
In production

About the project

Personal Kubernetes fleet spanning cloud VPS nodes and an ARM64 Orange Pi at home, meshed over Tailscale and managed fully by GitOps (ArgoCD app-of-apps). In-cluster container registry on MinIO, NFS storage from a Synology NAS, Grafana + Mimir + Loki + Alloy observability with alerting, public apps via Cloudflare Tunnel — this website is served from it.

The problem

I wanted one place to run my own services, this website included, that behaves like production rather than a pet server: declarative, observable and recoverable, across machines that are not in the same building or even the same CPU architecture.

What I built

Cicca Fleet is my personal multi-site Kubernetes cluster:

  • k3s nodes on cloud VPS machines plus an ARM64 Orange Pi at home, so the cluster is multi-arch.
  • A Tailscale mesh connecting the sites.
  • GitOps with ArgoCD using the app-of-apps pattern: the cluster's state lives in Git.
  • An in-cluster container registry on MinIO, and NFS storage from a Synology NAS.
  • Observability with Grafana, Mimir, Loki and Alloy, with alerting.
  • Public apps through Cloudflare Tunnel.

How it works

Every app is described in a Git repository; ArgoCD watches it and brings the cluster in line, so a change is a commit and a rollback is a revert. Images are pushed to the registry inside the cluster, and persistent data sits on the NAS over NFS. Nodes talk to each other over Tailscale whether they run in a data centre or on my desk. Metrics, logs and alerts flow into Grafana through Alloy, Mimir and Loki, so problems show up on a dashboard before a visitor notices them. Public traffic reaches services through Cloudflare Tunnel.

Outcome

The fleet runs my projects in production, and this website — letranminhdat.com — is served from it.

Stack

  • k3s (Kubernetes), multi-arch (amd64 + ARM64)
  • ArgoCD (app-of-apps GitOps)
  • Tailscale, Cloudflare Tunnel
  • MinIO registry, Synology NAS (NFS)
  • Grafana, Mimir, Loki, Alloy

Stack & links

STACK

  • k3s
  • ArgoCD
  • Tailscale
  • Grafana LGTM

IMPACT

Multi-arch · gitops

NEXT PROJECTSiz — AI Commerce Gateway (MCP)

Let's talk

I usually reply within 1–2 days (GMT+7).

Topic (optional)

At least 10 characters.

or email me at [email protected]