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: docs/hardware_ready/ADRs/Longhorn_as_storage_solution.md
+8-14Lines changed: 8 additions & 14 deletions
Original file line number
Diff line number
Diff line change
@@ -8,28 +8,27 @@ date: "2025-03-18"
8
8
| --- | --- | --- |
9
9
| approved | 2025-03-18 | Sofus Albertsen |
10
10
11
-
12
11
## Context and Problem Statement
13
12
14
13
### Do i need it?
15
14
16
15
Even though Kubernetes (and their Container Storage Interface) is production ready for persistency and statefull workloads, keeping your cluster stateless have several advantages:
17
16
18
17
* Dead simple disaster recovery (and duplication) of your cluster: everything is defined as code, so (re)creating a cluster is as easy as running your setupscripts once more and wait for everything to come up.
19
-
* Backup and restore has never been simple, and Kubernetes is not solving this for you.
18
+
* Backup and restore has never been simple, and Kubernetes is not solving this for you.
20
19
21
20
At it's core, we want stateless [cloud native applications](https://kodekloud.com/blog/cloud-native-principles-explained/).
22
21
Remember the distinction between the need for persistency and ephemeral storage; your chaching service needs ephemeral storage, but does not need backup/restore of said data. Those are perfectly fitting for Kubernetes.
23
22
24
-
Often time your Database is sitting on some special hardware, and is catered to by specialized competences.
23
+
Often time your Database is sitting on some special hardware, and is catered to by specialized competences.
25
24
Keep it that way, and connect to the database from your cluster.
26
25
27
26
### What are the criterias for choosing this?
28
27
29
28
***Performance Requirements:** What are the expected Input/Output Operations Per Second (IOPS) that your applications will demand? What about throughput?
30
29
***Scalability Needs:** Are you able to add storage seamlessly after the initial creation?
31
30
***Data Availability and Durability:** What are you requrements to replica's, time to recover etc.
32
-
***Team Expertise and Comfort Level:** What is your team's existing knowledge and experience with the specific storage solutions you are considering?
31
+
***Team Expertise and Comfort Level:** What is your team's existing knowledge and experience with the specific storage solutions you are considering?
33
32
34
33
### What are our weights for making a choice?
35
34
@@ -39,7 +38,6 @@ Therefore, the primary weight is; if you have a storage solution that already su
39
38
40
39
Secondary, it is the complexity introduced that we will focus on.
41
40
42
-
43
41
## Considered Options
44
42
45
43
***Longhorn:** A lightweight, reliable, and easy-to-use distributed block storage system for Kubernetes. It's built by Rancher (now SUSE). Key features include built-in snapshots, backups, replication, and a user-friendly GUI. It's designed specifically *for* Kubernetes and integrates deeply.
@@ -50,22 +48,18 @@ Secondary, it is the complexity introduced that we will focus on.
50
48
51
49
***Portworx:** A commercial (paid) storage platform designed for Kubernetes. It offers high performance, high availability, and advanced features like data encryption, storage-level snapshots, and automated scaling. It's a mature and feature-rich solution, but comes with licensing costs.
52
50
53
-
54
51
## Decision Outcome
55
52
56
-
57
-
Chosen option: **Longhorn**, because it provides a good balance of features, ease of use, and integration with Kubernetes, while minimizing the complexity overhead for our team.
53
+
Chosen option: **Longhorn**, because it provides a good balance of features, ease of use, and integration with Kubernetes, while minimizing the complexity overhead for our team.
58
54
59
55
It's a strong, open-source option that aligns well with our focus on simplicity.
60
56
It meets our needs for persistent storage within the cluster without introducing the operational overhead of a more complex solution like Rook/Ceph.
61
57
58
+
Based on different scenarios, the following general recommendations can be made:
62
59
63
-
Based on different scenarios, the following general recommendations can be made:
64
-
65
-
- For organizations that require massive scalability, support for block, object, and file storage within a unified system, and have a team with the necessary expertise to manage a complex distributed storage platform, Ceph/Rook is a powerful option.
66
-
- For users who are looking for a straightforward and reliable distributed block storage solution that is easy to deploy and manage within Kubernetes, especially for smaller to medium-sized environments, Longhorn is an excellent choice.
67
-
- If you lack the required skillset all together, and need a high-performance, feature-rich, and commercially supported solution, and where the licensing costs are justified then Portworx is our recommendation.
68
-
60
+
* For organizations that require massive scalability, support for block, object, and file storage within a unified system, and have a team with the necessary expertise to manage a complex distributed storage platform, Ceph/Rook is a powerful option.
61
+
* For users who are looking for a straightforward and reliable distributed block storage solution that is easy to deploy and manage within Kubernetes, especially for smaller to medium-sized environments, Longhorn is an excellent choice.
62
+
* If you lack the required skillset all together, and need a high-performance, feature-rich, and commercially supported solution, and where the licensing costs are justified then Portworx is our recommendation.
Copy file name to clipboardExpand all lines: docs/software_ready/_index.md
+9-1Lines changed: 9 additions & 1 deletion
Original file line number
Diff line number
Diff line change
@@ -6,4 +6,12 @@ title: Getting your software ready
6
6
7
7
| Problem domain | Description | Reason for importance | Tool recommendation |
8
8
|:---:|:---:|:---:|:---:|
9
-
| Image Registry | A common place to store and fetch images | High availability, secure access control | Harbor |
9
+
| Image Registry | A common place to store and fetch images | High availability, secure access control ||
10
+
| Secret Management | Securely store and manage sensitive information like passwords and API keys | Prevent unauthorized access and data leaks ||
11
+
| Ingress Controller / Gateway API | Manage external access to services in the cluster | Enable routing, load balancing, and secure communication ||
12
+
| GitOps / Deployment Pipelines | Automate application deployments using Git as the source of truth | Ensure consistency, traceability, and faster deployments ||
13
+
| Monitoring Infrastructure | Observe and analyze the health and performance of the cluster and applications | Proactive issue detection and resolution ||
14
+
| Service Mesh | Manage service-to-service communication within the cluster | Enable observability, security, and traffic control ||
15
+
| Network Policies | Define rules for communication between pods and services | Enhance security by restricting unauthorized traffic ||
16
+
| Authorization Integration | Manage user and service access to cluster resources | Enforce role-based access control and compliance ||
17
+
| Container Scanning | Identify vulnerabilities in container images | Ensure secure and compliant deployments ||
0 commit comments