What Is Kubernetes?

Kubernetes is an open-source platform that helps to manage container execution across a cluster of compute nodes. It enables automated container deployment and scaling, making it extremely attractive to developers and DevOps pipelines. With Kubernetes, container instances can be replicated across multiple nodes, enabling horizontal scale-out and fault tolerance.

Why would developers use Kubernetes? Recently containers have become a central part of the software development because they allow engineers to encapsulate their applications into independent and lightweight units. But orchestrating the execution of multiple containers could lead to management issues—Kubernetes offers a solution.

The Kubernetes platform was created at Google as an open-source version of the proprietary solutions they had been using to orchestrate their own public services. The change in focus to managing applications and letting Kubernetes deal with the infrastructure has led to the growing Kubernetes introduction and adoption by software developers.

Download the Complete NetApp Guide for Kubernetes

Introduction to Kubernetes and Persistent Storage

An Introduction to Kubernetes

In recent years, software developers and DevOps engineers have benefited from encapsulating applications into lightweight, independent units called containers. Kubernetes takes container deployment to a whole new level by providing a robust solution for managing and scaling containers and containerized applications and workloads across a cluster of machines.

Kubernetes is changing the way that software is being deployed, though it has a lot of moving parts to be aware of. If you’re just getting started with Kubernetes or want to know what it can do with NetApp’s Trident and Cloud Volumes ONTAP, our Kubernetes Introduction blog post will introduce you to the history, background, important use cases, and basic terminology that relates to Kubernetes.

Read more about the Introduction to Kubernetes

Understanding Kubernetes Persistent Volume Provisioning

Understanding Kubernetes Persistent Volume Provisioning

While Kubernetes allows for innovative ways to scale and use containerized workloads, there is still the need for storage solutions. Kubernetes facilitates this through persistent volumes, which provide the flexibility to control how storage is provisioned without affecting the pods that make use of that storage. Using persistent volumes, the same persistent volume claim could be set up to use a different type of backend storage based on the Kubernetes cluster it is deployed into.

Kubernetes persistent volumes are created through the use of a provisioner that interfaces with backend storage through the use of a plugin. The storage type can be a range of different formats, with support extending to Google Persistent Disk, Amazon EBS, Azure Disk Storage, and others. A reclaim policy is set for the persistent volume which determines its lifetime. This same policy controls what the cluster will do whenever a persistent volume claims is released by a pod.

Provisioning volumes takes place in two different ways: static or dynamic provisioning. With static provisioning, admins provision persistent volumes for the cluster ahead of time. This requires prior knowledge of storage requirements as a whole. In dynamic provisioning, persistent volumes are deployed automatically based on the claims the cluster receives.

Kubernetes persistent volumes enable a great amount of flexibility when it comes to storage provisioning due to the separation persistent volumes create between the containerized applications and the storage the apps make use of. NetApp’s Trident provisioner works alongside the Cloud Volumes ONTAP data management platform from inside Kubernetes, extending the benefits of storage optimization and ease of use to persistent volumes in Kubernetes.

Read more about Kubernetes Persistent Volume Provisioning

Managing Stateful Applications in Kubernetes blog

Managing Stateful Applications in Kubernetes

Stateful applications that run in Kubernetes need storage that is persistent and with a lifecycle that is independent of pods. Using persistent volumes can go some way towards achieving this, but another solution is to use stateful sets and dynamic provisioning, which are easier both to scale and to manage.

Kubernetes has been offering support for stateless applications since the platform’s inception, however, the storage that stateful applications rely on needs to have strong data protection guarantees, something that Kubernetes on its own does not provide. Stateful applications include some business-critical components; a database is a good example of a stateful application that is key to an enterprise and must ensure is protected. That protection takes place at the back-end storage service in use for persistent volumes. As different storage solutions can be used for this, data protection levels can vary. The service being employed needs to provide for backup and restore and availability solutions.

Using Trident and Cloud Volumes ONTAP, Kubernetes users can dynamically provision storage for their stateful sets and gain the benefits of high levels of data protection, zero-data-loss and under-60-second high availability, and flexible data management operability, all of which enterprise-level deployments require.

Find out more about Managing Stateful Applications

Dynamic Kubernetes Persistent Volume Provisioning

Dynamic Kubernetes Persistent Volume Provisioning

As explained above, there are two ways Kubernetes persistent volumes are provisioned so users can take advantage of the extensible framework for clustered data storage management: static and dynamic. Administrators who want to have all the storage they require upfront can do so with static provisioning, which pre-allocates any Kubernetes persistent volumes. Such a decision depends on an exact understanding of the storage needs of the cluster. Should the cluster’s storage demands exceed the number of volumes previously provisioned, there would be an issue.

Those issues are avoided when using the second option for Kubernetes persistent volume provisioning, dynamic provisioning. In a deployment using dynamic provisioning, users don’t have to know of the cluster’s eventual storage needs since persistent volumes are provisioned as they are needed. This more organic process gives the Kubernetes cluster more flexibility, and room to scale.

By using dynamic storage provisioning, Kubernetes users can greatly simplify how persistent volumes are deployed in clusters. Without the requirements to provision volumes manually and have foreknowledge of the storage amount needed, users can let their clusters scale without worry.

Read more about Dynamic Persistent Volume Provisioning with Cloud Volumes ONTAP

Kubernetes for Developers: Overview, Insights, and Tips

Kubernetes for Developers: Overview, Insights, and Tips

Kubernetes has transformed the way that companies design, deploy, and orchestrate microservices. Whether based on-prem or in the cloud, there are a number of basic things to know about Kubernetes for developers that will help make using the service much easier and more effective.

In this post, we’ll walk you through the basics of Kubernetes. For developers looking to design their own Kubernetes workflows, this is a useful place to start. You’ll learn some of the ground floor rules of the cluster-building orchestration platform, including its security features, fundamental architecture for load balancing and failure prevention, and more.

This post covers some of the monitoring tools that come in handy with Kubernetes for developers. These include applications such as DaemonSets, which can make it possible for the Kubernetes app to have metrics run from a centralized environment, including Kubelet, for bridging nodes, PodSpecs for statistics and status monitoring, and Container Advisor for keeping tabs on your containers and their usage.

Besides these Kubernetes-native features, this post also takes a look at how NetApp Trident and Cloud Volumes ONTAP can be used to make Kubernetes deployment even easier, allowing for persistent volumes to be provisioned dynamically on AWS and Azure storage resources, and to deploy Kubernetes clusters across clouds from a single central management console.

Find out more about using Kubernetes for developers here

Kubernetes Persistent Storage Why Where and How

Kubernetes Persistent Storage: Why, Where and How

Containers are immutable, but there is often a need to save data in persistent storage and access it from one of more containers. Kubernetes provides a convenient persistent storage mechanism called Persistent Volumes. Kubernetes Volumes allow you to mount a storage unit, such as a file system folder or a cloud storage bucket, to one or more Kubernetes node, and also use it to share data between the nodes. Persistent Volume is hosted in its own Pod and can remain alive for as long as necessary for ongoing operations.

Persistent Volumes are the Kubernetes way to hide the details of storage implementation from applications and users, and provide a cloud native way to seamlessly connect to a variety of cloud storage systems, virtualized storage, and proprietary or open source storage platforms. An application can simply request storage with specific criteria, and Kubernetes provisions it automatically.

Learn more about Kubernettes Persistent Storage

AWS ECS vs Kubernetes- An Unfair Comparison

AWS ECS vs Kubernetes: An Unfair Comparison?

Amazon Elastic Compute Service (ECS) is a container orchestration service that runs and manages containers. It manages cloud machine instances, scales and schedules groups of containers across multiple Availability Zones (AZ). By contrast, Kubernetes is the world's most popular container orchestration platform, which can run in the Amazon cloud but also on other cloud platforms and providers.

Comparing Kubernetes to ECS is not an apples-to-apples comparison, because ECS provides both container orchestration and a managed service that operates it for Amazon users. Kubernetes offers only the first aspect, not the second. Learn how ECS compares to Kubernetes and also to a managed Kubernetes services that offer both aspects - Amazon Elastic Kubernetes service.

Read more about AWS ECS vs Kubernetes

Kubernetes Shared Storage- The Basics and a Quick Tutorial-Blog

Kubernetes Shared Storage: The Basics and a Quick Tutorial

Kubernetes storage is based on the concept of Volumes - abstracted storage units that containers can use to store and share data. Kubernetes provides a range of storage plugins that integrate with storage offered by public cloud providers, virtualization systems like VMware, and on-premise hardware using standard protocols like NFS.

Learn how Kubernetes storage works, including volumes, persistent volumes, static and dynamic provisioning, and see how to setup a storage volume in a Kubernetes YAML file.

Read more about Kubernetes shared storage

Kubernetes NFS: Quick Tutorials

Kubernetes NFS: Quick Tutorials

Kubernetes Volumes are storage units that allow containers in a Kubernetes cluster to write, read and share data. One of the many storage plugins offered by Kubernetes is the NFS plugin, which lets containers mount a Kubernetes volume as a local drive. This is useful for migrating legacy applications to Kubernetes, because they can continue accessing data the same way as they did in a traditional deployment model.

