Amazon EFS CSI: Difference between revisions
(21 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]] | ||
* [[ | * [[Amazon_Elastic_File_System_Concepts|Amazon Elastic File System Concepts]] | ||
=Overview= | =Overview= | ||
Line 16: | Line 16: | ||
# [[Amazon_EFS_CSI_Operations#Deploy_the_Driver|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 | # 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 [[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. | |||
==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: {{Internal|Amazon_Elastic_File_System_Concepts#File_System_Size|Amazon EFS Concepts | File System Size}} | |||
=EFS CSI Driver and Access Points= | =EFS CSI Driver and Access Points= | ||
Line 30: | Line 48: | ||
=Amazon EFS CSI Operations= | =Amazon EFS CSI Operations= | ||
* [[Amazon EFS CSI Operations#Deploy_the_Driver|Deploy the Amazon EFS CSI 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
- https://docs.aws.amazon.com/eks/latest/userguide/efs-csi.html
- https://github.com/kubernetes-sigs/aws-efs-csi-driver
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:
- 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.
- Configure and deploy the corresponding Storage Class. Example here.
- Configure a Persistent Volume with the EFS file system ID and deploy it. Example here.
- 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: