Amazon Elastic Kubernetes Service (EKS) is a managed Kubernetes service from AWS that deploys and manages the Kubernetes control plane, while enabling easy integration with other services, such as Amazon Elastic Container Registry, IAM, VPC, and Load Balancer. Amazon EKS simplifies Kubernetes deployment for enterprises by ensuring control plane availability, patching, upgrades, and plugin compatibility. But it has its limitations.
Managing persistent storage is one of the major challenges of deploying and managing Kubernetes clusters, even with Amazon EKS. Trident, the open-source dynamic provisioner from NetApp, helps you to surmount that obstacle by automating the provisioning and management of persistent volumes for containers, using Cloud Volumes Service for AWS as the backend.
Amazon EKS clusters can take advantage of the storage capabilities of Cloud Volumes Service by way of Trident. Read this practical guide to solve your Amazon EKS cluster challenges.
Deploying Trident to Amazon EKS
Why use persistent volumes in Kubernetes clusters? Kubernetes clusters offer two types of storage abstracts: “volumes” and “persistent volumes.” Volumes associated with pods in a Kubernetes cluster are deleted at the end of the pod’s lifecycle. Once the pod is deleted, the data is no longer available anywhere.
In scenarios where the data should be available outside of the pod lifecycle, a persistent volume should be configured and attached to the pod. Applications deployed in Kubernetes clusters need access to persistent storage for multiple use cases, such as databases, AI applications, analytics, machine learning, and lift-and-shift migrations. Though originally developed for stateless applications, the integration of persistent storage makes Kubernetes an excellent facilitator for stateful applications as well.
Why Use Cloud Volumes Service with Amazon EKS?
Trident enables the integration of Cloud Volumes Service for AWS with Amazon EKS, facilitating the creation of persistent volumes that can be used by pods deployed in EKS. Cloud Volumes Service for AWS is an enterprise-class storage solution from NetApp that can be used to provision high-throughput, low-latency persistent storage. Cloud Volumes Service encompasses several advanced data management features that can be used by the Amazon EKS ecosystem through this integration.
You can choose between multiple service levels (Standard/Premium/Extreme) in order to meet the unique storage performance requirements of applications hosted in Amazon EKS. These levels can be modified after provisioning to meet the demands of growing environments. Cloud Volumes Service is deployed in a highly available configuration and offers snapshot capabilities for protecting your data. You can also create writable clones of existing volumes to be used with Amazon EKS for testing purposes. These features also make it easier to migrate to the cloud from on-premises storage.
Trident Integration with Amazon EKS
Trident provides native integration with Kubernetes’ persistent volume framework, thereby enabling it to provision and manage volumes from multiple storage management systems like NetApp ONTAP and Cloud Volumes Service in AWS. There’s no learning curve and users can continue to use Kubernetes constructs to access the volumes. Thus, all the features and advantages of Cloud Volumes Service are available to pods in Amazon EKS, which are in turn transparent to users.
You can integrate Trident with Amazon EKS in a few simple steps.
- Configure the Trident backend to establish a connection with Cloud Volumes Service. This backend configuration will include information like StorageDriverName as “aws-Cloud Volumes Service”, the Cloud Volumes Service URL, API and keys, and other information like volume size, service level, and NFS mount options.
- A storage class should be created with Trident as the provisioner and “aws-Cloud Volumes Service” as the storage driver.
- Users can create new persistent volumes through PersistentVolumeClaims using this storage class.
- These persistent volumes can then be mounted on pods in Amazon EKS using the default Kubernetes mounting process.
NetApp Kubernetes Service offers a cloud agnostic option for deploying and managing your Kubernetes clusters in multiple cloud service providers, including Amazon EKS. The backend integration of NetApp Trident with Amazon EKS can be carried out directly from NetApp Kubernetes Service’s centralized management portal, which will allow you to circumvent complex manual configurations.
A Step-by-Step Guide to EKS Integration1. Log in to Cloud Manager.
2. If you’re new to NetApp Kubernetes Service, sign up for the free trial first.
3. Click on “Add Cluster”.
4. Choose Amazon EKS as the provider to provision the cluster.
5. Click on “Add Credentials” to provide the AWS credentials that you’ll use when creating the cluster.
6. Provide your AWS Access Key ID and the Secret Access Key for the AWS credentials that have permissions to provision the cluster.
7. Click on “Edit” to configure the cluster.
8. Provide details on your AWS region, virtual private cloud (VPC), and subnet where the cluster will be deployed. Make sure that you select and add two subnets in two different availability zones.
9. When you click on “Submit”, the Amazon EKS settings will be listed. You can add the Trident solution from this window. Click on “Add solutions.”
10. Select Trident from the list of solutions.
11. Select an existing keyset to be used with Cloud Volumes Service for AWS.
12. If you click on “Add Cloud Volumes Service for AWS Keyset” you’ll be taken to the window for adding your credentials for Cloud Volumes Service for AWS.
13. Click on “Save” to add the credentials. On the main page, configure the pod and the service network.
14. Click “Submit” to provision the Amazon EKS cluster with Trident integrated into it. You can see the status of the cluster in the Dashboard.
15. To demonstrate how Trident automatically provisions the persistent volumes, we will add a sample solution and see how the volume is provisioned using Cloud Volumes Service. Click on “Add Solution” to add a sample solution.
16. For this example, we selected the rabbitmq solution from the list and added it.
17. Once submitted, you will get a confirmation message.
18. After a moment, the status of the solution will be displayed in the NetApp Kubernetes Service dashboard.
19. In the NetApp Kubernetes Service dashboard, you can see that the corresponding Cloud Volume has been provisioned.
20. You can also see this volume from the Kubernetes cluster dashboard, which can be opened from the NetApp Kubernetes Service control plane.
21. You can see that the persistent volume for rabbitmq has been created using Cloud Volumes Service for AWS by way of Trident.
Try It For Yourself
Trident and NetApp Cloud Volumes Service provide a robust storage solution for persistent storage in Amazon EKS clusters. You can easily install and configure the solution from the NetApp Kubernetes Service management pane without worrying about the underlying complexities.