Who is this for?

This is an introductory topic for developers, DevOps engineers, platform engineers, and Kubernetes administrators who want to deploy persistent storage for Kubernetes workloads using Longhorn on Arm-based cloud infrastructure.

What will you learn?

Upon completion of this Learning Path, you will be able to:

  • Install and configure K3s Kubernetes on an Arm64 Azure virtual machine (VM) powered by Azure Cobalt 100.
  • Install and configure Longhorn distributed block storage on Arm64.
  • Create and manage Kubernetes persistent volumes using Longhorn.
  • Benchmark Kubernetes storage performance using fio.

Prerequisites

Before starting, you will need the following:

  • A Microsoft Azure account with access to Cobalt 100-based instances (Dpsv6)
  • Basic knowledge of Linux command-line operations
  • Familiarity with SSH and remote server access
  • Basic understanding of Kubernetes and containerized workloads

Summary

AI-assisted

This summary was drafted with an approved AI-assisted workflow and reviewed by Arm contributors before publication. Human technical review remains part of the process so the final page reflects engineering rigor, accuracy, and Arm editorial standards.

Close
?
You’ll deploy Longhorn-backed persistent storage on an Azure VM powered by Cobalt 100. First, you’ll provision a Dpsv6 VM, configure network access, and set up a single-node K3s cluster with the required iSCSI utilities. Then, you’ll install Longhorn, attach a PersistentVolumeClaim to a workload, and verify that its data survives pod recreation. Finally, you’ll run fio against the volume to capture baseline storage metrics.

Frequently asked questions

AI-assisted

These FAQs were drafted with an approved AI-assisted workflow and reviewed by Arm contributors before publication. Human technical review remains part of the process so the final page reflects engineering rigor, accuracy, and Arm editorial standards.

Close
?
How can I verify that data persists after I recreate the pod?
Write data to /usr/share/nginx/html/index.html in the running NGINX container. Delete and recreate the pod, then use kubectl exec to read the file. If the original content appears, the data persisted on the Longhorn-backed volume.
What network configuration do I need to access the Longhorn web UI?
Add an inbound network security group rule for TCP ports 80, 8080, and 6443. Apply the rule to the VM’s network interface or subnet, then use the VM’s IP address and port 8080 while the Longhorn port-forward command is running.
How do I know K3s and Longhorn are ready to use?
Check that the Kubernetes node reports Ready, the Longhorn pods report Running, and the longhorn StorageClass is available. Confirm that the Longhorn interface also loads in your browser.
Which StorageClass name should I use in my PersistentVolumeClaim?
Set storageClassName: longhorn in your manifest. Your PersistentVolumeClaim should bind when the longhorn StorageClass is available.
What result should I expect when running fio on the Longhorn-backed volume?
Confirm that fio completes without errors and prints throughput, input/output operations per second (IOPS), and latency metrics. Use this output as a baseline for later runs in your environment.
Next