Architecture Diagram

Below is the architecture diagram in Mermaid format for the home lab setup using k3s, as requested. This diagram represents the physical machines, virtual machines, Kubernetes cluster components, NFS storage, and application pods, along with their relationships.

mermaid

graph TD %% Physical Layer subgraph "Physical Layer" PM1["Physical Machine 1 (192.168.123.100)"] PM2["Physical Machine 2 (192.168.123.230)"] end %% Virtualization Layer subgraph "Virtualization Layer" VM1["VM1 (192.168.123.221)"] VM2["VM2 (192.168.123.222)"] VM3["VM3 (192.168.123.223)"] NFS["NFS Server (192.168.123.100)"] end %% Kubernetes Layer subgraph "Kubernetes Layer" Master["Master Node"] Worker1["Worker Node 1"] Worker2["Worker Node 2"] Ingress["Nginx Ingress Controller"] App1["Nextcloud Pod"] App2["Vaultwarden Pod"] App3["Paperless-ngx Pod"] App4["Bookstack Pod"] end %% Connections between Physical and Virtualization Layers PM1 --> VM1 PM1 --> VM2 PM2 --> VM3 PM1 --> NFS %% Connections between Virtualization and Kubernetes Layers VM1 --> Master VM2 --> Worker1 VM3 --> Worker2 %% Kubernetes Cluster Relationships Master -->|manages| Worker1 Master -->|manages| Worker2 Worker1 --> App1 Worker1 --> App2 Worker2 --> App3 Worker2 --> App4 %% Storage Connections App1 -->|stores data| NFS App2 -->|stores data| NFS App3 -->|stores data| NFS App4 -->|stores data| NFS %% Ingress Routing Ingress -->|exposes| App1 Ingress -->|exposes| App2 Ingress -->|exposes| App3 Ingress -->|exposes| App4

Explanation of the Diagram

  • Physical Layer:

    • Physical Machine 1 (192.168.123.100): Hosts two virtual machines and the NFS server.

    • Physical Machine 2 (192.168.123.230): Hosts one virtual machine.

  • Virtualization Layer:

    • VM1 (192.168.123.221): Runs the Kubernetes master node.

    • VM2 (192.168.123.222): Runs the first worker node.

    • VM3 (192.168.123.223): Runs the second worker node.

    • NFS Server (192.168.123.100): Provides persistent storage, running directly on Physical Machine 1.

  • Kubernetes Layer:

    • Master Node: Manages the Kubernetes cluster, hosted on VM1.

    • Worker Node 1: Runs Nextcloud and Vaultwarden pods, hosted on VM2.

    • Worker Node 2: Runs Paperless-ngx and Bookstack pods, hosted on VM3.

    • Nginx Ingress Controller: Handles external traffic routing to the application pods.

    • Application Pods: Deployed applications (Nextcloud, Vaultwarden, Paperless-ngx, Bookstack) running on the worker nodes.

  • Connections:

    • Physical machines host their respective virtual machines and the NFS server.

    • Virtual machines run the Kubernetes nodes (master and workers).

    • The master node manages the worker nodes.

    • Worker nodes host the application pods.

    • Application pods use the NFS server for persistent storage.

    • The Nginx Ingress Controller exposes the application pods to external traffic.

This Mermaid code can be rendered in a compatible viewer (e.g., Mermaid Live Editor) to visualize the architecture of the k3s-based home lab setup.

This page was last edited on 2025-03-08 11:08

Powered by Wiki|Docs

This page was last edited on 2025-03-08 11:08

Mac
To whom it may concern

Powered by Wiki|Docs