Skip to content

Commit 2e9d39b

Browse files
committed
Deploy Longhorn on Azure Cobalt 100 Arm64 virtual machines
Signed-off-by: odidev <odidev@puresoftware.com>
1 parent 09debb2 commit 2e9d39b

17 files changed

Lines changed: 792 additions & 0 deletions
Lines changed: 65 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,65 @@
1+
---
2+
title: Deploy Longhorn on Azure Cobalt 100 Arm64 virtual machines for Kubernetes persistent storage
3+
4+
description: Learn how to install and configure Longhorn on an Azure Cobalt 100 Arm64 virtual machine, deploy Kubernetes persistent storage using K3s, create Persistent Volumes, and benchmark storage performance for cloud-native workloads.
5+
6+
minutes_to_complete: 60
7+
8+
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.
9+
10+
learning_objectives:
11+
- Install and configure K3s Kubernetes on Azure Cobalt 100 Arm64 virtual machines
12+
- Deploy and configure Longhorn distributed block storage on Arm64
13+
- Create and manage Kubernetes Persistent Volumes using Longhorn
14+
- Benchmark Kubernetes storage performance using fio
15+
16+
prerequisites:
17+
- A [Microsoft Azure account](https://azure.microsoft.com/) with access to Cobalt 100 based instances (Dpsv6)
18+
- Basic knowledge of Linux command-line operations
19+
- Familiarity with SSH and remote server access
20+
- Basic understanding of Kubernetes and containerized workloads
21+
22+
author: Pareena Verma
23+
24+
### Tags
25+
skilllevels: Introductory
26+
subjects: Containers and Virtualization
27+
cloud_service_providers:
28+
- Microsoft Azure
29+
30+
armips:
31+
- Neoverse
32+
33+
tools_software_languages:
34+
- Longhorn
35+
- Kubernetes
36+
- K3s
37+
- fio
38+
39+
operatingsystems:
40+
- Linux
41+
42+
further_reading:
43+
- resource:
44+
title: Longhorn Official Website
45+
link: https://longhorn.io/
46+
type: website
47+
- resource:
48+
title: Longhorn Documentation
49+
link: https://longhorn.io/docs/
50+
type: documentation
51+
- resource:
52+
title: K3s Documentation
53+
link: https://docs.k3s.io/
54+
type: documentation
55+
- resource:
56+
title: Azure Cobalt 100 processors
57+
link: https://techcommunity.microsoft.com/blog/azurecompute/announcing-the-preview-of-new-azure-vms-based-on-the-azure-cobalt-100-processor/4146353
58+
type: documentation
59+
60+
### FIXED, DO NOT MODIFY
61+
# ================================================================================
62+
weight: 1
63+
layout: "learningpathall"
64+
learning_path_main_page: "yes"
65+
---
Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
---
2+
# ================================================================================
3+
# FIXED, DO NOT MODIFY THIS FILE
4+
# ================================================================================
5+
weight: 21 # Set to always be larger than the content in this path to be at the end of the navigation.
6+
title: "Next Steps" # Always the same, html page title.
7+
layout: "learningpathall" # All files under learning paths have this same wrapper for Hugo processing.
8+
---
Lines changed: 59 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,59 @@
1+
---
2+
title: Understand Longhorn on Azure Cobalt 100
3+
4+
weight: 2
5+
6+
layout: "learningpathall"
7+
---
8+
9+
## Why run Longhorn on Azure Cobalt 100
10+
11+
Longhorn on Arm-based Azure Cobalt 100 processors provides lightweight, Kubernetes-native distributed storage for cloud-native workloads running on Arm64 infrastructure.
12+
13+
Azure Cobalt 100 processors deliver dedicated physical cores per vCPU, providing predictable and consistent performance for Kubernetes storage workloads. This architecture complements Longhorn’s distributed block storage model and helps deliver stable storage performance for stateful applications running on Kubernetes.
14+
15+
Longhorn enables persistent storage for Kubernetes workloads such as databases, analytics platforms, monitoring stacks, and stateful cloud-native applications running on Azure Cobalt 100 Arm64 virtual machines.
16+
17+
## Azure Cobalt 100 Arm-based processor
18+
19+
Azure’s Cobalt 100 is Microsoft’s first-generation, in-house Arm-based processor. Built on Arm Neoverse N2, Cobalt 100 is a 64-bit CPU that delivers strong performance and energy efficiency for cloud-native, scale-out Linux workloads.
20+
21+
These workloads include:
22+
23+
- Kubernetes platforms
24+
- Containerized applications
25+
- Open-source databases
26+
- Data analytics systems
27+
- Storage and caching platforms
28+
29+
Running at 3.4 GHz, Cobalt 100 allocates a dedicated physical core for each vCPU, ensuring predictable and consistent workload performance.
30+
31+
To learn more, see the Microsoft blog [Announcing the preview of new Azure VMs based on the Azure Cobalt 100 processor](https://techcommunity.microsoft.com/blog/azurecompute/announcing-the-preview-of-new-azure-vms-based-on-the-azure-cobalt-100-processor/4146353).
32+
33+
## How Longhorn improves Kubernetes storage
34+
35+
Longhorn is an open-source cloud-native distributed block storage platform designed specifically for Kubernetes environments.
36+
37+
It provides persistent storage volumes for Kubernetes workloads and enables applications to retain data independently of container or pod lifecycle events.
38+
39+
Longhorn integrates directly with Kubernetes through the Container Storage Interface (CSI) and provides dynamic volume provisioning, storage management, and persistent storage capabilities for stateful workloads.
40+
41+
To learn more, see the official [Longhorn documentation](https://longhorn.io/docs/).
42+
43+
Longhorn provides several important capabilities for Kubernetes storage management:
44+
45+
- Persistent Volumes: Dynamically provisions Kubernetes Persistent Volumes for stateful workloads.
46+
- Distributed Storage: Replicates and manages block storage volumes across Kubernetes nodes.
47+
- CSI Integration: Integrates natively with Kubernetes using the Container Storage Interface.
48+
- Snapshot and Backup Support: Supports volume snapshots and backup operations for Kubernetes workloads.
49+
- Stateful Workload Support: Enables databases, monitoring stacks, and analytics applications to run with persistent storage.
50+
51+
Longhorn is widely used in Kubernetes environments to provide lightweight and reliable storage without requiring external SAN or NAS infrastructure.
52+
53+
In this Learning Path, you'll deploy Longhorn on an Azure Cobalt 100 Arm64 virtual machine using K3s Kubernetes. You'll configure Longhorn for a single-node Kubernetes cluster, create Persistent Volumes, validate storage persistence, and benchmark storage performance using fio.
54+
55+
## What you've learned and what's next
56+
57+
You now understand why Azure Cobalt 100 and Longhorn are a strong combination for Kubernetes-native persistent storage on Arm64 infrastructure.
58+
59+
Next, you'll configure Azure networking and firewall rules, install K3s Kubernetes, deploy Longhorn, and begin creating Persistent Volumes for Kubernetes workloads.
Lines changed: 65 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,65 @@
1+
---
2+
title: Allow access to the Longhorn Web UI on Azure
3+
weight: 4
4+
5+
### FIXED, DO NOT MODIFY
6+
layout: learningpathall
7+
---
8+
9+
## Configure external traffic for Longhorn and Kubernetes
10+
11+
To allow external traffic for the Longhorn Web UI and Kubernetes services on an Azure virtual machine, open the required ports in the Network Security Group (NSG). The NSG can be attached to the virtual machine's network interface or subnet.
12+
13+
{{% notice Note %}}For more information about Azure setup, see [Getting started with Microsoft Azure Platform](/learning-paths/servers-and-cloud-computing/csp/azure/).{{% /notice %}}
14+
15+
16+
### Add inbound firewall rules in Azure
17+
18+
To expose the required TCP ports for Kubernetes and Longhorn, create an inbound firewall rule.
19+
20+
1. Navigate to the [Azure portal](https://portal.azure.com), go to **Virtual Machines**, and select your virtual machine.
21+
22+
![Azure Portal Virtual Machines page with the target VM selected. Verify that the correct Azure Cobalt 100 virtual machine is selected before configuring network access.#center](images/virtual_machine.png "Azure Virtual Machine")
23+
24+
2. In the left menu, select **Networking**, then select **Network settings**.
25+
26+
![Azure Portal Networking page showing the network settings linked to the Azure virtual machine. Use this page to manage inbound firewall rules for Kubernetes and Longhorn access.#center](images/networking.png "Azure Networking Settings")
27+
28+
3. Navigate to **Create port rule**, and select **Inbound port rule**.
29+
30+
![Azure Portal Create port rule menu with Inbound port rule selected. Use this option to allow external traffic for Longhorn and Kubernetes services.#center](images/port_rule.png "Create Inbound Port Rule")
31+
32+
4. Configure the inbound security rule with the following settings:
33+
34+
- **Source:** My IP address
35+
- **Source IP addresses:** *(auto-populated with your current public IP)*
36+
- **Source port ranges:** *
37+
- **Destination:** Any
38+
- **Destination port ranges:** **80,8080,6443**
39+
- **Protocol:** TCP
40+
- **Action:** Allow
41+
- **Name:** allow-longhorn-kubernetes
42+
43+
This rule allows external access for:
44+
45+
- Port `80` → HTTP workloads
46+
- Port `8080` → Longhorn Web UI
47+
- Port `6443` → Kubernetes API server
48+
49+
{{% notice Note %}}Setting **Source** to **My IP address** restricts access to these ports to your current machine only. If your public IP address changes or you access the environment from another system, update the source IP in the NSG rule accordingly.{{% /notice %}}
50+
51+
5. After filling in the details, select **Add** to save the rule.
52+
53+
You can now access the Longhorn Web UI externally using:
54+
55+
```text
56+
http://<PUBLIC_IP>:8080
57+
```
58+
59+
## What you've learned and what's next
60+
61+
You've now configured the Azure Network Security Group to allow external traffic for SSH, Kubernetes API access, HTTP workloads, and the Longhorn Web UI.
62+
63+
These firewall rules allow secure remote management of the Azure Cobalt 100 virtual machine and external access to the Kubernetes storage dashboard.
64+
65+
Next, you'll create Persistent Volume Claims, deploy workloads using Longhorn storage, and benchmark Kubernetes storage performance on ARM64 infrastructure.
38.8 KB
Loading
68.7 KB
Loading
84 KB
Loading
105 KB
Loading
94.8 KB
Loading
92 KB
Loading

0 commit comments

Comments
 (0)