Amazon EFS CSI: Difference between revisions

From NovaOrdis Knowledge Base
Jump to navigation Jump to search
 
(24 intermediate revisions by the same user not shown)
Line 5: Line 5:


=Internal=
=Internal=
 
* [[Kubernetes_Storage_Concepts#Amazon_EFS_CSI|Kubernetes Storage Concepts]]
* [[Amazon_EKS_Concepts#Amazon_EFS_CSI|Amazon EKS Concepts]]
* [[Amazon_EKS_Concepts#Amazon_EFS_CSI|Amazon EKS Concepts]]
* [[Kubernetes_Storage_Concepts#Amazon_EFS_CSI|Kubernetes Storage Concepts]]
* [[Amazon_Elastic_File_System_Concepts|Amazon Elastic File System Concepts]]


=Overview=
=Overview=
Line 14: Line 14:


The overall process consists in the following steps:
The overall process consists in the following steps:
# Deploy the Amazon EFS CSI driver to an Amazon EKS cluster
# [[Amazon_EFS_CSI_Operations#Deploy_the_Driver|Deploy the Amazon EFS CSI driver]] to an Amazon EKS cluster.
# Provision the EFS file system statically. Only static volume provisioning is supported, which means that the EFS file system must be created outside the EKS cluster before being used.
# Provision the EFS file system statically. Only static volume provisioning is supported, which means that the EFS file system must be created outside the EKS cluster before being used.
# Configure a Persistent Volume with the [[Amazon_Elastic_File_System_Concepts#File_System_ID|EFS file system ID]] and deploy it.
# Configure and deploy the corresponding [[Kubernetes_Storage_Concepts#Storage_Class_.28SC.29|Storage Class]]. Example [[Amazon_EFS_CSI_Operations#Deploy_the_EFS_Storage_Class|here]].
# Configure and deploy the corresponding Storage Class
# Configure a [[Kubernetes_Storage_Concepts#Persistent_Volume_.28PV.29|Persistent Volume]] with the [[Amazon_Elastic_File_System_Concepts#File_System_ID|EFS file system ID]] and deploy it. Example [[Amazon_EFS_CSI_Operations#Deploy_the_EFS_Persistent_Volume|here]].
# Configure and deploy the corresponding Persistent Volume Claim.
# Configure and deploy the corresponding [[Kubernetes_Storage_Concepts#Persistent_Volume_Claim_.28PVC.29|Persistent Volume Claim]]. Example [[Amazon_EFS_CSI_Operations#Deploy_the_Persistent_Volume_Claim|here]].
 
This flow is based on https://github.com/kubernetes-sigs/aws-efs-csi-driver/tree/master/examples/kubernetes/multiple_pods.
 
There is a one-to-one relationship between the Persistent Volume and the EFS file system.
 
<font color=darkgray>
TODO
 
* Explain how a pod gets the same file system share all the time.
* What happens if more than one PV is made available under the same storage class - how I can insure that multiple pods get associated with the same persistent volume.
</font>
 
=EFS CSI Driver=
 
Is deployed as a [[Kubernetes_Storage_Concepts#CSIDriver|CSIDriver]] and a [[Kubernetes DaemonSet|DaemonSet]].
 
=EFS-based Persistent Volume=


There is a one-to-one relationship between the Persistent Volume and the EFS file system.


<font color=darkgray>Explain how a pod gets the same file system share all the time.</font>
==Persistent Volume Size==
Because Amazon EFS is an elastic file system, it does not enforce any file system capacity limits. The actual storage capacity value in persistent volumes and persistent volume claims is not used when creating the file system. However, since storage capacity is a required field in Kubernetes, it must be specified as a valid value. This value does not limit the size of the Amazon EFS file system. Additional external documentation: https://docs.aws.amazon.com/eks/latest/userguide/efs-csi.html


=Persistent Volume Size=
Also see: {{Internal|Amazon_Elastic_File_System_Concepts#File_System_Size|Amazon EFS Concepts &#124; File System Size}}
Because Amazon EFS is an elastic file system, it does not enforce any file system capacity limits. The actual storage capacity value in persistent volumes and persistent volume claims is not used when creating the file system. However, since storage capacity is a required field in Kubernetes, it must be specified as a valid value. This value does not limit the size of the Amazon EFS file system.


=EFS CSI Driver and Access Points=
=EFS CSI Driver and Access Points=


=Amazon EFS CSI Operations=
=Amazon EFS CSI Operations=
* [[Amazon EFS CSI Operations#Deploy_the_Driver|Deploy the driver]]
* [[Amazon EFS CSI Operations#Deploy_the_Driver|Deploy the Amazon EFS CSI driver]]
* [[Amazon_EFS_CSI_Operations#Deploy_the_EFS_Storage_Class|Deploy the Storage Class]]
* [[Amazon_EFS_CSI_Operations#Deploy_the_EFS_Persistent_Volume|Deploy the Persistent Volume]]
* [[Amazon_EFS_CSI_Operations#Deploy_the_Persistent_Volume_Claim|Deploy the Persistent Volume Claim]]

Latest revision as of 23:08, 30 March 2021

External

Internal

Overview

Amazon EFS CSI driver makes possible consuming an EFS file system from an EKS pod via a standard Persistent Volume Claim/Persistent Volume mechanism.

The overall process consists in the following steps:

  1. Deploy the Amazon EFS CSI driver to an Amazon EKS cluster.
  2. Provision the EFS file system statically. Only static volume provisioning is supported, which means that the EFS file system must be created outside the EKS cluster before being used.
  3. Configure and deploy the corresponding Storage Class. Example here.
  4. Configure a Persistent Volume with the EFS file system ID and deploy it. Example here.
  5. Configure and deploy the corresponding Persistent Volume Claim. Example here.

This flow is based on https://github.com/kubernetes-sigs/aws-efs-csi-driver/tree/master/examples/kubernetes/multiple_pods.

There is a one-to-one relationship between the Persistent Volume and the EFS file system.

TODO

  • Explain how a pod gets the same file system share all the time.
  • What happens if more than one PV is made available under the same storage class - how I can insure that multiple pods get associated with the same persistent volume.

EFS CSI Driver

Is deployed as a CSIDriver and a DaemonSet.

EFS-based Persistent Volume

There is a one-to-one relationship between the Persistent Volume and the EFS file system.

Persistent Volume Size

Because Amazon EFS is an elastic file system, it does not enforce any file system capacity limits. The actual storage capacity value in persistent volumes and persistent volume claims is not used when creating the file system. However, since storage capacity is a required field in Kubernetes, it must be specified as a valid value. This value does not limit the size of the Amazon EFS file system. Additional external documentation: https://docs.aws.amazon.com/eks/latest/userguide/efs-csi.html

Also see:

Amazon EFS Concepts | File System Size

EFS CSI Driver and Access Points

Amazon EFS CSI Operations