> ## 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.

# EFS-Dateisystem

Das in-process-Volume befindet sich auf einem EFS-Dateisystem, das Sie selbst erstellen. Das Volume darauf kann entweder automatisch vom chart bereitgestellt oder von Ihnen vorab bereitgestellt werden:

| | Automatisch bereitgestellt (Standard) | Vorab bereitgestellt |
| - | - | - |
| Von Ihnen zu erstellen | Das Dateisystem | Das Dateisystem, einen Access Point, ein PersistentVolume und einen claim |
| Von Ihnen festzulegen | `storage.inProcess.efs.fileSystemId` | `storage.inProcess.existingClaim` |
| IAM für den EFS-CSI-Treiber | `AmazonEFSCSIDriverPolicy` auf dem Controller | Keine |

## Dateisystem erstellen

Das Dateisystem benötigt in jeder Availability Zone, in der Ihre Knoten laufen, ein Mount-Ziel mit einer Sicherheitsgruppe, die eingehenden TCP-Verkehr auf Port 2049 von den Knoten zulässt.

```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)

# einmal pro Verfügbarkeitszone (Availability Zone) ausführen
aws efs create-mount-target --region <region> \
  --file-system-id $FS_ID --subnet-id <subnet-id> --security-groups <security-group-id>
```

Der elastische Durchsatz skaliert mit dem Worker-Pool.

## EFS-CSI-Treiber installieren

Für die automatische Bereitstellung benötigt der Controller des Treibers die Richtlinie `AmazonEFSCSIDriverPolicy`, um Access Points erstellen zu können:

```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
```

Für ein vorab bereitgestelltes Volume ist die Rolle nicht erforderlich. Weitere Installationsmethoden finden Sie unter [Amazon EFS](https://docs.aws.amazon.com/eks/latest/userguide/efs-csi.html) in der Amazon EKS-Dokumentation.

## Automatisch bereitgestellt

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

Das chart erstellt eine StorageClass `<release>-in-process` sowie einen darauf basierenden claim. Der Treiber legt für den claim einen Access Point an, dessen Eigentümer der Benutzer `65534` ist. Zusätzliche [Parameter des EFS-CSI-Treibers](https://github.com/kubernetes-sigs/aws-efs-csi-driver/blob/master/docs/parameters.md), etwa `basePath`, werden unter `storage.inProcess.storageClass.parameters` angegeben.

## Vorab bereitgestellt

**1. Access Point mit Besitzer 65534 erstellen**

```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
```

Binden Sie das Stammverzeichnis des Dateisystems nicht direkt ein. Es gehört `root`, daher kann FineParser nicht darin schreiben.

**2. Volume und Claim erstellen**

```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. Chart auf den Claim verweisen**

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