Pilih preferensi cookie Anda

Kami menggunakan cookie penting serta alat serupa yang diperlukan untuk menyediakan situs dan layanan. Kami menggunakan cookie performa untuk mengumpulkan statistik anonim sehingga kami dapat memahami cara pelanggan menggunakan situs dan melakukan perbaikan. Cookie penting tidak dapat dinonaktifkan, tetapi Anda dapat mengklik “Kustom” atau “Tolak” untuk menolak cookie performa.

Jika Anda setuju, AWS dan pihak ketiga yang disetujui juga akan menggunakan cookie untuk menyediakan fitur situs yang berguna, mengingat preferensi Anda, dan menampilkan konten yang relevan, termasuk iklan yang relevan. Untuk menerima atau menolak semua cookie yang tidak penting, klik “Terima” atau “Tolak”. Untuk membuat pilihan yang lebih detail, klik “Kustomisasi”.

Akses objek Amazon S3 dengan Mountpoint untuk driver Amazon S3 CSI

Mode fokus
Akses objek Amazon S3 dengan Mountpoint untuk driver Amazon S3 CSI - Amazon EKS

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.

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.

Dengan driver Mountpoint for Amazon S3 Container Storage Interface (CSI), aplikasi Kubernetes Anda dapat mengakses objek Amazon S3 melalui antarmuka sistem file, mencapai throughput agregat tinggi tanpa mengubah kode aplikasi apa pun. Dibangun di Mountpoint untuk Amazon S3, driver CSI menghadirkan bucket Amazon S3 sebagai volume yang dapat diakses oleh kontainer di Amazon EKS dan cluster Kubernetes yang dikelola sendiri. Topik ini menunjukkan cara menerapkan driver Mountpoint untuk Amazon S3 CSI ke cluster Amazon EKS Anda.

Pertimbangan

  • Driver Mountpoint untuk Amazon S3 CSI saat ini tidak kompatibel dengan gambar kontainer berbasis Windows.

  • Driver Mountpoint untuk Amazon S3 CSI saat ini tidak kompatibel dengan Amazon EKS Hybrid Nodes.

  • Driver Mountpoint untuk Amazon S3 CSI tidak mendukung Fargate. AWS Namun, container yang berjalan di Amazon EC2 (baik dengan Amazon EKS atau instalasi Kubernetes kustom) didukung.

  • Driver Mountpoint untuk Amazon S3 CSI hanya mendukung penyediaan statis. Penyediaan dinamis, atau pembuatan bucket baru, tidak didukung.

    catatan

    Penyediaan statis mengacu pada penggunaan bucket Amazon S3 yang sudah ada yang ditentukan sebagai bucketName dalam objekvolumeAttributes. PersistentVolume Untuk informasi selengkapnya, lihat Penyediaan Statis aktif. GitHub

  • Volume yang dipasang dengan driver Mountpoint untuk Amazon S3 CSI tidak mendukung semua fitur sistem file POSIX. Untuk detail tentang perilaku sistem file, lihat Mountpoint untuk perilaku sistem file Amazon S3 aktif. GitHub

Prasyarat

  • Penyedia OpenID Connect (OIDC) AWS Identity and Access Management (IAM) yang sudah ada untuk klaster Anda. Untuk menentukan apakah Anda sudah memiliki satu, atau harus membuat satu, lihat Buat penyedia IAM OIDC untuk klaster Anda.

  • Versi 2.12.3 atau yang lebih baru dari AWS CLI diinstal dan dikonfigurasi pada perangkat Anda atau. AWS CloudShell

  • 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 Anda1.29, Anda dapat menggunakan kubectl versi1.28,1.29, atau 1.30 dengan itu. Untuk menginstal atau memutakhirkan kubectl, lihat Mengatur kubectl dan eksctl.

Buat kebijakan IAM

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 AWS terkelola AmazonS3 FullAccess, 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. GitHub

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

  2. Di panel navigasi di sebelah kiri, pilih Kebijakan.

  3. Pada halaman Kebijakan, pilih Buat kebijakan.

  4. Untuk editor Kebijakan, pilih JSON.

  5. Di bawah Editor kebijakan, salin dan tempel yang 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, 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 di Panduan Pengguna Amazon S3.

    Di bawah ini adalah contoh kebijakan hak istimewa paling tidak 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" } ] }
  6. Pilih Berikutnya.

  7. Pada halaman Tinjau dan buat, beri nama kebijakan Anda. Contoh walkthrough ini menggunakan nama. AmazonS3CSIDriverPolicy

  8. Pilih Buat kebijakan.

Membuat peran IAM

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 ini:

catatan

