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/openebs-cobalt/background.md
+1-1Lines changed: 1 addition & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -63,4 +63,4 @@ You'll learn how to:
63
63
64
64
You now understand why Azure Cobalt 100 and OpenEBS are a strong combination for lightweight Kubernetes-native persistent storage on Arm64 infrastructure.
65
65
66
-
Next, you'll configure Azure networking to allow external access to the Kubernetes application deployed with OpenEBS persistent storage.
66
+
Next, you'll create an Azure Cobalt 100 Arm64 virtual machine to host the Kubernetes cluster.
Copy file name to clipboardExpand all lines: content/learning-paths/servers-and-cloud-computing/openebs-cobalt/firewall.md
+24-10Lines changed: 24 additions & 10 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,6 +1,6 @@
1
1
---
2
2
title: Allow access to the OpenEBS application on Azure
3
-
weight: 5
3
+
weight: 6
4
4
5
5
### FIXED, DO NOT MODIFY
6
6
layout: learningpathall
@@ -14,9 +14,9 @@ The NSG can be attached to the virtual machine's network interface or subnet.
14
14
15
15
{{% notice Note %}}For more information about Azure setup, see [Getting started with Microsoft Azure Platform](/learning-paths/servers-and-cloud-computing/csp/azure/).{{% /notice %}}
16
16
17
-
## Verify the Kubernetes service
17
+
## Identify the Kubernetes NodePort
18
18
19
-
Check the Kubernetes serviceto identify the exposed NodePort:
19
+
In the previous step you exposed the NGINX deployment as a NodePort service. Run the following command on your VM to find the port that Kubernetes assigned.
20
20
21
21
```bash
22
22
kubectl get svc
@@ -29,7 +29,7 @@ NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S)
In this example, the NodePort exposed externally is `31635`.
32
+
In this example, the NodePort exposed externally is `31635`. Kubernetes assigns this port dynamically, so your value may differ. Use the port shown in your own output in the firewall rule below.
33
33
34
34
### Add an inbound firewall rule in Azure
35
35
@@ -53,7 +53,7 @@ To expose the Kubernetes NodePort externally, create a firewall rule.
53
53
-**Source IP addresses:***(auto-populated with your current public IP)*
54
54
-**Source port ranges:** *
55
55
-**Destination:** Any
56
-
-**Destination port ranges:****31635**
56
+
-**Destination port ranges:****31635***(replace with your actual NodePort)*
57
57
-**Protocol:** TCP
58
58
-**Action:** Allow
59
59
-**Name:** allow-openebs-port
@@ -62,12 +62,26 @@ To expose the Kubernetes NodePort externally, create a firewall rule.
62
62
63
63
5. After filling in the details, select **Add** to save the rule.
64
64
65
-
You can now access the Kubernetes application externally using the NodePort.
65
+
## Access the application
66
66
67
-
## What you've learned and what's next
67
+
Open the following URL in your browser. Replace `<VM_PUBLIC_IP>` with the public IP address of your Azure virtual machine, and replace `31635` with your actual NodePort if it differs.
68
68
69
-
You've now configured the Azure Network Security Group to allow external access to the Kubernetes application running with OpenEBS LocalPV persistent storage.
69
+
```text
70
+
http://<VM_PUBLIC_IP>:31635
71
+
```
72
+
73
+
You should see the content written to the Persistent Volume in the previous step:
74
+
75
+
```output
76
+
OpenEBS on Azure Cobalt D4ps Arm64
77
+
```
78
+
79
+

80
+
81
+
## What you've learned
82
+
83
+
You've configured the Azure Network Security Group to allow external access to the Kubernetes application running with OpenEBS LocalPV persistent storage, and confirmed that the application is reachable from your browser.
70
84
71
-
This firewall rule enables external browser access to the application deployed on your single-node Kubernetes cluster running on Azure Cobalt 100 Arm64.
85
+
The persistent data written earlier survived pod recreation and is now served by a stateful NGINX workload backed by OpenEBS on an Azure Cobalt 100 Arm64 virtual machine.
72
86
73
-
Next, you'll install OpenEBS LocalPV on Kubernetes and configure persistent storage provisioning for stateful workloads.
87
+
In this Learning Path, you provisioned an Azure Cobalt 100 Arm64 virtual machine, installed a single-node K3s Kubernetes cluster, deployed OpenEBS LocalPV as the default storage class, created persistent volumes for a stateful application, and validated that data survived pod restarts on Arm64 infrastructure.
This deployment installs only OpenEBS LocalPV components and disables Mayastor, Loki, Alloy, and observability services, which are unnecessary for a single-node setup.
148
155
156
+
{{% notice Note %}}
157
+
The following command installs the latest available OpenEBS chart. To pin to a specific version, add `--version <version>` to the command. To find available versions, run `helm search repo openebs/openebs --versions`.
OpenEBS components take a moment to start. Wait for the pods to become ready before continuing.
172
+
173
+
```bash
174
+
kubectl wait --for=condition=Ready pod -l app=openebs-localpv-provisioner -n openebs --timeout=120s
175
+
```
176
+
177
+
Then check all OpenEBS pods are running.
161
178
162
179
```bash
163
180
kubectl get pods -n openebs
@@ -233,4 +250,4 @@ At this stage, OpenEBS LocalPV is successfully configured and ready to provision
233
250
234
251
You now have a lightweight single-node Kubernetes cluster running on Azure Cobalt 100 Arm64 with OpenEBS LocalPV configured as the default storage class.
235
252
236
-
Next, you'll create Persistent Volume Claims (PVCs), deploy a stateful NGINX application, and validate persistent storage functionality using OpenEBS.
253
+
Next, you'll create a Persistent Volume Claim, deploy a stateful NGINX application, validate data persistence, and expose the application so you can open the required port in the Azure Network Security Group.
Copy file name to clipboardExpand all lines: content/learning-paths/servers-and-cloud-computing/openebs-cobalt/openebs-persistent-storage-validation.md
+20-21Lines changed: 20 additions & 21 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,6 +1,6 @@
1
1
---
2
2
title: Validate Persistent Storage with OpenEBS on Azure Cobalt 100
3
-
weight: 6
3
+
weight: 5
4
4
5
5
### FIXED, DO NOT MODIFY
6
6
layout: learningpathall
@@ -38,6 +38,12 @@ Apply the PVC:
38
38
kubectl apply -f pvc.yaml
39
39
```
40
40
41
+
The output is similar to:
42
+
43
+
```output
44
+
persistentvolumeclaim/openebs-pvc created
45
+
```
46
+
41
47
Verify:
42
48
43
49
```bash
@@ -94,6 +100,11 @@ Deploy the application:
94
100
kubectl apply -f nginx-openebs.yaml
95
101
```
96
102
103
+
The output is similar to:
104
+
```output
105
+
deployment.apps/nginx-openebs created
106
+
```
107
+
97
108
## Verify Kubernetes resources
98
109
99
110
Check the pod status:
@@ -201,15 +212,15 @@ This confirms that the Persistent Volume retains data even after the pod is dele
201
212
202
213
## Expose the application
203
214
204
-
Create a NodePort service:
215
+
Create a NodePort service to expose the NGINX application externally. Kubernetes assigns the external port dynamically — you'll use the assigned port to open the corresponding firewall rule in the next step.
205
216
206
217
```bash
207
218
kubectl expose deployment nginx-openebs \
208
219
--type NodePort \
209
220
--port 80
210
221
```
211
222
212
-
Verify the service:
223
+
Verify the service and note the NodePort assigned.

237
+
Note the NodePort value (in this example `31635`). You'll need it to create the Azure firewall rule in the next step. Your value may differ because Kubernetes assigns NodePorts dynamically.
241
238
242
239
## Cleanup resources
243
240
@@ -257,4 +254,6 @@ kubectl delete -f pvc.yaml
257
254
258
255
You successfully created dynamically provisioned Persistent Volumes using OpenEBS LocalPV on a single-node Kubernetes cluster running on Azure Cobalt 100 Arm64.
259
256
260
-
You validated persistent storage functionality by recreating application pods while preserving data across restarts.
257
+
You validated persistent storage functionality by recreating application pods while preserving data across restarts, and exposed the application as a Kubernetes NodePort service.
258
+
259
+
Next, you'll open the NodePort in the Azure Network Security Group so the application is reachable from your browser.
0 commit comments