{"id":66787,"date":"2022-05-31T18:13:21","date_gmt":"2022-05-31T15:13:21","guid":{"rendered":"https:\/\/www.altoros.com\/blog\/?p=66787"},"modified":"2022-05-31T18:16:40","modified_gmt":"2022-05-31T15:16:40","slug":"longhorn-provides-persistent-storage-for-35000-kubernetes-nodes","status":"publish","type":"post","link":"https:\/\/www.altoros.com\/blog\/longhorn-provides-persistent-storage-for-35000-kubernetes-nodes\/","title":{"rendered":"Longhorn Provides Persistent Storage for 35,000 Kubernetes Nodes"},"content":{"rendered":"<div id=\"ez-toc-container\" class=\"ez-toc-v2_0_79_2 counter-hierarchy ez-toc-counter ez-toc-transparent ez-toc-container-direction\">\n<div class=\"ez-toc-title-container\">\n<p class=\"ez-toc-title\" style=\"cursor:inherit\">Table of Contents<\/p>\n<span class=\"ez-toc-title-toggle\"><a href=\"#\" class=\"ez-toc-pull-right ez-toc-btn ez-toc-btn-xs ez-toc-btn-default ez-toc-toggle\" aria-label=\"Toggle Table of Content\"><span class=\"ez-toc-js-icon-con\"><span class=\"\"><span class=\"eztoc-hide\" style=\"display:none;\">Toggle<\/span><span class=\"ez-toc-icon-toggle-span\"><svg style=\"fill: #999;color:#999\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" class=\"list-377408\" width=\"20px\" height=\"20px\" viewBox=\"0 0 24 24\" fill=\"none\"><path d=\"M6 6H4v2h2V6zm14 0H8v2h12V6zM4 11h2v2H4v-2zm16 0H8v2h12v-2zM4 16h2v2H4v-2zm16 0H8v2h12v-2z\" fill=\"currentColor\"><\/path><\/svg><svg style=\"fill: #999;color:#999\" class=\"arrow-unsorted-368013\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"10px\" height=\"10px\" viewBox=\"0 0 24 24\" version=\"1.2\" baseProfile=\"tiny\"><path d=\"M18.2 9.3l-6.2-6.3-6.2 6.3c-.2.2-.3.4-.3.7s.1.5.3.7c.2.2.4.3.7.3h11c.3 0 .5-.1.7-.3.2-.2.3-.5.3-.7s-.1-.5-.3-.7zM5.8 14.7l6.2 6.3 6.2-6.3c.2-.2.3-.5.3-.7s-.1-.5-.3-.7c-.2-.2-.4-.3-.7-.3h-11c-.3 0-.5.1-.7.3-.2.2-.3.5-.3.7s.1.5.3.7z\"\/><\/svg><\/span><\/span><\/span><\/a><\/span><\/div>\n<nav><ul class='ez-toc-list ez-toc-list-level-1 ' ><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-1\" href=\"https:\/\/www.altoros.com\/blog\/longhorn-provides-persistent-storage-for-35000-kubernetes-nodes\/#The_challenges_with_persistent_storage\" >The challenges with persistent storage<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-2\" href=\"https:\/\/www.altoros.com\/blog\/longhorn-provides-persistent-storage-for-35000-kubernetes-nodes\/#What_is_Longhorn\" >What is Longhorn?<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-3\" href=\"https:\/\/www.altoros.com\/blog\/longhorn-provides-persistent-storage-for-35000-kubernetes-nodes\/#How_it_works\" >How it works<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-4\" href=\"https:\/\/www.altoros.com\/blog\/longhorn-provides-persistent-storage-for-35000-kubernetes-nodes\/#Future_plans\" >Future plans<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-5\" href=\"https:\/\/www.altoros.com\/blog\/longhorn-provides-persistent-storage-for-35000-kubernetes-nodes\/#Want_details_Watch_the_videos\" >Want details? Watch the videos!<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-6\" href=\"https:\/\/www.altoros.com\/blog\/longhorn-provides-persistent-storage-for-35000-kubernetes-nodes\/#Further_reading\" >Further reading<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-7\" href=\"https:\/\/www.altoros.com\/blog\/longhorn-provides-persistent-storage-for-35000-kubernetes-nodes\/#About_the_experts\" >About the experts<\/a><\/li><\/ul><\/nav><\/div>\n<h3><span class=\"ez-toc-section\" id=\"The_challenges_with_persistent_storage\"><\/span>The challenges with persistent storage<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>Containers work well with stateless applications as there is no need to save data. Kubernetes can rapidly create and remove containers, because the applications within the containers are packaged up with all of their dependencies. <\/p>\n<p>However, the dynamic creation and removal of containers can run into problems with stateful apps that require persistent storage. A stateful containerized application must have consistent and reliable access to its data. This means persistent storage cannot easily be created and removed dynamically. (Previously, we&#8217;ve <a href=\"https:\/\/www.altoros.com\/blog\/running-stateful-apps-on-kubernetes-with-statefulsets\/\">written<\/a> about some considerations when running stateful apps on Kubernetes.)<\/p>\n<p><center><a href=\"https:\/\/www.altoros.com\/blog\/wp-content\/uploads\/2022\/05\/Top-Container-Challenges-Cloud-Foundry-Foundation-Kubernetes.png\"><img decoding=\"async\" src=\"https:\/\/www.altoros.com\/blog\/wp-content\/uploads\/2022\/05\/Top-Container-Challenges-Cloud-Foundry-Foundation-Kubernetes-1024x576.png\" alt=\"\" width=\"720\" class=\"aligncenter size-large wp-image-66788\" \/><\/a><small>Persistent storage is a primary concern (<a href=\"https:\/\/www.cloudfoundry.org\/wp-content\/uploads\/2017\/01\/Cloud-Foundry-2016-Container-Report.pdf\" rel=\"noopener\" target=\"_blank\">Image credit<\/a>)<\/small><\/center><\/p>\n<p>During a Rancher Online Meetup, <a href=\"https:\/\/www.linkedin.com\/in\/dnkforever\" rel=\"noopener\" target=\"_blank\">David Ko<\/a> from SUSE highlighted additional challenges related to storage when using Kubernetes:<\/p>\n<ul>\n<li style=\"margin-bottom: 6px;\">Most traditional external storage arrays are expensive and inflexible.<\/li>\n<li>External replication solutions are not application-aware, so replication involves the entire data store, instead of pods and their volumes, increasing recovery time.<\/li>\n<\/ul>\n<div id=\"attachment_66789\" style=\"width: 160px\" class=\"wp-caption alignright\"><a href=\"https:\/\/www.altoros.com\/blog\/wp-content\/uploads\/2022\/05\/David-Ko.png\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-66789\" src=\"https:\/\/www.altoros.com\/blog\/wp-content\/uploads\/2022\/05\/David-Ko-150x150.png\" alt=\"\" width=\"150\" height=\"150\" class=\"size-thumbnail wp-image-66789\" \/><\/a><p id=\"caption-attachment-66789\" class=\"wp-caption-text\"><small>David Ko<\/small><\/p><\/div>\n<blockquote><p>\u201cIf you want to have a storage solution using external storage arrays, there are some factors you need to consider, like location and infrastructure constraints. Also, traditional external storage arrays are not designed for Kubernetes.\u201d <\/p>\n<p>\u2014David Ko, SUSE<\/p><\/blockquote>\n<p>The challenges mentioned above is what <b>Longhorn<\/b>, an incubator project by the Cloud Native Computing Foundation, is looking to resolve.<\/p>\n<p>&nbsp;<\/p>\n<h3><span class=\"ez-toc-section\" id=\"What_is_Longhorn\"><\/span>What is Longhorn?<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p><a href=\"https:\/\/www.altoros.com\/blog\/wp-content\/uploads\/2022\/05\/longhorn-kubernetes-logo.png\"><img decoding=\"async\" src=\"https:\/\/www.altoros.com\/blog\/wp-content\/uploads\/2022\/05\/longhorn-kubernetes-logo-300x62.png\" alt=\"\" width=\"250\" class=\"alignright size-medium wp-image-66806\" \/><\/a><\/p>\n<p><a href=\"https:\/\/longhorn.io\/\" rel=\"noopener\" target=\"_blank\">Longhorn<\/a> is a cloud-native distributed block storage system for Kubernetes, designed to run on top of different types of physical storage devices, infrastructures, and architectures. It was initially developed by Rancher Labs and was accepted as an <a href=\"https:\/\/github.com\/longhorn\/longhorn\" rel=\"noopener\" target=\"_blank\">incubator project<\/a> by the Cloud Native Computing Foundation on October 11, 2019. <\/p>\n<p>Longhorn enables DevOps teams to manage persistent data volumes in any Kubernetes environment, while bringing a vendor-neutral and an enterprise-grade approach to cloud-native storage.<\/p>\n<p>At KubeCon Europe 2020, <a href=\"https:\/\/www.linkedin.com\/in\/shengyang\/\" rel=\"noopener\" target=\"_blank\">Sheng Yang<\/a> from SUSE overviewed some of the design principles behind Longhorn:<\/p>\n<ul>\n<li style=\"margin-bottom: 6px;\">Data is written in <b>multiple replicas<\/b> simultaneously. Even if multiple nodes go down, so long as there is a single replica, data can be recovered.<\/li>\n<li style=\"margin-bottom: 6px;\">While Longhorn is customizable, first-time users can use a <b>one-click installation<\/b> to deploy quickly.<\/li>\n<li style=\"margin-bottom: 6px;\">Recover from the worst scenarios with a single hard drive. Upgrade <b>without interrupting workloads<\/b>.<\/li>\n<\/ul>\n<p><center><a href=\"https:\/\/www.altoros.com\/blog\/wp-content\/uploads\/2022\/05\/Longhorn-Kubernetes-Cloud-Native-Persistent-Storage-Dashboard.png\"><img decoding=\"async\" src=\"https:\/\/www.altoros.com\/blog\/wp-content\/uploads\/2022\/05\/Longhorn-Kubernetes-Cloud-Native-Persistent-Storage-Dashboard-1024x576.png\" alt=\"\" width=\"720\" class=\"aligncenter size-large wp-image-66790\" \/><\/a><small>Longhorn&#8217;s dashboard (<a href=\"https:\/\/github.com\/longhorn\/longhorn\" rel=\"noopener\" target=\"_blank\">Image credit<\/a>)<\/small><\/center><\/p>\n<p>The project enables:<\/p>\n<ul>\n<li style=\"margin-bottom: 6px;\">enterprise-grade distributed block storage software for Kubernetes<\/li>\n<li style=\"margin-bottom: 6px;\">volume thin-provisioning, snapshots, expansion, as well as backup and recovery<\/li>\n<li style=\"margin-bottom: 6px;\">cross-availability-zone replica scheduling<\/li>\n<li style=\"margin-bottom: 6px;\">recurring jobs of snapshot and backup<\/li>\n<li style=\"margin-bottom: 6px;\">cross-cluster disaster recovery volume with defined recovery time objectives (RTO) and recovery point objectives (RPO)<\/li>\n<li style=\"margin-bottom: 6px;\"><code style=\"color: #222222; background-color: #e6e6e6; padding: 1px 2px;\">ReadWriteMany<\/code> (RWX) support<\/li>\n<li>automated nondisruptive software upgrades<\/li>\n<\/ul>\n<div id=\"attachment_66791\" style=\"width: 160px\" class=\"wp-caption alignright\"><a href=\"https:\/\/www.altoros.com\/blog\/wp-content\/uploads\/2022\/05\/Sheng-Yang.png\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-66791\" src=\"https:\/\/www.altoros.com\/blog\/wp-content\/uploads\/2022\/05\/Sheng-Yang-150x150.png\" alt=\"\" width=\"150\" height=\"150\" class=\"size-thumbnail wp-image-66791\" \/><\/a><p id=\"caption-attachment-66791\" class=\"wp-caption-text\"><small>Sheng Yang<\/small><\/p><\/div>\n<blockquote><p>\u201cOur target for Longhorn is to get persistent storage everywhere. Kubernetes is already pretty good at handling stateless workloads, but when it comes to stateful workloads like databases, there are always concerns. Longhorn was developed to address that.\u201d <\/p>\n<p>\u2014Shen Yang, SUSE<\/p><\/blockquote>\n<p>(In this <a href=\"https:\/\/www.altoros.com\/blog\/enabling-persistent-storage-for-docker-and-kubernetes-on-oracle-cloud\/\">blog post<\/a>, you can read how to enable persistent storage using Docker&#8217;s volumes and swarms, as well as Kubernetes PersistentVolumes.)<\/p>\n<p>&nbsp;<\/p>\n<h3><span class=\"ez-toc-section\" id=\"How_it_works\"><\/span>How it works<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>Longhorn has two layers: the data plane and the control plane. The <i>Longhorn Engine<\/i> is a storage controller that corresponds to the data plane. The <i>Longhorn Manager<\/i> corresponds to the control plane.<\/p>\n<p>The Manager pod runs on each node in the Longhorn cluster as a Kubernetes <a href=\"https:\/\/kubernetes.io\/docs\/concepts\/workloads\/controllers\/daemonset\/\" rel=\"noopener\" target=\"_blank\">DaemonSet<\/a>. It is responsible for creating and managing volumes in a Kubernetes cluster.<\/p>\n<p>The Manager communicates with the Kubernetes API server to create a new Longhorn volume customer resource definition (CRD). Next, the Longhorn Manager waits for the API server\u2019s response. When it sees that the Kubernetes API server has created a new Longhorn volume CRD, the Manager creates a new volume.<\/p>\n<p>When making a new volume, the Manager creates a Longhorn Engine instance on the node the volume is attached to. It then creates a replica on each node where a replica will be placed.<\/p>\n<p>\u201cThe process of creating replicas and engines only takes a couple of seconds,\u201d explained Shen. \u201cThat is how fast Longhorn can attach and detach volumes.\u201d<\/p>\n<p><center><a href=\"https:\/\/www.altoros.com\/blog\/wp-content\/uploads\/2022\/05\/Longhorn-Kubernetes-Cloud-Native-Persistent-Storage-Architecture.png\"><img decoding=\"async\" src=\"https:\/\/www.altoros.com\/blog\/wp-content\/uploads\/2022\/05\/Longhorn-Kubernetes-Cloud-Native-Persistent-Storage-Architecture-1024x576.png\" alt=\"\" width=\"720\" class=\"aligncenter size-large wp-image-66793\" \/><\/a><small>Longhorn&#8217;s architecture (<a href=\"https:\/\/static.sched.com\/hosted_files\/kccnceu20\/cf\/KubeConEU_2020_Longhorn.pdf\" rel=\"noopener\" target=\"_blank\">Image credit<\/a>)<\/small><\/center><\/p>\n<p>A Longhorn volume achieves high availability thanks to the multiple data paths of the replicas. Should a problem occur with a certain replica or an engine, the pod will continue to function normally. \u201cEngines and replicas are grouped,\u201d added Shen. \u201cEach group has a contained data path, and they do not interact with each other. This is an advantage of Longhorn\u2019s design.\u201d<\/p>\n<blockquote><p>\u201cThe data path of Longhorn does not interfere with any other volume. If one volume goes down, there is no way to affect other volumes, engines, and replicas. By doing this, we can avoid having a highly available engine for whole clusters. Instead, we have small engines and replicas dedicated to each volume.\u201d \u2014Shen Yang, SUSE<\/p><\/blockquote>\n<p>&nbsp;<\/p>\n<h3><span class=\"ez-toc-section\" id=\"Future_plans\"><\/span>Future plans<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>Since the project was donated to the CNCF in 2019, Longhorn has experienced exponential growth. The project is considered production-ready and is already being used by multiple organizations. For instance, <a href=\"https:\/\/en.wikipedia.org\/wiki\/Cerner\" rel=\"noopener\" target=\"_blank\">Cerner<\/a> (NASDAQ: CERN), a health information technology company, relies on Longhorn for persistent storage and highly available data replication. Another example is <a href=\"http:\/\/www.tre-pa.jus.br\/\" rel=\"noopener\" target=\"_blank\">Tribunal Regional Eleitoral do Par\u00e1<\/a>, the regional electoral court of the state of Par\u00e1, Brazil, which uses Longhorn as the storage back end for Prometheus and other tools.<\/p>\n<blockquote><p>\u201cAfter the CNCF donation, we have seen 15x growth. Across the world, we have 35,000 active nodes that are running Longhorn. The project is not only being used by the open-source community, but also top enterprises, which means Longhorn is ready for production.\u201d \u2014David Ko, SUSE<\/p><\/blockquote>\n<p><center><a href=\"https:\/\/www.altoros.com\/blog\/wp-content\/uploads\/2022\/05\/Longhorn-Kubernetes-Cloud-Native-Persistent-Storage-Roadmap.png\"><img decoding=\"async\" src=\"https:\/\/www.altoros.com\/blog\/wp-content\/uploads\/2022\/05\/Longhorn-Kubernetes-Cloud-Native-Persistent-Storage-Roadmap-1024x576.png\" alt=\"\" width=\"720\" class=\"aligncenter size-large wp-image-66795\" \/><\/a><small>The project&#8217;s roadmap (<a href=\"https:\/\/www.youtube.com\/watch?v=ZE9M3fx2GhU\" rel=\"noopener\" target=\"_blank\">Image credit<\/a>)<\/small><\/center><\/p>\n<p>Longhorn <a href=\"https:\/\/github.com\/longhorn\/longhorn\/releases\/tag\/v1.2.0\" rel=\"noopener\" target=\"_blank\">v1.2<\/a> was released in September 2021. Since then, the community has been working on incremental improvements ahead of v1.3, the next major update.<\/p>\n<p>\u201cFor the upcoming release of Longhorn v1.3, we are trying to enhance and pay more attention to the API interface,\u201d explained David. \u201cNot everyone wants to upgrade from the Longhorn UI, so there needs to be some integrated automation.\u201d<\/p>\n<p>In addition to RWX maturity, some of the other features planned for v1.3 include:<\/p>\n<ul>\n<li>consistent application backup and recovery<\/li>\n<li>storage network support<\/li>\n<\/ul>\n<p>Longhorn is currently on <a href=\"https:\/\/github.com\/longhorn\/longhorn\/releases\/tag\/v1.2.4\" rel=\"noopener\" target=\"_blank\">v1.2.4<\/a>. Anyone interested in the project can track its development in the <a href=\"https:\/\/github.com\/longhorn\/longhorn\" rel=\"noopener\" target=\"_blank\">GitHub repo<\/a>.<\/p>\n<p>&nbsp;<\/p>\n<h3><span class=\"ez-toc-section\" id=\"Want_details_Watch_the_videos\"><\/span>Want details? Watch the videos!<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p><small><a href=\"https:\/\/www.linkedin.com\/in\/shengyang\/\" rel=\"noopener\" target=\"_blank\">Sheng Yang<\/a> provides an overview of Longhorn at KubeCon Europe 2020.<\/small><\/p>\n<p><center><iframe loading=\"lazy\" width=\"560\" height=\"315\" src=\"https:\/\/www.youtube.com\/embed\/zJY2uxLtwUk\" title=\"YouTube video player\" frameborder=\"0\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture\" allowfullscreen><\/iframe><\/center><\/p>\n<p>&nbsp;<br \/>\n<small><a href=\"https:\/\/www.linkedin.com\/in\/dnkforever\" rel=\"noopener\" target=\"_blank\">David Ko<\/a> highlights new features in Longhorn v1.2 at Rancher Online Meetup.<\/small><\/p>\n<p><center><iframe loading=\"lazy\" width=\"560\" height=\"315\" src=\"https:\/\/www.youtube.com\/embed\/ZE9M3fx2GhU\" title=\"YouTube video player\" frameborder=\"0\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture\" allowfullscreen><\/iframe><\/center><\/p>\n<p>&nbsp;<\/p>\n<h3><span class=\"ez-toc-section\" id=\"Further_reading\"><\/span>Further reading<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<ul>\n<li><a href=\"https:\/\/www.altoros.com\/blog\/kubeedge-monitoring-edge-devices-at-the-worlds-longest-sea-bridge\/\">KubeEdge: Monitoring Edge Devices at the World\u2019s Longest Sea Bridge<\/a><\/li>\n<li><a href=\"https:\/\/www.altoros.com\/blog\/running-stateful-apps-on-kubernetes-with-statefulsets\/\">Considerations for Running Stateful Apps on Kubernetes<\/a><\/li>\n<li><a href=\"https:\/\/www.altoros.com\/blog\/enabling-persistent-storage-for-docker-and-kubernetes-on-oracle-cloud\/\">Enabling Persistent Storage for Docker and Kubernetes on Oracle Cloud<\/a><\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<h3><span class=\"ez-toc-section\" id=\"About_the_experts\"><\/span>About the experts<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<div style=\"padding-left: 0px; padding-bottom: 30px; padding-right: 0px; padding-top: 0px;\">\n<p><a href=\"https:\/\/www.altoros.com\/blog\/wp-content\/uploads\/2022\/05\/Sheng-Yang-bio.png\"><img decoding=\"async\" src=\"https:\/\/www.altoros.com\/blog\/wp-content\/uploads\/2022\/05\/Sheng-Yang-bio-150x150.png\" alt=\"\" width=\"120\" class=\"alignright size-thumbnail wp-image-66799\" \/><\/a><\/p>\n<p><small><a href=\"https:\/\/www.linkedin.com\/in\/shengyang\/\" rel=\"noopener\" target=\"_blank\">Sheng Yang<\/a> is Engineering Director at SUSE. He is responsible for Project Harvester and Project Longhorn. Sheng joined SUSE through the Rancher Labs acquisition, where he worked on Longhorn, Harvester, local path provisioner, and other projects. Before that, he worked on the CloudStack project and CloudPlatform product at Citrix. Sheng also spent a few years as a kernel developer at Intel, focused on KVM, Xen, and Linux kernel development.<\/small>\n<\/div>\n<div style=\"padding-left: 0px; padding-bottom: 30px; padding-right: 0px; padding-top: 0px;\">\n<p><a href=\"https:\/\/www.altoros.com\/blog\/wp-content\/uploads\/2022\/05\/David-Ko-bio.png\"><img decoding=\"async\" src=\"https:\/\/www.altoros.com\/blog\/wp-content\/uploads\/2022\/05\/David-Ko-bio-150x150.png\" alt=\"\" width=\"120\" class=\"alignright size-thumbnail wp-image-66800\" \/><\/a><\/p>\n<p><small><a href=\"https:\/\/www.linkedin.com\/in\/dnkforever\" rel=\"noopener\" target=\"_blank\">David Ko<\/a> is Senior Engineering Manager at SUSE. He has over 10 years of software development experience and is familiar with various technologies and techniques\u2014including microservices, distributed system design, CI\/CD, automation, DevOps, container orchestration, and cloud computing. David is also an expert at different programming languages, such as Go, Rust, Java, Python, Groovy, and TypeScript.<\/small>\n<\/div>\n<hr \/>\n<p><center><small>This blog post was written by <a href=\"https:\/\/www.altoros.com\/blog\/author\/carlo\/\">Carlo Gutierrez<\/a> and edited by <a href=\"https:\/\/www.altoros.com\/blog\/author\/sophie-turol\/\">Sophia Turol<\/a>.<\/small><\/center><\/p>\n","protected":false},"excerpt":{"rendered":"<p>The challenges with persistent storage<\/p>\n<p>Containers work well with stateless applications as there is no need to save data. Kubernetes can rapidly create and remove containers, because the applications within the containers are packaged up with all of their dependencies. <\/p>\n<p>However, the dynamic creation and removal of containers can run into [&#8230;]<\/p>\n","protected":false},"author":32,"featured_media":66794,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"content-type":"","footnotes":"","_links_to":"","_links_to_target":""},"categories":[7],"tags":[873,912],"class_list":["post-66787","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-news-and-opinion","tag-cloud-native","tag-kubernetes"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v26.6 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Longhorn Provides Persistent Storage for 35,000 Kubernetes Nodes | Altoros<\/title>\n<meta name=\"description\" content=\"With an architecture that uses multiple engines and replicas, this CNCF incubation project addresses the issues with traditional external storage arrays.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.altoros.com\/blog\/longhorn-provides-persistent-storage-for-35000-kubernetes-nodes\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Longhorn Provides Persistent Storage for 35,000 Kubernetes Nodes | Altoros\" \/>\n<meta property=\"og:description\" content=\"The challenges with persistent storage Containers work well with stateless applications as there is no need to save data. Kubernetes can rapidly create and remove containers, because the applications within the containers are packaged up with all of their dependencies. However, the dynamic creation and removal of containers can run into [...]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.altoros.com\/blog\/longhorn-provides-persistent-storage-for-35000-kubernetes-nodes\/\" \/>\n<meta property=\"og:site_name\" content=\"Altoros\" \/>\n<meta property=\"article:published_time\" content=\"2022-05-31T15:13:21+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2022-05-31T15:16:40+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.altoros.com\/blog\/wp-content\/uploads\/2022\/05\/Longhorn-Kubernetes-Cloud-Native-Persistent-Storage.gif\" \/>\n\t<meta property=\"og:image:width\" content=\"1280\" \/>\n\t<meta property=\"og:image:height\" content=\"720\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/gif\" \/>\n<meta name=\"author\" content=\"Carlo Gutierrez\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Carlo Gutierrez\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"6 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.altoros.com\/blog\/longhorn-provides-persistent-storage-for-35000-kubernetes-nodes\/\",\"url\":\"https:\/\/www.altoros.com\/blog\/longhorn-provides-persistent-storage-for-35000-kubernetes-nodes\/\",\"name\":\"Longhorn Provides Persistent Storage for 35,000 Kubernetes Nodes | Altoros\",\"isPartOf\":{\"@id\":\"https:\/\/www.altoros.com\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.altoros.com\/blog\/longhorn-provides-persistent-storage-for-35000-kubernetes-nodes\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.altoros.com\/blog\/longhorn-provides-persistent-storage-for-35000-kubernetes-nodes\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.altoros.com\/blog\/wp-content\/uploads\/2022\/05\/Longhorn-Kubernetes-Cloud-Native-Persistent-Storage.gif\",\"datePublished\":\"2022-05-31T15:13:21+00:00\",\"dateModified\":\"2022-05-31T15:16:40+00:00\",\"author\":{\"@id\":\"https:\/\/www.altoros.com\/blog\/#\/schema\/person\/833e109f77de753b2b472dca0236b442\"},\"breadcrumb\":{\"@id\":\"https:\/\/www.altoros.com\/blog\/longhorn-provides-persistent-storage-for-35000-kubernetes-nodes\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.altoros.com\/blog\/longhorn-provides-persistent-storage-for-35000-kubernetes-nodes\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.altoros.com\/blog\/longhorn-provides-persistent-storage-for-35000-kubernetes-nodes\/#primaryimage\",\"url\":\"https:\/\/www.altoros.com\/blog\/wp-content\/uploads\/2022\/05\/Longhorn-Kubernetes-Cloud-Native-Persistent-Storage.gif\",\"contentUrl\":\"https:\/\/www.altoros.com\/blog\/wp-content\/uploads\/2022\/05\/Longhorn-Kubernetes-Cloud-Native-Persistent-Storage.gif\",\"width\":1280,\"height\":720},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.altoros.com\/blog\/longhorn-provides-persistent-storage-for-35000-kubernetes-nodes\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.altoros.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Longhorn Provides Persistent Storage for 35,000 Kubernetes Nodes\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.altoros.com\/blog\/#website\",\"url\":\"https:\/\/www.altoros.com\/blog\/\",\"name\":\"Altoros\",\"description\":\"Insight\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.altoros.com\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.altoros.com\/blog\/#\/schema\/person\/833e109f77de753b2b472dca0236b442\",\"name\":\"Carlo Gutierrez\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.altoros.com\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/www.altoros.com\/blog\/wp-content\/uploads\/2021\/02\/CG_portrait-2-96x96.jpg\",\"contentUrl\":\"https:\/\/www.altoros.com\/blog\/wp-content\/uploads\/2021\/02\/CG_portrait-2-96x96.jpg\",\"caption\":\"Carlo Gutierrez\"},\"description\":\"Carlo Gutierrez is a Technical Writer at Altoros. As part of the editorial team, his focus has been on emerging technologies such as Cloud Foundry, Kubernetes, blockchain, and the Internet of Things. Prior to Altoros, he primarily wrote about enterprise and consumer technology. Carlo has over 12 years of experience in the publishing industry. Previously, he served as an Editor for PC World Philippines and Questex Asia, as well as a Designer for Tropa Entertainment.\",\"url\":\"https:\/\/www.altoros.com\/blog\/author\/carlo\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Longhorn Provides Persistent Storage for 35,000 Kubernetes Nodes | Altoros","description":"With an architecture that uses multiple engines and replicas, this CNCF incubation project addresses the issues with traditional external storage arrays.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.altoros.com\/blog\/longhorn-provides-persistent-storage-for-35000-kubernetes-nodes\/","og_locale":"en_US","og_type":"article","og_title":"Longhorn Provides Persistent Storage for 35,000 Kubernetes Nodes | Altoros","og_description":"The challenges with persistent storage Containers work well with stateless applications as there is no need to save data. Kubernetes can rapidly create and remove containers, because the applications within the containers are packaged up with all of their dependencies. However, the dynamic creation and removal of containers can run into [...]","og_url":"https:\/\/www.altoros.com\/blog\/longhorn-provides-persistent-storage-for-35000-kubernetes-nodes\/","og_site_name":"Altoros","article_published_time":"2022-05-31T15:13:21+00:00","article_modified_time":"2022-05-31T15:16:40+00:00","og_image":[{"width":1280,"height":720,"url":"https:\/\/www.altoros.com\/blog\/wp-content\/uploads\/2022\/05\/Longhorn-Kubernetes-Cloud-Native-Persistent-Storage.gif","type":"image\/gif"}],"author":"Carlo Gutierrez","twitter_misc":{"Written by":"Carlo Gutierrez","Est. reading time":"6 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/www.altoros.com\/blog\/longhorn-provides-persistent-storage-for-35000-kubernetes-nodes\/","url":"https:\/\/www.altoros.com\/blog\/longhorn-provides-persistent-storage-for-35000-kubernetes-nodes\/","name":"Longhorn Provides Persistent Storage for 35,000 Kubernetes Nodes | Altoros","isPartOf":{"@id":"https:\/\/www.altoros.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.altoros.com\/blog\/longhorn-provides-persistent-storage-for-35000-kubernetes-nodes\/#primaryimage"},"image":{"@id":"https:\/\/www.altoros.com\/blog\/longhorn-provides-persistent-storage-for-35000-kubernetes-nodes\/#primaryimage"},"thumbnailUrl":"https:\/\/www.altoros.com\/blog\/wp-content\/uploads\/2022\/05\/Longhorn-Kubernetes-Cloud-Native-Persistent-Storage.gif","datePublished":"2022-05-31T15:13:21+00:00","dateModified":"2022-05-31T15:16:40+00:00","author":{"@id":"https:\/\/www.altoros.com\/blog\/#\/schema\/person\/833e109f77de753b2b472dca0236b442"},"breadcrumb":{"@id":"https:\/\/www.altoros.com\/blog\/longhorn-provides-persistent-storage-for-35000-kubernetes-nodes\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.altoros.com\/blog\/longhorn-provides-persistent-storage-for-35000-kubernetes-nodes\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.altoros.com\/blog\/longhorn-provides-persistent-storage-for-35000-kubernetes-nodes\/#primaryimage","url":"https:\/\/www.altoros.com\/blog\/wp-content\/uploads\/2022\/05\/Longhorn-Kubernetes-Cloud-Native-Persistent-Storage.gif","contentUrl":"https:\/\/www.altoros.com\/blog\/wp-content\/uploads\/2022\/05\/Longhorn-Kubernetes-Cloud-Native-Persistent-Storage.gif","width":1280,"height":720},{"@type":"BreadcrumbList","@id":"https:\/\/www.altoros.com\/blog\/longhorn-provides-persistent-storage-for-35000-kubernetes-nodes\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.altoros.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Longhorn Provides Persistent Storage for 35,000 Kubernetes Nodes"}]},{"@type":"WebSite","@id":"https:\/\/www.altoros.com\/blog\/#website","url":"https:\/\/www.altoros.com\/blog\/","name":"Altoros","description":"Insight","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.altoros.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Person","@id":"https:\/\/www.altoros.com\/blog\/#\/schema\/person\/833e109f77de753b2b472dca0236b442","name":"Carlo Gutierrez","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.altoros.com\/blog\/#\/schema\/person\/image\/","url":"https:\/\/www.altoros.com\/blog\/wp-content\/uploads\/2021\/02\/CG_portrait-2-96x96.jpg","contentUrl":"https:\/\/www.altoros.com\/blog\/wp-content\/uploads\/2021\/02\/CG_portrait-2-96x96.jpg","caption":"Carlo Gutierrez"},"description":"Carlo Gutierrez is a Technical Writer at Altoros. As part of the editorial team, his focus has been on emerging technologies such as Cloud Foundry, Kubernetes, blockchain, and the Internet of Things. Prior to Altoros, he primarily wrote about enterprise and consumer technology. Carlo has over 12 years of experience in the publishing industry. Previously, he served as an Editor for PC World Philippines and Questex Asia, as well as a Designer for Tropa Entertainment.","url":"https:\/\/www.altoros.com\/blog\/author\/carlo\/"}]}},"_links":{"self":[{"href":"https:\/\/www.altoros.com\/blog\/wp-json\/wp\/v2\/posts\/66787","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.altoros.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.altoros.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.altoros.com\/blog\/wp-json\/wp\/v2\/users\/32"}],"replies":[{"embeddable":true,"href":"https:\/\/www.altoros.com\/blog\/wp-json\/wp\/v2\/comments?post=66787"}],"version-history":[{"count":27,"href":"https:\/\/www.altoros.com\/blog\/wp-json\/wp\/v2\/posts\/66787\/revisions"}],"predecessor-version":[{"id":66824,"href":"https:\/\/www.altoros.com\/blog\/wp-json\/wp\/v2\/posts\/66787\/revisions\/66824"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.altoros.com\/blog\/wp-json\/wp\/v2\/media\/66794"}],"wp:attachment":[{"href":"https:\/\/www.altoros.com\/blog\/wp-json\/wp\/v2\/media?parent=66787"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.altoros.com\/blog\/wp-json\/wp\/v2\/categories?post=66787"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.altoros.com\/blog\/wp-json\/wp\/v2\/tags?post=66787"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}