Skip to content
antalos

NFS CSI driver · Architecture

The official CSI chart provides control components and node plugins in kube-system. Static application volumes reference exports on the configured NFS endpoint. RWX mounts let different workers access the same files, but application locking and concurrent-write rules still apply.

Component boundaries

NFS CSI driver · component flow
  1. Request
    • Application PV / PVC
    • Export and mount options
  2. Mount
    • CSI controller / node plugin
    • Pod runtime UID / GID
  3. External storage
    • NFS server / export permissions
    • Shared files / separate backup policy
Arrows show the main flow between responsibility groups. Parallel boxes are related components, not interchangeable replicas; the text below defines their individual failure and recovery behavior.

State and recovery contract

The external export contains the data. PV/PVC objects only describe access to it. Preserve export contents, server permissions, mount protocol requirements, and backup history outside the cluster.

Availability and failure behavior

Availability classification: Not HA storage: the CSI path has node coverage, but all declared exports depend on one external endpoint.

This is an interpretation of the checked-in configuration, assuming the declared replicas are healthy, separated as intended, and their required dependencies are reachable. It is not a live-health result or a completed failure drill.

What supplies redundancy

Component Declared layout Mechanism
CSI node plugins Node-level mounts Another worker can mount a reachable export.
CSI control components Chart-managed Provisioning and new mounts have their own management dependencies.
NFS data service One declared server endpoint No replicated NFS servers, failover address, or export fencing is declared by antalos.

How a failure is handled

After a consumer node fails, a replacement pod can mount the same export if the API, CSI path, network, server, permissions, and file locks are available. That supports relocation. If the NFS server fails, moving the consumer to another worker does not recover its data path.

Failure scenarios

Failure Expected behavior and remaining dependency
One main worker Other consumers can continue using a healthy export; single-instance applications still incur restart time. Persistent handles/locks and application recovery rules determine whether a replacement can safely start.
RTX worker only No NFS-specific voter. Shared infrastructure/control-plane effects still apply to new scheduling and mounts.
A second failure before recovery Outside the stated single-failure envelope; assess remaining data copies, quorum, endpoints, and capacity before further maintenance.

An RTX worker VM failure is not the same as an RTX Proxmox host failure. The latter also removes its control-plane VM and the configured API address. Read the physical failure-domain explanation before making a whole-host HA claim.

Upgrades and voluntary maintenance

Updating CSI components is different from stopping the external server. Existing mounted I/O may continue during some controller outages, while new provisioning/mount work pauses.

What prevents a stronger HA claim

ReadWriteMany describes mount access, not redundant server copies or concurrent-writer safety. Backups and Retain policies do not provide a second live NFS service.

What would improve the availability contract

Document or implement external NFS failover with correct locking/fencing, protect exports, and test both already-mounted I/O and a new pod mount during server/control-component failure.

These are operational/design requirements, not changes made to the deployment by this documentation. The shared availability reference explains election, replication, durability, recovery time, and shared dependencies; the manifest links below identify this service’s source.

Configuration ownership

apps/nfs-driver/ owns this service’s Kubernetes resources. Hostnames, addresses, versions, node names, and volume sizes belong in apps/variables.yaml. Runtime settings stored in a product database need that product’s backup and administration procedure.

Continue

Read the deployment guide for dependency order, initial credentials, and integration work. The official documentation explains the upstream product; the topology above describes this repository.