You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: content/learning-paths/servers-and-cloud-computing/longhorn-cobalt/firewall.md
+2-8Lines changed: 2 additions & 8 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -50,16 +50,10 @@ This rule allows external access for:
50
50
51
51
5. After filling in the details, select **Add** to save the rule.
52
52
53
-
You can now access the Longhorn Web UI externally using:
54
-
55
-
```text
56
-
http://<PUBLIC_IP>:8080
57
-
```
58
-
59
53
## What you've learned and what's next
60
54
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.
55
+
You've now configured the Azure Network Security Group to allow external traffic for Kubernetes API access, HTTP workloads, and the Longhorn Web UI.
62
56
63
57
These firewall rules allow secure remote management of the Azure Cobalt 100 virtual machine and external access to the Kubernetes storage dashboard.
64
58
65
-
Next, you'll create Persistent Volume Claims, deploy workloads using Longhorn storage, and benchmark Kubernetes storage performance on ARM64 infrastructure.
59
+
Next, you'll install K3s Kubernetes and Longhorn on the virtual machine, then deploy and configure persistent storage.
If the ROLES column shows `<none>` immediately after installation, wait 30 to 60 seconds and run the command again. Role labels are applied after the node completes initialization.
89
+
{{% /notice %}}
90
+
86
91
### Configure kubectl access
87
92
88
93
Create the Kubernetes configuration directory for the current user.
@@ -129,45 +134,39 @@ NAME STATUS ROLES AGE VERSION
Create a local directory that Longhorn can use for storing volume replicas on the VM.
135
-
136
-
```bash
137
-
sudo mkdir -p /longhorn
138
-
```
139
-
140
-
Set permissions for the directory:
141
-
142
-
```bash
143
-
sudo chmod 777 /longhorn
144
-
```
137
+
### Check available disk space
145
138
146
-
Verify available disk space:
139
+
Verify that enough disk space is available on the virtual machine before creating Longhorn volumes. Longhorn stores volume replicas in `/var/lib/longhorn` by default.
147
140
148
141
```bash
149
142
df -h
150
143
```
151
144
152
-
This helps confirm that enough disk space is available before creating Longhorn volumes.
153
-
154
145
### Install Longhorn
155
146
156
147
Deploy Longhorn into the Kubernetes cluster using the official Longhorn manifest.
157
148
149
+
{{% notice Note %}}
150
+
The following command uses Longhorn version 1.10.0. The same approach works with other versions. Replace the version in the URL with your version of choice. To find the latest version, see [Longhorn releases on GitHub](https://github.com/longhorn/longhorn/releases).
Check the Longhorn pods in the `longhorn-system` namespace.
159
+
Longhorn deploys several components including the manager, driver, UI, and CSI controllers. These take several minutes to fully start. Monitor the pod rollout in the `longhorn-system` namespace.
165
160
166
161
```bash
167
-
kubectl get pods -n longhorn-system
162
+
kubectl rollout status deployment/longhorn-driver-deployer -n longhorn-system
168
163
```
169
164
170
-
Wait until the pods are running. The output is similar to:
165
+
Once the deployment is ready, check that all Longhorn pods are running.
Expose the Longhorn frontend service using port forwarding.
195
+
Expose the Longhorn frontend service using port forwarding. Run this command in a dedicated terminal session, as it must remain active while you use the dashboard.
The port-forward connection closes when the terminal session ends. If you lose access to the dashboard, run the command again in a new terminal.
203
+
{{% /notice %}}
204
+
202
205
Open the Longhorn Web UI in your browser. Replace `<PUBLIC_IP>` with the public IP address of your Azure VM.
203
206
204
207
```text
@@ -211,32 +214,9 @@ In the Longhorn dashboard, you can view the number of volumes, available schedul
211
214
212
215
### Configure Longhorn for a single-node cluster
213
216
214
-
By default, Longhorn expects multiple nodes and uses a higher replica count. Since this learning path uses a single Azure Cobalt 100 VM, configure the replica count as `1`.
215
-
216
-
Inside the Longhorn UI, go to:
217
-
218
-
```text
219
-
Settings
220
-
```
221
-
222
-
Find the following setting:
223
-
224
-
```text
225
-
Default Replica Count
226
-
```
227
-
228
-
Update the values:
229
-
230
-
```text
231
-
V1 Data Engine: 1
232
-
V2 Data Engine: 1
233
-
```
234
-
235
-
Click:
217
+
By default, Longhorn expects multiple nodes and uses a higher replica count. Since this Learning Path uses a single Azure Cobalt 100 VM, configure the replica count to `1` so that volumes can be scheduled on a single node.
236
218
237
-
```text
238
-
Save
239
-
```
219
+
In the Longhorn UI, select **Settings**. Find the **Default Replica Count** setting and set both **V1 Data Engine** and **V2 Data Engine** to `1`. Select **Save**.
240
220
241
221

Copy file name to clipboardExpand all lines: content/learning-paths/servers-and-cloud-computing/longhorn-cobalt/instance.md
+2-2Lines changed: 2 additions & 2 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -61,6 +61,6 @@ Your virtual machine should be ready and running in a few minutes. You can SSH i
61
61
62
62
## What you've accomplished and what's next
63
63
64
-
You've created an Azure Cobalt 100 Arm64 virtual machine running Ubuntu 24.04 LTS with K3s Kubernetes installed and networking configured for Longhorn access. The Kubernetes environment is now ready for deploying and managing persistent storage workloads.
64
+
You've created an Azure Cobalt 100 Arm64 virtual machine running Ubuntu 24.04 LTS with SSH and HTTP access configured. The virtual machine is now ready for the next steps.
65
65
66
-
Next, you'll install Longhorn on the Kubernetes cluster, configure the Longhorn Web UI, create Persistent Volumes, and validate Kubernetes-native storage functionality on Azure Cobalt 100 Arm64 infrastructure.
66
+
Next, you'll open the additional ports required for Kubernetes and Longhorn access in the Azure Network Security Group.
Copy file name to clipboardExpand all lines: content/learning-paths/servers-and-cloud-computing/longhorn-cobalt/longhorn-storage-validation-and-benchmark.md
+6-8Lines changed: 6 additions & 8 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -197,7 +197,7 @@ The fio pod will install the benchmarking utility and keep the container running
197
197
198
198
### Open fio container shell
199
199
200
-
Open a shell inside the fio container.
200
+
Open a shell inside the fio container. The following commands in this section run inside the container, not on the host VM.
The benchmark validates storage performance and confirms that Longhorn volumes are functioning correctly on the Azure Cobalt 100 Arm64 virtual machine.
247
+
After the benchmark completes, exit the container shell.
248
248
249
-
You should observe:
249
+
```bash
250
+
exit
251
+
```
250
252
251
-
- PVC successfully provisioned
252
-
- Longhorn storage mounted correctly
253
-
- Data persists after pod recreation
254
-
- fio benchmark completes successfully
255
-
- Stable storage performance on Arm64 Kubernetes
253
+
The benchmark confirms that Longhorn volumes are functioning correctly on the Azure Cobalt 100 Arm64 virtual machine.
0 commit comments