

 **Bantu meningkatkan 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 GitHub ** tautan ** Edit halaman ini di 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.

# Menyebarkan driver Mountpoint untuk Amazon S3
<a name="s3-csi-create"></a>

Dengan driver [ Mountpoint for Amazon S3 Container Storage Interface (CSI)](https://github.com/awslabs/mountpoint-s3-csi-driver), aplikasi Kubernetes Anda dapat mengakses objek Amazon S3 melalui antarmuka sistem file, mencapai throughput agregat yang tinggi tanpa mengubah kode aplikasi apa pun.

Prosedur ini akan menunjukkan kepada Anda cara menerapkan driver [ Mountpoint untuk Amazon S3 CSI Amazon EKS. ](s3-csi.md) Sebelum melanjutkan, tinjau per [ timbangan](s3-csi.md#s3-csi-considerations).

## Prasyarat
<a name="s3-csi-prereqs"></a>
+ Penyedia AWS Identitas dan Manajemen Akses (IAM) OpenID Connect (OIDC) yang ada untuk cluster Anda. Untuk menentukan apakah Anda sudah memiliki satu, atau harus membuat satu, lihat [Buat penyedia IAM OIDC untuk klaster Anda](enable-iam-roles-for-service-accounts.md).
+ Versi `2.12.3` atau yang lebih baru dari AWS CLI diinstal dan dikonfigurasi pada perangkat Anda atau AWS CloudShell.
+ Alat `kubectl` baris perintah diinstal pada perangkat Anda atau AWS CloudShell. Versi dapat sama dengan atau hingga satu versi minor lebih awal atau lebih baru dari versi Kubernetes cluster Anda. Misalnya, jika versi cluster Anda adalah`1.29`, Anda dapat menggunakan `kubectl` versi `1.28``1.29`,, atau `1.30` dengannya. Untuk menginstal atau memutakhirkan `kubectl`, lihat [Siapkan `kubectl dan eksctl` ``](install-kubectl.md).

## Langkah 1: Buat kebijakan IAM
<a name="s3-create-iam-policy"></a>

Driver Mountpoint untuk Amazon S3 CSI memerlukan izin Amazon S3 untuk berinteraksi dengan sistem file Anda. Bagian ini menunjukkan cara membuat kebijakan IAM yang memberikan izin yang diperlukan.

Kebijakan contoh berikut mengikuti rekomendasi izin IAM untuk Mountpoint. Atau, Anda dapat menggunakan kebijakan terkel AWS ola [ AmazonS3FullAccess](https://console.aws.amazon.com/iam/home?#/policies/arn:aws:iam::aws:policy/AmazonS3FullAccess$jsonEditor), tetapi kebijakan terkelola ini memberikan lebih banyak izin daripada yang diperlukan untuk Mountpoint.

Untuk informasi selengkapnya tentang izin yang disarankan untuk Mountpoint, lihat Izin IAM [ Mountpoint pada. ](https://github.com/awslabs/mountpoint-s3/blob/main/doc/CONFIGURATION.md#iam-permissions) GitHub

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

1. Di panel navigasi di sebelah kiri, pilih **Kebijakan**.

1. Pada ** halaman ** Kebijakan, pilih ** Buat kebijakan**.

1. Untuk editor ** kebijakan**, pilih ** JSON**.

1. Di bawah Editor ** kebijakan**, salin dan tempel berikut ini:
**penting**  
Ganti `amzn-s3-demo-bucket1` dengan nama bucket Amazon S3 Anda sendiri.

   ```
   {
      "Version":"2012-10-17",		 	 	 
      "Statement": [
           {
               "Sid": "MountpointFullBucketAccess",
               "Effect": "Allow",
               "Action": [
                   "s3:ListBucket"
               ],
               "Resource": [
                   "arn:aws:s3:::amzn-s3-demo-bucket1"
               ]
           },
           {
               "Sid": "MountpointFullObjectAccess",
               "Effect": "Allow",
               "Action": [
                   "s3:GetObject",
                   "s3:PutObject",
                   "s3:AbortMultipartUpload",
                   "s3:DeleteObject"
               ],
               "Resource": [
                   "arn:aws:s3:::amzn-s3-demo-bucket1/*"
               ]
           }
      ]
   }
   ```

   Bucket direktori, yang diperkenalkan dengan kelas penyimpanan Amazon S3 Express One Zone, menggunakan mekanisme otentikasi yang berbeda dari bucket tujuan umum. Alih-alih menggunakan `s3:*` tindakan, Anda harus menggunakan `s3express:CreateSession` tindakan. Untuk informasi tentang bucket direktori, lihat [ Bucket direktori ](https://docs.aws.amazon.com/AmazonS3/latest/userguide/directory-buckets-overview.html) di Panduan Pengguna * Amazon S3*.

   Di bawah ini adalah contoh kebijakan hak istimewa terkecil yang akan Anda gunakan untuk bucket direktori.

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Effect": "Allow",
               "Action": "s3express:CreateSession",
               "Resource": "arn:aws:s3express:us-west-2:111122223333:bucket/amzn-s3-demo-bucket1--usw2-az1--x-s3"
           }
       ]
   }
   ```

1. Pilih **Berikutnya**.

1. Pada ** halaman T ** injau dan buat, beri nama kebijakan Anda. Panduan contoh ini menggunakan nama`AmazonS3CSIDriverPolicy`.

1. Pilih **Buat kebijakan**.

## Langkah 2: Buat peran IAM
<a name="s3-create-iam-role"></a>

Driver Mountpoint untuk Amazon S3 CSI memerlukan izin Amazon S3 untuk berinteraksi dengan sistem file Anda. Bagian ini menunjukkan cara membuat peran IAM untuk mendelegasikan izin ini. Untuk membuat peran ini, Anda dapat menggunakan salah satu alat berikut:
+  [eksctl](#eksctl_s3_store_app_data) 
+  [Konsol Manajemen AWS](#console_s3_store_app_data) 
+  [AWS CLI](#awscli_s3_store_app_data) 

**catatan**  
Kebijakan IAM `AmazonS3CSIDriverPolicy` dibuat di bagian sebelumnya.

### eksctl
<a name="eksctl_s3_store_app_data"></a>

 **Untuk membuat peran IAM driver Mountpoint for Amazon S3 CSI dengan `eksctl` ** 

Untuk membuat peran IAM dan akun layanan Kubernetes, jalankan perintah berikut. Perintah ini juga melampirkan kebijakan `AmazonS3CSIDriverPolicy` IAM ke peran, membuat anotasi akun layanan Kubernetes (`s3-csi-controller-sa`) dengan Nama Sumber Daya Amazon (ARN) peran IAM, dan menambahkan nama akun layanan Kubernetes ke kebijakan kepercayaan untuk peran IAM.

```
CLUSTER_NAME=my-cluster
REGION=region-code
ROLE_NAME=AmazonEKS_S3_CSI_DriverRole
POLICY_ARN=AmazonEKS_S3_CSI_DriverRole_ARN
eksctl create iamserviceaccount \
    --name s3-csi-driver-sa \
    --namespace kube-system \
    --cluster $CLUSTER_NAME \
    --attach-policy-arn $POLICY_ARN \
    --approve \
    --role-name $ROLE_NAME \
    --region $REGION \
    --role-only
```

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

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. Di ** bagian ** Jenis entitas tepercaya, pilih Identitas ** web**.

   1. Untuk penyedia ** Identitas**, pilih URL penyedia ** OpenID Connect ** untuk cluster Anda (seperti yang ditunjukkan di bawah Ikhtis ** ar ** di Amazon EKS).

      Jika tidak ada URL yang ditampilkan, tinjau Pras [ yarat](#s3-csi-prereqs).

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

   1. Pilih **Berikutnya**.

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

   1. Di dalam kotak **Filter kebijakan**, masukkan AmazonS3CSIDriverPolicy.
**catatan**  
Kebijakan ini dibuat di bagian sebelumnya.

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

   1. Pilih **Berikutnya**.

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

   1. Untuk Nama ** Peran**, masukkan nama unik untuk peran Anda, seperti Amazonek DriverRole s\_S3\_CSI\_.

   1. Di bawah ** Tambah tag (Opsional)**, tambahkan metadata ke peran dengan melampirkan tag sebagai pasangan kunci-nilai. 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, pilih peran di konsol untuk dibuka, dan kemudian diedit.

1. Pilih ** tab Relasi ** kepercayaan, lalu pilih ** Edit kebijakan kepercayaan**.

1. Temukan baris yang serupa dengan yang berikut ini:

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

   Tambahkan koma ke akhir baris sebelumnya, lalu tambahkan baris berikut setelahnya. 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:s3-csi-driver-sa"
   ```

1. Pastikan `Condition` operator diatur ke`"StringEquals"`.

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

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

1. Lihat URL penyedia OIDC untuk cluster Anda. Ganti {{my-cluster}} dengan nama klaster Anda. Jika output dari perintah adalah `None`, tinjau [Prasyarat](#s3-csi-prereqs).

   ```
   aws eks describe-cluster --name my-cluster --query "cluster.identity.oidc.issuer" --output text
   ```

   Contoh output adalah sebagai berikut.

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

1. Buat IAM role, yang memberikan tindakan `AssumeRoleWithWebIdentity` untuk akun layanan Kubernetes.

   1. Salin konten berikut ke file bernama `aws-s3-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::111122223333:oidc-provider/oidc.eks.us-east-1.amazonaws.com/id/EXAMPLED539D4633E53DE1B71EXAMPLE"
            },
            "Action": "sts:AssumeRoleWithWebIdentity",
            "Condition": {
              "StringEquals": {
                "oidc.eks.us-east-1.amazonaws.com/id/EXAMPLED539D4633E53DE1B71EXAMPLE:sub": "system:serviceaccount:kube-system:s3-csi-driver-sa",
                "oidc.eks.us-east-1.amazonaws.com/id/EXAMPLED539D4633E53DE1B71EXAMPLE:aud": "sts.amazonaws.com"
              }
            }
          }
        ]
      }
      ```

   1. Buat peran. Anda dapat mengubah {{AmazonEKS\_S3\_CSI\_DriverRole}} ke nama yang berbeda, tetapi jika Anda melakukannya, pastikan untuk mengubahnya juga dalam langkah berikutnya.

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

1. Lampirkan kebijakan IAM yang dibuat sebelumnya ke peran dengan perintah berikut.

   ```
   aws iam attach-role-policy \
     --policy-arn arn:aws: iam::aws:policy/AmazonS3CSIDriverPolicy \
     --role-name AmazonEKS_S3_CSI_DriverRole
   ```
**catatan**  
Kebijakan IAM `AmazonS3CSIDriverPolicy` dibuat di bagian sebelumnya.

1. Lewati langkah ini jika Anda menginstal driver sebagai add-on Amazon EKS. Untuk penginstalan driver yang dikelola sendiri, buat akun layanan Kubernetes yang dianotasi dengan ARN peran IAM yang Anda buat.

   1. Simpan konten berikut ini ke file bernama `mountpoint-s3-service-account.yaml`. Ganti {{111122223333}} dengan ID akun Anda.

      ```
      ---
      apiVersion: v1
      kind: ServiceAccount
      metadata:
        labels:
          app.kubernetes.io/name: aws-mountpoint-s3-csi-driver
        name: s3-csi-driver-sa
        namespace: kube-system
        annotations:
          eks.amazonaws.com/role-arn: arn:aws: iam::111122223333:role/AmazonEKS_S3_CSI_DriverRole
      ```

   1. Buat akun layanan Kubernetes di cluster Anda. Akun layanan Kubernetes (`s3-csi-driver-sa`) diberi anotasi dengan peran IAM yang Anda buat bernama. {{AmazonEKS\_S3\_CSI\_DriverRole}}

      ```
      kubectl apply -f mountpoint-s3-service-account.yaml
      ```
**catatan**  
Ketika Anda menerapkan plugin dalam prosedur ini, itu membuat dan dikonfigurasi untuk menggunakan akun layanan bernama`s3-csi-driver-sa`.

## Langkah 3: Instal driver Mountpoint untuk Amazon S3 CSI
<a name="s3-install-driver"></a>

Anda dapat menginstal driver Mountpoint for Amazon S3 CSI melalui add-on Amazon EKS. Anda dapat menggunakan alat berikut untuk menambahkan add-on ke cluster Anda:
+  [eksctl](#eksctl_s3_add_store_app_data) 
+  [Konsol Manajemen AWS](#console_s3_add_store_app_data) 
+  [AWS CLI](#awscli_s3_add_store_app_data) 

Atau, Anda dapat menginstal driver Mountpoint untuk Amazon S3 CSI sebagai instalasi yang dikelola sendiri. Untuk petunjuk tentang melakukan instalasi yang dikelola sendiri, lihat [ Instalasi aktif](https://github.com/awslabs/mountpoint-s3-csi-driver/blob/main/docs/INSTALL.md#deploy-mountpoint-for-amazon-s3-csi-driver). GitHub

Mulai dari`v1.8.0`, Anda dapat mengonfigurasi noda untuk ditoleransi untuk Pod driver CSI. Untuk melakukan ini, tentukan kumpulan noda khusus untuk ditoleransi `node.tolerations` atau mentolerir semua noda. `node.tolerateAllTaints` Untuk informasi selengkapnya, lihat [ Taints and Tolerations ](https://kubernetes.io/docs/concepts/scheduling-eviction/taint-and-toleration/) dalam dokumentasi Kubernetes.

### eksctl
<a name="eksctl_s3_add_store_app_data"></a>

 **Untuk menambahkan add-on Amazon S3 CSI menggunakan `eksctl` ** 

Jalankan perintah berikut. Ganti {{my-cluster}} dengan nama cluster Anda, {{111122223333}} dengan ID akun Anda, dan {{AmazonEKS\_S3\_CSI\_DriverRole}} dengan nama peran [ IAM yang dibuat sebelumnya](#s3-create-iam-role).

```
eksctl create addon --name aws-mountpoint-s3-csi-driver --cluster my-cluster \
  --service-account-role-arn arn:aws: iam::111122223333:role/AmazonEKS_S3_CSI_DriverRole --force
```

Jika Anda menghapus {{--force}} opsi dan salah satu pengaturan add-on Amazon EKS bertentangan dengan pengaturan yang ada, maka memperbarui add-on Amazon EKS gagal, dan Anda menerima pesan kesalahan untuk membantu Anda menyelesaikan konflik. Sebelum menentukan opsi ini, pastikan add-on Amazon EKS tidak mengelola pengaturan yang perlu Anda kelola, karena pengaturan tersebut diganti dengan opsi ini. Untuk informasi selengkapnya tentang opsi lain untuk pengaturan ini, lihat [ Addon ](https://eksctl.io/usage/addons/) dalam `eksctl` dokumentasi. Untuk informasi selengkapnya tentang pengelolaan lapangan Amazon EKS Kubernetes, lihat. [Tentukan bidang yang dapat Anda sesuaikan untuk add-on Amazon EKS](kubernetes-field-management.md)

Anda dapat menyesuaikan `eksctl` melalui file konfigurasi. Untuk informasi selengkapnya, lihat [ Bekerja dengan nilai konfigurasi ](https://eksctl.io/usage/addons/#working-with-configuration-values) dalam `eksctl` dokumentasi. Contoh berikut menunjukkan bagaimana mentolerir semua noda.

```
# config.yaml
...

addons:
- name: aws-mountpoint-s3-csi-driver
  serviceAccountRoleARN: arn:aws: iam::111122223333:role/AmazonEKS_S3_CSI_DriverRole
  configurationValues: |-
    node:
      tolerateAllTaints: true
```

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

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

1. Pada panel navigasi sebelah kiri, pilih **Klaster**.

1. Pilih nama cluster tempat Anda ingin mengonfigurasi add-on Mountpoint for Amazon S3 CSI.

1. Pilih ** Add-ons ** tab.

1. Pilih **Get more add-ons**

1. Pada halaman **Pilih add-on**, lakukan hal berikut:

   1. Di EKS-addons ** bagian ** Amazon, pilih kotak centang ** Mountpoint for Amazon S3 CSI Driver**.

   1. Pilih **Berikutnya**.

1. Pada halaman **Configure selected add-ons settings**, lakukan hal berikut:

   1. Pilih ** versi ** yang ingin Anda gunakan.

   1. Untuk ** Pilih peran IAM**, pilih nama peran IAM yang Anda lampirkan kebijakan IAM driver Mountpoint for Amazon S3 CSI.

   1. (Opsional) Perbarui metode resolusi ** konflik ** setelah memperluas pengaturan konfigurasi ** Opsional**. Jika Anda memilih ** Override**, satu atau lebih pengaturan untuk add-on yang ada dapat diganti dengan pengaturan add-on Amazon EKS. Jika Anda tidak mengaktifkan opsi ini dan ada konflik dengan pengaturan yang ada, operasi gagal. Anda dapat menggunakan pesan kesalahan yang dihasilkan untuk memecahkan masalah konflik. Sebelum memilih opsi ini, pastikan add-on Amazon EKS tidak mengelola pengaturan yang perlu Anda kelola sendiri.

   1. (Opsional) Konfigurasikan toleransi di ** bidang Nilai ** konfigurasi setelah memperluas pengaturan ** konfigurasi ** opsional.

   1. Pilih **Berikutnya**.

1. Pada halaman **Review dan add**, pilih **Create**. Setelah penginstalan add-on selesai, Anda melihat add-on yang diinstal.

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

 **Untuk menambahkan add-on Mountpoint untuk Amazon S3 CSI menggunakan CLI AWS ** 

Jalankan perintah berikut. Ganti {{my-cluster}} dengan nama cluster Anda, {{111122223333}} dengan ID akun Anda, dan {{AmazonEKS\_S3\_CSI\_DriverRole}} dengan nama peran yang dibuat sebelumnya.

```
aws eks create-addon --cluster-name my-cluster --addon-name aws-mountpoint-s3-csi-driver \
  --service-account-role-arn arn:aws: iam::111122223333:role/AmazonEKS_S3_CSI_DriverRole
```

Anda dapat menyesuaikan perintah dengan ben `--configuration-values` dera. Contoh alternatif berikut menunjukkan bagaimana mentolerir semua noda.

```
aws eks create-addon --cluster-name my-cluster --addon-name aws-mountpoint-s3-csi-driver \
  --service-account-role-arn arn:aws: iam::111122223333:role/AmazonEKS_S3_CSI_DriverRole \
  --configuration-values '{"node":{"tolerateAllTaints":true}}'
```

## Langkah 4: Konfigurasikan Mountpoint untuk Amazon S3
<a name="s3-configure-mountpoint"></a>

Dalam kebanyakan kasus, Anda dapat mengonfigurasi Mountpoint untuk Amazon S3 hanya dengan nama bucket. Untuk petunjuk tentang cara mengonfigurasi Mountpoint untuk Amazon S3, lihat Mengon [ figurasi Mountpoint untuk Amazon S3 pada. ](https://github.com/awslabs/mountpoint-s3/blob/main/doc/CONFIGURATION.md) GitHub

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

Anda dapat menerapkan penyediaan statis ke driver pada bucket Amazon S3 yang ada. Untuk informasi selengkapnya, lihat Penye [ diaan statis aktif](https://github.com/awslabs/mountpoint-s3-csi-driver/blob/main/examples/kubernetes/static_provisioning/README.md). GitHub