Kebijakan IAM AmazonS3CSIDriverPolicy dibuat di bagian sebelumnya.

eksctl

Untuk membuat peran IAM driver Mountpoint untuk Amazon S3 CSI Anda 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

AWS Management Console

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

  2. Di panel navigasi sebelah kiri, pilih Peran.

  3. Pada halaman Peran, pilih Buat peran.

  4. Pada halaman Pilih entitas tepercaya, lakukan hal berikut:

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

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

      Jika tidak URLs ditampilkan, tinjau Prasyarat.

    3. Untuk Audiens, pilih sts.amazonaws.com.

    4. Pilih Berikutnya.

  5. Pada halaman Tambahkan izin, lakukan hal berikut:

    1. Di kotak Filter kebijakan, masukkan Kebijakan AmazonS3CSIDriver.

      catatan

      Kebijakan ini dibuat di bagian sebelumnya.

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

    3. Pilih Berikutnya.

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

    1. Untuk nama Peran, masukkan nama unik untuk peran Anda, seperti DriverRole Amazoneks_S3_CSI_.

    2. 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 di Panduan Pengguna IAM.

    3. Pilih Buat peran.

  7. Setelah peran dibuat, pilih peran di konsol untuk dibuka, dan kemudian diedit.

  8. Pilih tab Trust relationship, lalu pilih Edit trust policy.

  9. 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 klaster 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"
  10. Pastikan Condition operator disetel ke"StringEquals".

  11. Pilih Perbarui kebijakan untuk menyelesaikan.

AWS CLI

  1. Lihat URL penyedia OIDC untuk klaster Anda. Ganti my-cluster dengan nama klaster Anda. Jika output dari perintah adalah None, tinjau Prasyarat.

    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
  2. 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.region-code.amazonaws.com/id/EXAMPLED539D4633E53DE1B71EXAMPLE" }, "Action": "sts:AssumeRoleWithWebIdentity", "Condition": { "StringEquals": { "oidc.eks.region-code.amazonaws.com/id/EXAMPLED539D4633E53DE1B71EXAMPLE:sub": "system:serviceaccount:kube-system:s3-csi-driver-sa", "oidc.eks.region-code.amazonaws.com/id/EXAMPLED539D4633E53DE1B71EXAMPLE:aud": "sts.amazonaws.com" } } } ] }
    2. 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"
  3. 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.

  4. Lewati langkah ini jika Anda menginstal driver sebagai add-on Amazon EKS. Untuk instalasi driver yang dikelola sendiri, buat akun layanan Kubernetes yang dianotasi dengan ARN dari 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: mountpoint-s3-csi-controller-sa namespace: kube-system annotations: eks.amazonaws.com/role-arn: arn:aws: iam::111122223333:role/AmazonEKS_S3_CSI_DriverRole
    2. Buat akun layanan Kubernetes di klaster Anda. Akun layanan Kubernetes (mountpoint-s3-csi-controller-sa) dianotasi dengan peran IAM yang Anda buat bernama. AmazonEKS_S3_CSI_DriverRole

      kubectl apply -f mountpoint-s3-service-account.yaml
      catatan

      Ketika Anda menyebarkan plugin dalam prosedur ini, itu membuat dan dikonfigurasi untuk menggunakan akun layanan bernamas3-csi-driver-sa.

Instal Mountpoint untuk driver Amazon S3 CSI

Anda dapat menginstal driver Mountpoint untuk Amazon S3 CSI melalui add-on Amazon EKS. Anda dapat menggunakan alat berikut untuk menambahkan add-on ke cluster Anda:

Atau, Anda dapat menginstal driver Mountpoint untuk Amazon S3 CSI sebagai instalasi yang dikelola sendiri. Untuk petunjuk cara melakukan instalasi yang dikelola sendiri, lihat Instalasi aktif. GitHub

Mulai dariv1.8.0, Anda dapat mengonfigurasi taint untuk mentolerir Pod driver CSI. Untuk melakukan ini, tentukan satu set taint khusus untuk ditoleransi node.tolerations atau tolorasikan semua noda. node.tolerateAllTaints Untuk informasi selengkapnya, lihat Taints and Tolerations dalam dokumentasi Kubernetes.

eksctl

Untuk menambahkan add-on Amazon S3 CSI menggunakan eksctl

Jalankan perintah berikut. Ganti my-cluster dengan nama klaster Anda, 111122223333 dengan ID akun Anda, dan AmazonEKS_S3_CSI_DriverRole dengan nama peran IAM yang dibuat sebelumnya.

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, pembaruan 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 ditimpa dengan opsi ini. Untuk informasi selengkapnya tentang opsi lain untuk setelan ini, lihat 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

