Storage
Aether clusters come with persistent storage ready to use. You don’t
pre-provision disks — just create a PersistentVolumeClaim and a volume is
provisioned on demand.
StorageClasses
Section titled “StorageClasses”Every cluster ships with two StorageClasses:
| StorageClass | Type | Access | Expandable |
|---|---|---|---|
aether-block |
Block storage | ReadWriteOnce — one node at a time |
Yes |
aether-shared |
Shared filesystem | ReadWriteMany — many nodes at once |
No |
aether-block is the default, so a PVC with no storageClassName uses it.
List them on your cluster with:
kubectl get storageclassBlock storage — aether-block
Section titled “Block storage — aether-block”The everyday choice: block devices for databases, queues, and anything else that
wants a disk of its own. A volume attaches to one node at a time
(ReadWriteOnce), and it can be expanded later by editing the PVC’s
requested size.
With no storageClassName, a PVC uses it:
apiVersion: v1kind: PersistentVolumeClaimmetadata: name: dataspec: accessModes: - ReadWriteOnce resources: requests: storage: 10GiA volume is provisioned automatically and bound to the claim. Mount it in a pod like any other PVC.
Deleting the PVC deletes the volume and its data. If you need the data to survive an accidental claim deletion, take your own backup or copy the data out before deleting — don’t rely on the claim sticking around.
Shared filesystem — aether-shared
Section titled “Shared filesystem — aether-shared”When several pods — potentially on different nodes — need to read and write the
same files, use aether-shared. It’s a shared filesystem, so it supports
ReadWriteMany:
apiVersion: v1kind: PersistentVolumeClaimmetadata: name: shared-dataspec: storageClassName: aether-shared accessModes: - ReadWriteMany resources: requests: storage: 20GiTwo things to know about it:
- Provisioning is asynchronous. The claim stays
Pendingfor a short while — typically a few tens of seconds — while Aether creates the backing share. That’s expected; the PVC binds once it’s ready. - Volumes can’t be expanded after creation. Size the claim for what you’ll need.
Snapshots
Section titled “Snapshots”Volume snapshots are not available on tenant clusters today. A snapshot rate
(€0.05 per GB per month) exists in the rate card, but there is nothing to meter:
you cannot take a snapshot of an aether-block or aether-shared volume, and no
snapshot line appears on your invoice. Plan your data protection around the
section below rather than around snapshots.
Backups are yours
Section titled “Backups are yours”This is the part to be clear about before you put data on a volume:
- Aether backs up your cluster’s control-plane datastore — the Kubernetes state of the cluster — with continuous write-ahead-log archiving.
- Aether does not back up your application data or your persistent volumes.
Nothing on an
aether-blockoraether-sharedvolume is captured by the platform’s backups. - You own PV backups. Run the backup tool of your choice inside your cluster, or copy data out to storage you control.
Because deleting a PVC deletes its volume and its data, a backup you control is the only thing that survives an accidental deletion.
What storage costs
Section titled “What storage costs”Persistent volumes are billed separately from the worker node’s own disk:
| StorageClass | Billed on | Rate |
|---|---|---|
aether-block |
Provisioned size | €0.15 per GiB per month |
aether-shared |
Used bytes | €0.18 per GiB per month |
- Block storage: charged for the provisioned capacity, regardless of how much data is stored.
- Shared storage: charged for actual usage observed at billing measurement time, because capacity is not hard-quota limited.
Prices exclude VAT; the VAT treatment is shown on your invoice. The worker VM’s own disk (sized per node pool) is priced separately as part of the node — see the Billing model.
Persistent volumes are measured in GiB (1 GiB = 1024³ bytes — the unit
Kubernetes itself reports, and the unit your PVC’s 10Gi request is in). Node
disk is the size you type per node in GB, and it is part of the node’s
price rather than a persistent volume. Registry storage is per started GiB.
Snapshot pricing is per GB, but snapshots are unavailable and unmetered.
How it is measured
Section titled “How it is measured”Once every clock hour (UTC), at the same minute of each hour (which changes if the metering service restarts), Aether observes what exists and charges that hour at the monthly rate ÷ 730. There is no monthly maximum and no monthly average: the month’s charge is the sum of its hourly observations, so a volume that exists for a whole 31-day month costs 744/730 of the monthly rate — about 1.9 % more — and one that exists for a day costs about a thirtieth of it. The first observation for an hour is the one that counts, and a volume deleted at 10:40 is last billed for the hour whose observation still saw it.
aether-block— each volume’s provisioned size, rounded up to a whole GiB per volume, then summed. Expanding a PVC bills the new size from the next hourly observation. Because it is the provisioned size, a 100 GiB volume holding 2 GiB of data still costs 100 GiB.aether-shared— the used bytes of all shared volumes in the cluster, summed and rounded up once per cluster per hour. Deleting data lowers the next observation.
Worked through:
- A 100 GiB
aether-blockvolume created at 09:10 and deleted at 15:50 the same day. Depending on where the sampler’s minute falls, it is observed six or seven times: seven gives 7 × 100 GiB × €0.15 ÷ 730 = €0.14, six gives €0.12. - A 100 GiB
aether-blockvolume expanded to 200 GiB after 15 days of a 31-day month. (360 h × 100 + 384 h × 200) × €0.15 ÷ 730 = €23.18. - An
aether-sharedvolume holding 50 GiB for 400 hours, then 10 GiB after a cleanup for the month’s remaining 344 hours. (400 × 50 + 344 × 10) × €0.18 ÷ 730 = €5.78.
See the Billing model for the same rules alongside registry storage.
Next steps
Section titled “Next steps”- Container registry — push and pull your container images.