Cluster Topology

Swarm Information:

  • Cluster ID:[SECRET]
  • Total Nodes: 4 (1 manager, 3 workers)
  • Docker Version: 28.4.0 across all nodes
  • Network Driver: Overlay with VXLAN encapsulation
  • Address Pool: 10.0.0.0/8 with /24 subnets

Network Configuration:

  • Homelab Network: 10.0.1.0/24 (primary application network)
  • Ingress Network: 10.0.0.0/24 (published ports)
  • Portainer Network: 10.0.2.0/24 (management isolation)

Node Constraints and Placement Strategies

The cluster employs strategic service placement based on node capabilities:

Manager Node (p0) Services:

constraints: [node.hostname == p0]
  • Critical Infrastructure: Traefik, PostgreSQL, MariaDB
  • Authentication Services: Authentik server and worker
  • Management Tools: Portainer, Homarr, Adminer
  • High-I/O Services: Nextcloud, Paperless-NGX

Rationale: Centralized on the most powerful node with direct storage access.

Worker Node Services:

constraints: [node.role == worker]
  • Application Workloads: BookStack, Vikunja
  • Distributed Services: Taylor’s Tracker (3 replicas)
  • Monitoring: Uptime Kuma

Rationale: Distributed for resilience and load balancing.

Global Services:

mode: global
  • Portainer Agent: Deployed on all nodes for management
  • Monitoring Agents: System-level monitoring across cluster