Cloud Manager automates the deployment of Trident on Kubernetes cluster so you can use Cloud Volumes ONTAP (CVO) as persistent storage for containers. Managing persistent storage is one of the major challenges for containerization. Trident, NetApp’s dynamic provisioner helps you to alleviate this problem by automating the provisioning and management of persistent volumes for containers, using CVO in AWS, Azure and Google Cloud as the backend.
In this blog, we will illustrate how Trident can be installed on a Kubernetes using Cloud Manager to dynamically provision persistent volumes from Cloud Volume ONTAP (CVO). NetApp CVO services are offered on all the major public cloud service providers’ platforms. For more information on Cloud Volumes ONTAP, refer the following link. To demonstrate the install and use, we will be using a Kubernetes cluster spun up by the NetApp Kubernetes Service (NKS) on AWS.
Using Cloud Manager to deploy CVO
NetApp Cloud Manager provides you with the single pane of glass to manage and control CVO, on-premise storage systems and other instances of the data fabric. The Cloud Manager simplifies configuration and deployment of CVO on all the major cloud providers. It also helps you automate data movements between your premises and the cloud.
In fact, to start using CVO, you must first deploy Cloud Manager through NetApp Cloud Central. It takes just a few minutes to launch a Cloud Manager instance.
Once the Cloud Manager is set up, CVO can be provisioned in a few simple steps. CVO is a complete ONTAP system running on Google Cloud, AWS, and Azure using the cloud-native resources. It satisfies the enterprise storage requirements on different hybrid cloud architectures. CVO brings ONTAP data management capabilities, data efficiency services, and multi-protocol support to the cloud. CVO enables enterprise customers to meet various hybrid cloud use cases such as lift & shift, data migration, disaster recovery, and backup.
For more information on how to set up CVO through Cloud Manager, refer the following blog.
Installing Trident through Cloud Manager
For Kubernetes instances deployed in the cloud, Trident can be installed in two ways. You can either install Trident through Cloud Manager or directly . Let’s examine how we can do this.
For this exercise, we will be using a Kubernetes Cluster that has been provisioned in the cloud using NKS and an instance of CVO which has been setup through Cloud Manager.
To install Trident via Cloud Manager, navigate to the Cloud Manager main console:
- To discover the Kubernetes cluster, click on the “Kubernetes Cluster” tab from the main menu.
- This brings up the “Persistent Volumes for Kubernetes” page with the “Discover Cluster” button which initiates the Kubernetes cluster discover sequence.
- At the launch, the cluster discover sequence prompts us to upload the “kubeconfig” file. The “kubeconfig” file is used to setup access to a Kubernetes cluster.
- Once the cluster is discovered, click on “Save Cluster.” Now, we should be able to see the newly added cluster along with a list of other available clusters.
- Before we install Trident, choose the “Working Environment” tab from the main menu and select the appropriate CVO instance.
- On the right-hand side menu, under “Quick Navigation”, choose “Resources”. Now, the resource details of the CVO instance should be displayed.
- In order to install Trident, click on the Kubernetes icon in the upper right corner to open up the “Persistent Volumes for Kubernetes” page.
- On “Persistent Volumes for Kubernetes” page, select the desired Kubernetes cluster and add the preferred “Custom Export Policy.” Then, click on “Connect”. If you would like to set the Kubernetes Storage Classes created by the Cloud Manager as the default, click on the check-box “Set as default storage class”.
- Click on the Timeline Tab to check the progress of the Trident installation and verify if the installation has been completed successfully.
It is also possible to install Trident on the Kubernetes Cluster directly as well. This is a manual process and the administrator would need to follow the Trident install procedure. Please note that appropriate backend and Kubernetes storage class pointing to the CVO instance must be set up before Trident can start provisioning persistent volumes.
Dynamically Provisioning Persistent Volumes in CVO
After Trident is installed, Cloud Manager creates two default Kubernetes Storage Classes that can be used while provisioning Persistent Volumes, “netapp-file” and “netapp-file-redundant.” The “netapp-file” Storage Class is used for binding persistent volumes to single-node CVO systems and “netapp-file-redundant” Storage Class is used for binding persistent volumes to CVO HA pairs. Additional storage classes can be created through the Kubernetes dashboard. Cloud Manager, by default, configures Trident to use thin provisioning, default snapshot policy, and accessible snapshot directory options while provisioning volumes. Let us observe how Trident dynamically provisions volumes when it receives a PVC request.
- On the Kubernetes dashboard, create a Kubernetes persistent volume claim object by clicking on the create button found on the top right-hand side.
- Choose “CREATE FROM TEXT INPUT” and input the persistent volume claim yaml file contents in the text box. Click on “UPLOAD” and the persistent volume claim is now created.
- Trident watches for persistent volume claims and dynamically provision persistent volumes on NetApp CVO.
- Let’s have a look at the resource page of the CVO instance “cvo” and verify if the volume has been created.
5. As you can notice, the persistent volume that was provisioned by Trident is now bound to a CVO volume.
In this blog we have discussed how Persistent Volume can be provisioned using Trident on Cloud Volume ONTAP through Cloud Manager for Kubernetes clusters setup in the cloud.
We haven’t covered every possible scenario, so please reach out to us on our Slack channel with questions. We’re happy to help!