> ## Documentation Index
> Fetch the complete documentation index at: https://docs.abbyy.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Sistema de archivos EFS

El volumen in-process reside en un sistema de archivos EFS que usted debe crear. El chart puede aprovisionar automáticamente el volumen que aloja, o bien puede aprovisionarlo usted de antemano:

| | Aprovisionado automáticamente (predeterminado) | Aprovisionado previamente |
| - | - | - |
| Usted crea | El sistema de archivos | El sistema de archivos, un punto de acceso, un PersistentVolume y un claim |
| Usted configura | `storage.inProcess.efs.fileSystemId` | `storage.inProcess.existingClaim` |
| IAM del controlador CSI de EFS | `AmazonEFSCSIDriverPolicy` en el controlador | Ninguna |

## Crear el sistema de archivos

El sistema de archivos necesita un destino de montaje en cada zona de disponibilidad en la que se ejecuten los nodos, con un grupo de seguridad que acepte tráfico TCP en el puerto 2049 procedente de los nodos.

```bash theme={null}
FS_ID=$(aws efs create-file-system --region <region> \
  --encrypted --throughput-mode elastic \
  --tags Key=Name,Value=fineparser \
  --query FileSystemId --output text)

# una vez por zona de disponibilidad
aws efs create-mount-target --region <region> \
  --file-system-id $FS_ID --subnet-id <subnet-id> --security-groups <security-group-id>
```

El rendimiento elástico escala con el pool de workers.

## Instalar el controlador CSI de EFS

Para el aprovisionamiento automático, el componente controlador del controlador necesita la política `AmazonEFSCSIDriverPolicy` para crear puntos de acceso:

```bash theme={null}
eksctl create iamserviceaccount \
  --cluster <cluster> --region <region> \
  --namespace kube-system --name efs-csi-controller-sa \
  --role-name AmazonEKS_EFS_CSI_DriverRole --role-only \
  --attach-policy-arn arn:aws:iam::aws:policy/service-role/AmazonEFSCSIDriverPolicy \
  --approve

aws eks create-addon --region <region> --cluster-name <cluster> \
  --addon-name aws-efs-csi-driver \
  --service-account-role-arn arn:aws:iam::<account>:role/AmazonEKS_EFS_CSI_DriverRole
```

Si se trata de un volumen aprovisionado previamente, no es necesario el rol. Para conocer otros métodos de instalación, consulte [Amazon EFS](https://docs.aws.amazon.com/eks/latest/userguide/efs-csi.html) en la documentación de Amazon EKS.

## Aprovisionamiento automático

```yaml fineparser-values.yaml theme={null}
storage:
  inProcess:
    efs:
      fileSystemId: fs-0123456789abcdef0
```

El chart crea una StorageClass, `<release>-in-process`, y un claim a partir de ella. El controlador crea un punto de acceso para el claim, cuyo propietario es el usuario `65534`. Los [parámetros adicionales del controlador CSI de EFS](https://github.com/kubernetes-sigs/aws-efs-csi-driver/blob/master/docs/parameters.md), como `basePath`, se definen en `storage.inProcess.storageClass.parameters`.

## Aprovisionamiento previo

**1. Crear un punto de acceso cuyo propietario sea 65534**

```bash theme={null}
aws efs create-access-point --region <region> --file-system-id $FS_ID \
  --posix-user Uid=65534,Gid=65534 \
  --root-directory 'Path=/fineparser,CreationInfo={OwnerUid=65534,OwnerGid=65534,Permissions=755}' \
  --query AccessPointId --output text
```

No monte directamente el directorio raíz del sistema de archivos: su propietario es `root` y FineParser no puede escribir en él.

**2. Crear el volumen y el claim**

```yaml fineparser-in-process.yaml theme={null}
apiVersion: v1
kind: PersistentVolume
metadata:
  name: fineparser-in-process
spec:
  capacity:
    storage: 10Gi
  accessModes: [ReadWriteMany]
  persistentVolumeReclaimPolicy: Retain
  storageClassName: ""
  csi:
    driver: efs.csi.aws.com
    volumeHandle: fs-0123456789abcdef0::fsap-0123456789abcdef0
---
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  name: fineparser-in-process
  namespace: fineparser
spec:
  accessModes: [ReadWriteMany]
  storageClassName: ""
  volumeName: fineparser-in-process
  resources:
    requests:
      storage: 10Gi
```

**3. Apuntar el chart al claim**

```yaml fineparser-values.yaml theme={null}
storage:
  inProcess:
    existingClaim: fineparser-in-process
```