Learn about the advantages of using NFS with Kubernetes, and see step-by-step instructions on mounting an NFS share on a container, and creating an NFS persistent volume which containers can mount as a local drive.

Read more about Kubernetes NFS

The Benefits of Cloud Volumes ONTAP for Kubernetes Persistent Volumes

Data protection Kubernetes

Data Protection for Persistent Data Storage in Kubernetes Workloads

Enterprise workloads typically have a strong requirement for reliable data storage. Kubernetes persistent volumes can be provisioned using a variety of solutions. However, ensuring that the data is easy to backup and restore, always available, consistent, and durable in a Kubernetes workload DR (Disaster Recovery) situation or any other failure is the responsibility of end users and administrators.

In this article, we’ll look at how containerized applications in Kubernetes can take advantage of the enterprise data protection features of Cloud Volumes ONTAP by provisioning persistent volumes through NetApp Trident. This solution can help meet all the data protection requirements of production Kubernetes workloads transparently and with ease.

Find out more about Data Protection for Persistent Data Storage in Kubernetes  Workloads

Storage efficiency for improving persisten volume storage blog

Storage Efficiency For Improving Persistent Volume Storage Costs

When Kubernetes users provision large amounts of storage for containerized applications, it may be the case that large allocation of storage is never used. There may also be scenarios where a persistent volume stores data that is not compressed, a storage inefficiency that leads to consuming more storage and raising the associated storage costs unnecessarily.

The issue of storage efficiency is affected by how Kubernetes users decide to provision persistent volumes: manually through static provisioning, or automatically through dynamic provisioning. In either case, the challenge is to make sure there is storage efficiency. Developers will many times estimate for too large a storage need. In the cloud, that is a big reason for storage sprawl and unnecessary costs.

These storage challenges can be addressed through the use of the built-in storage efficiency features of Cloud Volumes ONTAP, which are available to Kubernetes users through the NetApp Trident provisioner. Storage space can be conserved through data deduplication, compression, compaction, thin provisioning, and automatically tiering cold data to less-expensive object storage on Amazon S3 or Azure Blob until it needs to be used. All of these combine to give Kubernetes advantages in reducing the storage space persistent volumes required.

Find out how NetApp can make Kubernetes persistent volumes cost effective

Cloning Kubernetes Blog Image

Cloning Kubernetes Persistent Volumes with NetApp Trident and Cloud Volumes ONTAP

Developers get a huge advantage from Kubernetes’ abilities to easily scale and manage containerized workloads. But the CI/CD pipeline also requires an easy way to test new builds and changes to environments. Normally, this would require provisioning an entirely new persistent volume with all of the same data. That could be costly both in terms of the time and the costs involved for storage. Trident and Cloud Volumes ONTAP offer a better solution: FlexClone® data clone volumes.

Using Trident, Kubernetes persistent volume claims can be answered by creating highly space-efficient clones of persistent volumes instantaneously. Trident does this using a set of basic annotations on the persistent volume claim, and working in tandem with the ONTAP back-end systems to locate the original volume claim and recreating it.

The costs benefits of using FlexClone are considerable, as no storage needs to be consumed to create the clone: only the changed data needs to be stored. And once the clone is no longer needed by a pod, a simple reclaim policy of delete will delete the clone, making sure no unnecessary storage is taken up.

Read more about cloning Kubernetes persistent volumes here

How to Use Kubernetes with NetApp Cloud Services

How To Set Up MySQL - Blog

How to Set Up MySQL Kubernetes with Cloud Volumes ONTAP

With persistent volumes, Kubernetes can support stateful apps, such as databases like MySQL. Kubernetes uses this permanent form of data storage to control and use MySQL databases and other services that populate their deployments via a unified platform that scales.


Stateful sets are a powerful mechanism that Kubernetes uses to scale stateful applications. Stateful sets are good for horizontal-scaling systems that would use a new node while deploying persistent storage from a template. In this way the network identity of all the pods can stay stable with the guarantee that the persistent volumes the set is connected to, will not be deleted. However, stateful applications such as MySQL databases need the highest levels of data protection, features that Kubernetes provisioning relies on the storage service to provide. Since a variety of storage can be used in Kubernetes, meeting the data protection requirements is up to the user to manage. DevOps engineers also require an easy way to clone quickly in order to speed up testing and TTM, another feature that the storage provider backing Kubernetes may lack.


By deploying Kubernetes with NetApp Trident, the storage used for persistent volumes is allocated by NetApp systems such as Cloud Volumes ONTAP, which come with multiple data protection benefits: backup and restore for databases of any size through ONTAP Snapshots, high availability for Kubernetes persistent volumes across AZs with Cloud Volumes ONTAP HA, efficient, block-level data replication with SnapMirror, and FlexClone data cloning for fast, space-efficient clones to benefit DevOps testing.See how to set up MySQL Kubernetes deployments using Cloud Volumes ONTAP here

