

 **Bantu tingkatkan halaman ini** 

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Untuk berkontribusi pada panduan pengguna ini, pilih **Edit halaman ini pada GitHub** tautan yang terletak di panel kanan setiap halaman.

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

# Gunakan penyimpanan sistem file elastis dengan Amazon EFS
<a name="efs-csi"></a>

 [Amazon Elastic File System](https://docs.aws.amazon.com/efs/latest/ug/whatisefs.html) (Amazon EFS) menyediakan penyimpanan file tanpa server dan sepenuhnya elastis sehingga Anda dapat berbagi data file tanpa menyediakan atau mengelola kapasitas dan kinerja penyimpanan. [Driver Amazon EFS Container Storage Interface (CSI)](https://github.com/kubernetes-sigs/aws-efs-csi-driver) memungkinkan cluster Kubernetes berjalan untuk me-mount sistem file AWS Amazon EFS sebagai volume persisten. Topik ini menunjukkan cara menerapkan driver Amazon EFS CSI ke cluster Amazon EKS Anda.

## Pertimbangan-pertimbangan
<a name="efs-csi-considerations"></a>
+ Driver Amazon EFS CSI tidak kompatibel dengan gambar kontainer berbasis Windows.
+ [Anda tidak dapat menggunakan [penyediaan dinamis untuk volume persisten dengan](https://github.com/kubernetes-sigs/aws-efs-csi-driver/blob/master/examples/kubernetes/efs/dynamic_provisioning/README.md) node Fargate, tetapi Anda dapat menggunakan penyediaan statis.](https://github.com/kubernetes-sigs/aws-efs-csi-driver/blob/master/examples/kubernetes/efs/static_provisioning/README.md)
+  [Penyediaan dinamis](https://github.com/kubernetes-sigs/aws-efs-csi-driver/blob/master/examples/kubernetes/efs/dynamic_provisioning/README.md) membutuhkan [1.2](https://github.com/kubernetes-sigs/aws-efs-csi-driver/blob/master/CHANGELOG-1.x.md#v12) atau lebih baru dari driver. Anda dapat menggunakan [penyediaan statis](https://github.com/kubernetes-sigs/aws-efs-csi-driver/blob/master/examples/kubernetes/efs/static_provisioning/README.md) untuk volume persisten menggunakan versi driver pada `1.1` versi kluster Amazon EKS yang didukung (lihat versi yang [didukung Amazon EKS](https://docs.aws.amazon.com/eks/latest/userguide/kubernetes-versions.html)).
+ Versi [1.3.2](https://github.com/kubernetes-sigs/aws-efs-csi-driver/blob/master/CHANGELOG-1.x.md#v132) atau yang lebih baru dari driver ini mendukung arsitektur Arm64, termasuk instans berbasis Amazon EC2 Graviton.
+ Versi [1.4.2](https://github.com/kubernetes-sigs/aws-efs-csi-driver/blob/master/CHANGELOG-1.x.md#v142) atau yang lebih baru dari driver ini mendukung penggunaan FIPS untuk memasang sistem file.
+ Catat kuota sumber daya untuk Amazon EFS. Untuk informasi selengkapnya, lihat [kuota Amazon EFS](https://docs.aws.amazon.com/efs/latest/ug/limits.html).
+ Mulai versi [2.0.0](https://github.com/kubernetes-sigs/aws-efs-csi-driver/blob/master/CHANGELOG-2.x.md#v200), driver ini beralih dari menggunakan `stunnel` ke `efs-proxy` koneksi TLS. Ketika `efs-proxy` digunakan, itu akan membuka sejumlah thread sama dengan satu ditambah jumlah core untuk node yang sedang berjalan.
+ Driver Amazon EFS CSI tidak kompatibel dengan Amazon EKS Hybrid Nodes.

## Prasyarat
<a name="efs-csi-prereqs"></a>
+ Driver Amazon EFS CSI memerlukan izin AWS Identity and Access Management (IAM).
  +  AWS menyarankan menggunakan EKS Pod Identities. Untuk informasi selengkapnya, lihat [Ikhtisar pengaturan EKS Pod Identities](pod-identities.md#pod-id-setup-overview).
  + Untuk informasi tentang peran IAM untuk akun layanan dan menyiapkan penyedia IAM OpenID Connect (OIDC) untuk klaster Anda, lihat. [Buat penyedia IAM OIDC untuk klaster Anda](enable-iam-roles-for-service-accounts.md)
+ Versi `2.12.3` atau yang lebih baru atau versi `1.27.160` atau yang lebih baru dari AWS Command Line Interface (AWS CLI) diinstal dan dikonfigurasi pada perangkat Anda atau. AWS CloudShell Untuk memeriksa versi Anda saat ini, gunakan`aws --version | cut -d / -f2 | cut -d ' ' -f1`. Package manager seperti`yum`,`apt-get`, atau Homebrew untuk macOS seringkali merupakan beberapa versi di belakang versi terbaru CLI. AWS Untuk menginstal versi terbaru, lihat [Menginstal](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-install.html) dan [Konfigurasi cepat dengan aws configure](https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-quickstart.html#cli-configure-quickstart-config) di *Panduan Pengguna Antarmuka Baris AWS Perintah*. Versi AWS CLI yang diinstal AWS CloudShell mungkin juga beberapa versi di belakang versi terbaru. Untuk memperbaruinya, lihat [Menginstal AWS CLI ke direktori home Anda](https://docs.aws.amazon.com/cloudshell/latest/userguide/vm-specs.html#install-cli-software) di * AWS CloudShell Panduan Pengguna*.
+ Alat baris `kubectl` perintah diinstal pada perangkat Anda atau AWS CloudShell. Versinya bisa sama dengan atau hingga satu versi minor lebih awal atau lebih lambat dari versi Kubernetes dari klaster Anda. Misalnya, jika versi cluster Anda`1.29`, Anda dapat menggunakan `kubectl` versi`1.28`,`1.29`, atau `1.30` dengan itu. Untuk menginstal atau memutakhirkan `kubectl`, lihat [Mengatur `kubectl` dan `eksctl`](install-kubectl.md).

**catatan**  
Pod yang berjalan di Fargate secara otomatis memasang sistem file Amazon EFS, tanpa memerlukan langkah penginstalan driver secara manual.

## Langkah 1: Buat peran IAM
<a name="efs-create-iam-resources"></a>

Driver Amazon EFS CSI memerlukan izin IAM untuk berinteraksi dengan sistem file Anda. Buat peran IAM dan lampirkan kebijakan ` arn:aws: iam::aws:policy/service-role/AmazonEFSCSIDriverPolicy` terkelola padanya.

**catatan**  
Jika Anda ingin menggunakan penyimpanan sistem file Amazon EFS dan Amazon S3, Anda harus melampirkan kebijakan `AmazonEFSCSIDriverPolicy` dan kebijakan `AmazonS3FilesCSIDriverPolicy` terkelola ke peran IAM Anda. Untuk informasi selengkapnya tentang penyimpanan sistem file Amazon S3, lihat. [Gunakan penyimpanan sistem file Amazon S3 dengan driver Amazon EFS CSI](s3files-csi.md)

Untuk menerapkan prosedur ini, Anda dapat menggunakan salah satu alat ini:
+  [`eksctl`](#eksctl_efs_store_app_data) 
+  [Konsol Manajemen AWS](#console_efs_store_app_data) 
+  [AWS CLI](#awscli_efs_store_app_data) 

**catatan**  
Langkah-langkah spesifik dalam prosedur ini ditulis untuk menggunakan driver sebagai add-on Amazon EKS. Untuk detail tentang instalasi yang dikelola sendiri, lihat [Mengatur izin driver](https://github.com/kubernetes-sigs/aws-efs-csi-driver/blob/master/docs/install.md#set-up-driver-permission) pada. GitHub

### `eksctl`
<a name="eksctl_efs_store_app_data"></a>

#### Jika menggunakan Identitas Pod
<a name="efs-eksctl-pod-identities"></a>

Jalankan perintah berikut untuk membuat peran IAM dan asosiasi Pod Identity dengan`eksctl`. Ganti `my-cluster` dengan nama klaster Anda. Anda juga dapat mengganti `AmazonEKS_EFS_CSI_DriverRole` dengan nama yang berbeda.

```
export cluster_name=my-cluster
export role_name=AmazonEKS_EFS_CSI_DriverRole
eksctl create podidentityassociation \
    --service-account-name efs-csi-controller-sa \
    --namespace kube-system \
    --cluster $cluster_name \
    --role-name $role_name \
    --permission-policy-arns arn:aws: iam::aws:policy/service-role/AmazonEFSCSIDriverPolicy
```

#### Jika menggunakan peran IAM untuk akun layanan
<a name="efs-eksctl-irsa"></a>

Jalankan perintah berikut untuk membuat peran IAM dengan`eksctl`. Ganti `my-cluster` dengan nama klaster Anda. Anda juga dapat mengganti `AmazonEKS_EFS_CSI_DriverRole` dengan nama yang berbeda.

```
export cluster_name=my-cluster
export role_name=AmazonEKS_EFS_CSI_DriverRole
eksctl create iamserviceaccount \
    --name efs-csi-controller-sa \
    --namespace kube-system \
    --cluster $cluster_name \
    --role-name $role_name \
    --role-only \
    --attach-policy-arn arn:aws: iam::aws:policy/service-role/AmazonEFSCSIDriverPolicy \
    --approve
TRUST_POLICY=$(aws iam get-role --output json --role-name $role_name --query 'Role.AssumeRolePolicyDocument' | \
    sed -e 's/efs-csi-controller-sa/efs-csi-*/' -e 's/StringEquals/StringLike/')
aws iam update-assume-role-policy --role-name $role_name --policy-document "$TRUST_POLICY"
```

### Konsol Manajemen AWS
<a name="console_efs_store_app_data"></a>

Jalankan berikut ini untuk membuat peran IAM dengan Konsol Manajemen AWS.

1. Buka konsol IAM di https://console.aws.amazon.com/iam/.

1. Di panel navigasi sebelah kiri, pilih **Peran**.

1. Pada halaman **Peran**, pilih **Buat peran**.

1. Pada halaman **Pilih entitas tepercaya**, lakukan hal berikut:

   1. Jika menggunakan Identitas Pod EKS:

      1. Di bagian **Jenis entitas tepercaya**, pilih ** AWS layanan**.

      1. Dalam tarik-turun **Layanan atau kasus penggunaan**, pilih **EKS**.

      1. Di bagian **Use case**, pilih **EKS - Pod Identity**.

      1. Pilih **Berikutnya**.

   1. Jika menggunakan peran IAM untuk akun layanan:

      1. Di bagian **Jenis entitas tepercaya**, pilih **Identitas web**.

      1. Untuk **penyedia Identity**, pilih **URL penyedia OpenID Connect** untuk klaster Anda (seperti yang ditunjukkan di bawah **Ikhtisar** di Amazon EKS).

      1. Untuk **Audiens**, pilih `sts.amazonaws.com`.

      1. Pilih **Berikutnya**.

1. Pada halaman **Tambahkan izin**, lakukan hal berikut:

   1. Di dalam kotak **Filter kebijakan**, masukkan `AmazonEFSCSIDriverPolicy`.

   1. Pilih kotak centang di sebelah kiri yang `AmazonEFSCSIDriverPolicy` dikembalikan dalam pencarian.

   1. Pilih **Berikutnya**.

1. Pada halaman **Nama, tinjau, dan buat**, lakukan hal berikut:

   1. Untuk **nama Peran**, masukkan nama unik untuk peran Anda, seperti`AmazonEKS_EFS_CSI_DriverRole`.

   1. Di bawah **Tambahkan tag (Opsional)**, tambahkan metadata ke peran dengan melampirkan tag sebagai pasangan nilai kunci. Untuk informasi selengkapnya tentang penggunaan tanda di IAM, lihat [Menandai sumber daya IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_tags.html) di *Panduan Pengguna IAM*.

   1. Pilih **Buat peran**.

1. Setelah peran dibuat:

   1. Jika menggunakan Identitas Pod EKS:

      1. Buka [konsol Amazon EKS](https://console.aws.amazon.com/eks/home#/clusters).

      1. Di panel navigasi kiri, pilih **Clusters**, lalu pilih nama cluster yang ingin Anda konfigurasikan untuk asosiasi EKS Pod Identity.

      1. Pilih tab **Access**.

      1. Dalam **asosiasi Pod Identity**, pilih **Create**.

      1. Pilih dropdown **peran IAM** dan pilih peran yang baru Anda buat.

      1. Pilih kolom **namespace Kubernetes dan masukan**. `kube-system`

      1. Pilih kolom **akun layanan Kubernetes dan** masukan. `efs-csi-controller-sa`

      1. Pilih **Buat**.

      1. Untuk informasi selengkapnya tentang membuat asosiasi Pod Identity, lihat[Membuat asosiasi Pod Identity (AWS Console)](pod-id-association.md#pod-id-association-create).

   1. Jika menggunakan peran IAM untuk akun layanan:

      1. Pilih peran untuk membukanya untuk diedit.

      1. Pilih tab **Trust relationship**, lalu pilih **Edit trust policy**.

      1. Temukan garis yang terlihat mirip dengan baris berikut:

         ```
         "oidc.eks.region-code.amazonaws.com/id/<EXAMPLED539D4633E53DE1B71EXAMPLE>:aud": "sts.amazonaws.com"
         ```

         Tambahkan baris berikut di atas baris sebelumnya. Ganti `<region-code>` dengan AWS Wilayah tempat cluster Anda berada. Ganti `<EXAMPLED539D4633E53DE1B71EXAMPLE>` dengan ID penyedia OIDC cluster Anda.

         ```
         "oidc.eks.<region-code>.amazonaws.com/id/<EXAMPLED539D4633E53DE1B71EXAMPLE>:sub": "system:serviceaccount:kube-system:efs-csi-*",
         ```

      1. Ubah `Condition` operator dari `"StringEquals"` ke`"StringLike"`.

      1. Pilih **Perbarui kebijakan** untuk menyelesaikan.

### AWS CLI
<a name="awscli_efs_store_app_data"></a>

Jalankan perintah berikut untuk membuat peran IAM dengan AWS CLI.

#### Jika menggunakan Identitas Pod
<a name="efs-cli-pod-identities"></a>

1. Buat peran IAM yang memberikan `AssumeRole` dan `TagSession` tindakan ke layanan. `pods.eks.amazonaws.com`

   1. Salin isi berikut ke file bernama `aws-efs-csi-driver-trust-policy-pod-identity.json`.

      ```
      {
          "Version":"2012-10-17",		 	 	 
          "Statement": [
              {
                  "Sid": "AllowEksAuthToAssumeRoleForPodIdentity",
                  "Effect": "Allow",
                  "Principal": {
                      "Service": "pods.eks.amazonaws.com"
                  },
                  "Action": [
                      "sts:AssumeRole",
                      "sts:TagSession"
                  ]
              }
          ]
      }
      ```

   1. Buat peran. Ganti `my-cluster` dengan nama klaster Anda. Anda juga dapat mengganti `AmazonEKS_EFS_CSI_DriverRole` dengan nama yang berbeda.

      ```
      export cluster_name=my-cluster
      export role_name=AmazonEKS_EFS_CSI_DriverRole
      aws iam create-role \
        --role-name $role_name \
        --assume-role-policy-document file://"aws-efs-csi-driver-trust-policy-pod-identity.json"
      ```

1. Lampirkan kebijakan AWS terkelola yang diperlukan ke peran dengan perintah berikut.

   ```
   aws iam attach-role-policy \
     --policy-arn arn:aws: iam::aws:policy/service-role/AmazonEFSCSIDriverPolicy \
     --role-name $role_name
   ```

1. Jalankan perintah berikut untuk membuat asosiasi Pod Identity. Ganti `<111122223333>` dengan ID akun Anda.

   ```
   aws eks create-pod-identity-association --cluster-name $cluster_name --role-arn {arn-aws}iam::<111122223333>:role/$role_name --namespace kube-system --service-account efs-csi-controller-sa
   ```

1. Untuk informasi selengkapnya tentang membuat asosiasi Pod Identity, lihat[Membuat asosiasi Pod Identity (AWS Console)](pod-id-association.md#pod-id-association-create).

#### Jika menggunakan peran IAM untuk akun layanan
<a name="efs-cli-irsa"></a>

1. Lihat URL penyedia OIDC klaster Anda. Ganti `my-cluster` dengan nama klaster Anda. Anda juga dapat mengganti `AmazonEKS_EFS_CSI_DriverRole` dengan nama yang berbeda.

   ```
   export cluster_name=my-cluster
   export role_name=AmazonEKS_EFS_CSI_DriverRole
   aws eks describe-cluster --name $cluster_name --query "cluster.identity.oidc.issuer" --output text
   ```

   Contoh output adalah sebagai berikut.

   ```
   https://oidc.eks.<region-code>.amazonaws.com/id/<EXAMPLED539D4633E53DE1B71EXAMPLE>
   ```

   Jika output dari perintah adalah `None`, tinjau **Prasyarat**.

1. Buat peran IAM yang memberikan tindakan. `AssumeRoleWithWebIdentity`

   1. Salin isi berikut ke file bernama `aws-efs-csi-driver-trust-policy.json`. Ganti `<111122223333>` dengan ID akun Anda. Ganti `<EXAMPLED539D4633E53DE1B71EXAMPLE>` dan `<region-code>` dengan nilai yang dikembalikan pada langkah sebelumnya.

      ```
      {
        "Version":"2012-10-17",		 	 	 
        "Statement": [
          {
            "Effect": "Allow",
            "Principal": {
              "Federated": "arn:aws:iam::123456789012:oidc-provider/oidc.eks.us-east-1.amazonaws.com/id/EXAMPLED539D4633E53DE1B71EXAMPLE"
            },
            "Action": "sts:AssumeRoleWithWebIdentity",
            "Condition": {
              "StringLike": {
                "oidc.eks.us-east-1.amazonaws.com/id/EXAMPLED539D4633E53DE1B71EXAMPLE:sub": "system:serviceaccount:kube-system:efs-csi-*",
                "oidc.eks.us-east-1.amazonaws.com/id/EXAMPLED539D4633E53DE1B71EXAMPLE:aud": "sts.amazonaws.com"
              }
            }
          }
        ]
      }
      ```

   1. Buat peran.

      ```
      aws iam create-role \
        --role-name $role_name \
        --assume-role-policy-document file://"aws-efs-csi-driver-trust-policy.json"
      ```

1. Lampirkan kebijakan AWS terkelola yang diperlukan ke peran dengan perintah berikut.

   ```
   aws iam attach-role-policy \
     --policy-arn arn:aws: iam::aws:policy/service-role/AmazonEFSCSIDriverPolicy \
     --role-name $role_name
   ```

## Langkah 2: Dapatkan driver Amazon EFS CSI
<a name="efs-install-driver"></a>

Kami menyarankan Anda menginstal driver Amazon EFS CSI melalui add-on Amazon EKS. Untuk menambahkan add-on Amazon EKS ke cluster Anda, lihat[Buat add-on Amazon EKS](creating-an-add-on.md). Untuk informasi selengkapnya tentang add-on, lihat[Add-on Amazon EKS](eks-add-ons.md). Jika Anda tidak dapat menggunakan add-on Amazon EKS, kami mendorong Anda untuk mengirimkan masalah tentang mengapa Anda tidak dapat ke repositori [peta jalan GitHub Containers](https://github.com/aws/containers-roadmap/issues).

**penting**  
Sebelum menambahkan driver Amazon EFS sebagai add-on Amazon EKS, konfirmasikan bahwa Anda tidak memiliki versi driver yang dikelola sendiri yang diinstal di cluster Anda. Jika demikian, lihat [Menghapus Instalasi Driver Amazon EFS CSI](https://github.com/kubernetes-sigs/aws-efs-csi-driver/blob/master/docs/install.md#uninstalling-the-amazon-efs-csi-driver) di. GitHub

Atau, jika Anda ingin instalasi yang dikelola sendiri dari driver Amazon EFS CSI, lihat [Instalasi](https://github.com/kubernetes-sigs/aws-efs-csi-driver/blob/master/docs/install.md) aktif. GitHub

## Langkah 3: Buat sistem file Amazon EFS
<a name="efs-create-filesystem"></a>

Untuk membuat sistem file Amazon EFS, lihat [Membuat sistem file Amazon EFS untuk Amazon EKS](https://github.com/kubernetes-sigs/aws-efs-csi-driver/blob/master/docs/efs-create-filesystem.md) GitHub.

## Langkah 4: Menyebarkan aplikasi sampel
<a name="efs-sample-app"></a>

Anda dapat menerapkan berbagai contoh aplikasi dan memodifikasinya sesuai kebutuhan. Untuk informasi selengkapnya, lihat [Contoh](https://github.com/kubernetes-sigs/aws-efs-csi-driver/tree/master/examples/kubernetes) di GitHub.