Use Longhorn to deploy persistent storage for Kubernetes workloads on Arm-based Azure virtual machines
Introduction
Understand Longhorn on Azure Cobalt 100
Create an Arm64 Azure virtual machine powered by Azure Cobalt 100
Allow network access to the Longhorn Web UI on Azure
Install and run Longhorn on a single-node Kubernetes cluster
Validate persistent Kubernetes storage and benchmark Longhorn with fio
Next Steps
Use Longhorn to deploy persistent storage for Kubernetes workloads on Arm-based Azure virtual machines
Introduction
Understand Longhorn on Azure Cobalt 100
Create an Arm64 Azure virtual machine powered by Azure Cobalt 100
Allow network access to the Longhorn Web UI on Azure
Install and run Longhorn on a single-node Kubernetes cluster
Validate persistent Kubernetes storage and benchmark Longhorn with fio
Next Steps
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
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.
fio against the volume to capture baseline storage metrics.Frequently asked questions
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.
/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.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.Ready, the Longhorn pods report Running, and the longhorn StorageClass is available. Confirm that the Longhorn interface also loads in your browser.storageClassName: longhorn in your manifest. Your PersistentVolumeClaim should bind when the longhorn StorageClass is available.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.