Anda dapat menyesuaikan eksctl melalui file konfigurasi. Untuk informasi selengkapnya, lihat Bekerja dengan nilai konfigurasi 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

AWS Management Console

  1. Buka konsol Amazon EKS.

  2. Pada panel navigasi sebelah kiri, pilih Klaster.

  3. Pilih nama cluster yang ingin Anda konfigurasikan add-on Mountpoint untuk Amazon S3 CSI.

  4. Pilih tab Add-ons.

  5. Pilih Get more add-ons

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

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

    2. Pilih Berikutnya.

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

    1. Pilih Versi yang ingin Anda gunakan.

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

    3. (Opsional) Perbarui metode resolusi Konflik setelah memperluas pengaturan konfigurasi Opsional. Jika Anda memilih Override, satu atau beberapa pengaturan untuk add-on yang ada dapat ditimpa 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.

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

    5. Pilih Berikutnya.

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

AWS CLI

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

Jalankan perintah berikut. Ganti my-cluster dengan nama klaster 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 --configuration-values bendera. 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}}'

Konfigurasikan Mountpoint untuk Amazon S3

Dalam kebanyakan kasus, Anda dapat mengonfigurasi Mountpoint untuk Amazon S3 hanya dengan nama bucket. Untuk petunjuk tentang mengonfigurasi Mountpoint untuk Amazon S3, lihat Mengonfigurasi Mountpoint untuk Amazon S3 aktif. GitHub

Deploy aplikasi sampel

Anda dapat menerapkan penyediaan statis ke driver di bucket Amazon S3 yang ada. Untuk informasi selengkapnya, lihat Penyediaan statis aktif. GitHub

Hapus Mountpoint untuk Driver Amazon S3 CSI

Anda memiliki dua opsi untuk menghapus add-on Amazon EKS.

  • Pertahankan perangkat lunak add-on di cluster Anda — Opsi ini menghapus pengelolaan Amazon EKS dari pengaturan apa pun. Ini juga menghapus kemampuan Amazon EKS untuk memberi tahu Anda tentang pembaruan dan secara otomatis memperbarui add-on Amazon EKS setelah Anda memulai pembaruan. Namun, ini mempertahankan perangkat lunak add-on di cluster Anda. Opsi ini menjadikan add-on instalasi yang dikelola sendiri, bukan add-on Amazon EKS. Dengan opsi ini, tidak ada downtime untuk add-on. Perintah dalam prosedur ini menggunakan opsi ini.

  • Hapus perangkat lunak add-on sepenuhnya dari klaster Anda — Kami menyarankan Anda menghapus add-on Amazon EKS dari klaster Anda hanya jika tidak ada sumber daya di klaster Anda yang bergantung padanya. Untuk melakukan opsi ini, hapus --preserve dari perintah yang Anda gunakan dalam prosedur ini.

Jika add-on memiliki akun IAM yang terkait dengannya, akun IAM tidak akan dihapus.

Anda dapat menggunakan alat berikut untuk menghapus add-on Amazon S3 CSI:

eksctl

Untuk menghapus add-on Amazon S3 CSI menggunakan eksctl

Ganti my-cluster dengan nama cluster Anda, lalu jalankan perintah berikut.

eksctl delete addon --cluster my-cluster --name aws-mountpoint-s3-csi-driver --preserve

AWS Management Console

  1. Buka konsol Amazon EKS.

  2. Pada panel navigasi sebelah kiri, pilih Klaster.

  3. Pilih nama cluster yang ingin Anda hapus add-on Amazon EBS CSI.

  4. Pilih tab Add-ons.

  5. Pilih Mountpoint untuk Driver Amazon S3 CSI.

  6. Pilih Hapus.

  7. Dalam Hapus: Konfirmasi aws-mountpoint-s 3-csi-driver kotak dialog, lakukan hal berikut:

    1. Jika Anda ingin Amazon EKS berhenti mengelola pengaturan untuk add-on, pilih Pertahankan di klaster. Lakukan ini jika Anda ingin mempertahankan perangkat lunak add-on di cluster Anda. Ini agar Anda dapat mengelola semua pengaturan add-on sendiri.

    2. Masukkan aws-mountpoint-s3-csi-driver.

    3. Pilih Hapus.

AWS CLI

Untuk menghapus add-on Amazon S3 CSI menggunakan CLI AWS

Ganti my-cluster dengan nama cluster Anda, lalu jalankan perintah berikut.

aws eks delete-addon --cluster-name my-cluster --addon-name aws-mountpoint-s3-csi-driver --preserve
PrivasiSyarat situsPreferensi cookie
© 2025, Amazon Web Services, Inc. atau afiliasinya. Semua hak dilindungi undang-undang.