Container Native Storage

Explore this Page

What is CNS?

Container Native Storage (CNS) is a software-defined storage solution designed to operate within Kubernetes environments. It leverages microservice-based storage controllers that are orchestrated by Kubernetes, enabling storage management across various infrastructures, including public clouds, on-premises bare metal servers, and traditional shared storage systems. Unlike conventional scale-out storage architectures, CNS ensures that data is accessed directly through containers, rather than relying on an external storage platform.

Role of CNS in Modern Architectures

CNS aligns with the broader industry trend of disaggregated data management and the rise of autonomous teams managing independent workloads. Different teams within an organization may require diverse storage solutions - some might use PostgreSQL for transactional databases, while others rely on Redis or MongoDB for caching and NoSQL needs. With CNS, organizations can accommodate varied performance requirements, such as short-lived workloads, write-intensive operations, or read-heavy applications, without enforcing a rigid storage infrastructure.

One of the key benefits of CNS is its abstraction of storage complexities. You can focus on the applications without concern with the underlying storage architecture. Whether running on a cloud disk, a Storage Area Network (SAN), or bare-metal servers, CNS provides a unified storage approach. This eliminates the need to negotiate storage configurations or vendor selections, allowing to deploy CNS-backed storage solutions dynamically within Kubernetes clusters.

Key Advantages of CNS

Agility

Each storage volume in a CNS deployment has its own containerized storage controller and associated replicas. This architecture enables seamless resource management, upgrades, and maintenance. Kubernetes-native rolling upgrade capability ensures non-disruptive updates for storage controllers and replicas. Additionally, containerized storage resources can be fine-tuned using Kubernetes resource management features, such as cGroups for CPU and memory allocation.

Enhanced Fault Isolation and Resilience

CNS reduces the impact of failures through its distributed, per-workload storage architecture. Unlike monolithic storage systems, where failures can have widespread consequences, CNS localizes failure impact (or "blast radius") to the affected workload. High availability is achieved through synchronous replication, where storage controllers maintain multiple replicas of data across different nodes. In the event of a node failure, a stateless storage controller can be automatically restarted on another node containing the replicated data, ensuring uninterrupted data access.

Granular Storage Policies

CNS architecture provides fine-grained control over storage configurations. Each storage volume is managed independently and allows you to define and apply custom policies on a per-volume basis. Real-time monitoring of storage performance metrics such as throughput, Input/Output Operations Per Second (IOPS), and latency enables dynamic adjustments to optimize performance for different workloads.

Avoidance of Vendor Lock-in

Many organizations adopting Kubernetes seek to avoid dependence on a single cloud provider. However, stateful applications often remain tied to underlying storage solutions, whether cloud-native or traditional systems like NAS or SAN. CNS mitigates this issue by enabling seamless data migration at the workload level. With built-in live migration capabilities, stateful applications can be moved between Kubernetes clusters with minimal disruption.

Cloud-Native Integration

CNS utilizes Kubernetes Custom Resource Definitions (CRDs) to manage storage resources such as disks and storage pools. This approach facilitates deep integration with cloud-native monitoring and management tools, including Prometheus, Grafana, Fluentd, Weave Scope, and Jaeger. By adopting CNS, organizations can leverage these tools for storage provisioning, monitoring, and automated scaling.

Furthermore, CNS mirrors the scalability principles of hyperconverged infrastructure (HCI). Each volume is managed by a dedicated storage controller, allowing storage resources to scale dynamically as additional nodes are added to the Kubernetes cluster. As the demand for storage grows, new nodes enhance both storage capacity and performance, ensuring seamless expansion of available resources.

Learn More