Sunday, December 22, 2019

NetApp Trident with Kubernetes



What is Trident?

Trident is a fully supported open source project maintained by NetApp. It has been designed from the ground up to help you meet the sophisticated persistence demands of your containerized applications.
Through its support for popular container platforms like Kubernetes and Docker, Trident understands the natural and evolving languages of those platforms, and translates requirements expressed or implied through them into an automated and orchestrated response from the infrastructure.
Today, that includes our ONTAP (AFF/FAS/Select/Cloud), Element (HCI/SolidFire), and SANtricity (E/EF-Series) data management software, plus the Azure NetApp Files service in Azure, the Cloud Volumes Service for AWS in Amazon Web Services, and the Cloud Volumes Service for GCP in Google Cloud. That list continues to grow.
Persistent Storage Concepts and Trident Configuration This section of the lab explains how Trident integrates with Kubernetes. It also explores the Kubernetes and Trident elements that a storage administrator will have to configure to enable DevOps users to provision storage with Trident. Kubernetes and Trident operation relies on several constructs that DevOps engineers and storage administrators need to be familiar with.

Pod: A pod describes a unit of deployment for an application or application service (i.e., microservice). A pod consists of one or more containers that are expected to be executed together.

Deployment: A pod with additional metadata and features, such as the number of replicas that should be running at any time. In other words, a deployment is one of the ways to describe an application to Kubernetes. For example, a deployment with one replica specified means that Kubernetes will ensure that one instance of the pod is always running somewhere in the cluster.

Storage Class: Provides an abstract definition of storage. Each storage class has a provisioner and some number of defined parameters. For NetApp, the provisioner is Trident, an open source project which manages the creation and destruction of volumes for ONTAP, SolidFire, E-Series storage arrays, Cloud Volume Service in AWS, and Azure NetApp Files.

Persistent Volume (PV): A storage device that a container uses to store persistent data. It is decoupled from the pod and has a lifecycle of its own.

Persistent Volume Claim (PVC): A user/application creates a PVC to request access to persistent storage. The PVC describes requirements like the size and type of the required volume (e.g., “I need 20 GiB of storage”), which Kubernetes evaluates against its inventory of available PVs, and assigns one that meets those needs. The application can then utilize the PVC to ensure that Kubernetes mounts the assigned PV to the host that is executing the pod. If the PVC specifies a storage class, then Kubernetes follows the same process to find a match in the existing pool of PVs. However, if it cannot find a matching PV, Kubernetes will rely on the provisioner specified in the storage class to create a suitable match.

Namespace: A namespace is an administrative division of resources in the cluster that provides isolation between users, their pods/deployments, and resource assignments.



To list the Nodes and Namespaces.





List the NetApp Trident version.




Listing the crds.



List the deployment information.



List the storage backends. Ex. ONTAp and Solidfire storages are connected as backends.





Listing the storage classes.




Storage Class in details:




Login to ONTAP Cluster and list the flexvolume that already created.


Now run the yaml or json script for claiming storage space for the container using NAS.




After executing, the volume is created successfully.





Check the backend UUID:







Snapshot creation for Data Protection:









No comments:

Post a Comment