NetApp Trident and Docker Volume Tutorial

NetApp Trident and Docker Volume Tutorial

Docker volumes behave as a layer that abstracts storage provisioning and container usage. Using commands within Docker, volumes can be created, managed, and used to keep Docker admin operations consistently interfaced.

The storage that Docker volumes are based on can be provisioned from file services such as NFS, or local, block-level storage types. Whichever storage type is preferred, the Docker host machine will need to have access to it ahead of when provisioning takes place (an Amazon EC2 instance hosting a Docker container needs an Amazon EBS volume assigned to it). All of the additional data management tasks associated with the volume from scaling and capacity to monitoring and backup creation are manual operations for the user to carry out.

A solution for handling those operations are NetApp’s Trident and Cloud Volumes ONTAP. With the help of Trident, all of the data management features of NetApp storage are available for Docker volumes. These features are available by using native Docker commands, making provisioning storage for containers a vastly improved experience. This also makes moving to Kubernetes possible, as all the benefits can be carried over through Trident for Kubernetes.
Take a look at the Docker volume tutorial here

How to Use NetApp Cloud Manager with Trident Blog

How to Use NetApp Cloud Manager with Trident for Provisioning Persistent Volumes in Kubernetes Deployments

NetApp Trident is a fully supported, open-source storage provisioner for Kubernetes, which enables Kubernetes persistent volumes to be dynamically provisioned with Cloud Volumes ONTAP. This allows you to retain the use of native Kubernetes manifests and constructs to interact with your persistent storage, while at the same time gaining the benefits of using NetApp’s enterprise-grade data management platform.

Cloud Volumes ONTAP provides a whole host of features that are crucial for the reliable storage of persistent data. Protecting data with instant snapshots and high availability, as well as supporting data mobility between your on-premises systems and your Kubernetes deployments with highly efficient block-level data replication, are just some of the advantages users gain from using NetApp storage technologies.

Cloud Manager simplifies the process of deploying NetApp Trident into your Kubernetes deployment, irrespective of its underlying implementation, and then configuring the cluster to use a specific deployment of Cloud Volumes ONTAP. All of this can be achieved within minutes from the Cloud Manager web-based UI, and with just a few clicks you’ll be ready to start provisioning persistent storage for your cluster using Cloud Volumes ONTAP.

Find out more about deploying NetApp Trident to your Kubernetes deployment

How to Provision Kubernetes Persistent Volumes for NFS File Services with Cloud Volumes ONTAP and Trident

How to Provision Kubernetes Persistent Volumes for NFS File Services with Cloud Volumes ONTAP and Trident

One of the most popular file protocols in use today is NFS (Network File System). With NFS, users can share files in enterprise-scale deployments with thousands of users around the world concurrently for use cases as diverse as big data analytics, data lake creation, archiving, database, and more. With Kubernetes deployments, NFS can be used with pods to provide Kubernetes persistent volumes that can share data across containers.

There are a number of advantages to using NFS with Kubernetes. One of these advantages is that it offers more flexibility than block-level persistent volume allocations. NFS makes it possible for a single file system to be mounted by multiple hosts who all have concurrent file access. As such, the storage volume can be mounted and used right away, without being formatted using an OS. This makes it easier to attach pods and storage and lowers administrative overhead. Of course, you’ll still need a Kubernetes persistent volumes provisioner, and NetApp Trident can do that, as it fully supports NFS.

The benefits of using Trident as a Kubernetes NFS provisioner, include the abilities to dynamically resize NFS persistent volumes, mount persistent volumes as Read/Write Many, and create separate storage classes for different mount parameters and other requirements. Plus, it comes along with all the data management benefits of Cloud Volumes ONTAP.

This post gives you an in-depth look at NFS file services with Kubernetes and how to use Trident as your Kubernetes NFS provisioner for Kubernetes persistent volumes. You’ll be able to see specific code examples for provisioning, creating separate storage class, and more.

Read more about using Kubernetes persistent volumes and NFS here
Out-of-This-World Kubernetes Performance on Azure with Azure NetApp Files - Blog

Out-of-This-World Kubernetes Performance on Azure with Azure NetApp Files

Azure users can use a Microsoft-native platform, Azure NetApp Files, as their underlying data platform to take advantage of features like:
    • Consistent sub-millisecond latency
    • Scalability: Grow cloud volumes in Azure NetApp Files up to 100TB in seconds.
    • Simplicity: Choose between three performance levels that lay bare performance possibilities

Read More