View a markdown version of this page

Buat kelas penyimpanan - Amazon EKS

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.

Buat kelas penyimpanan

A StorageClass dalam Mode Otomatis Amazon EKS mendefinisikan bagaimana volume Amazon EBS disediakan secara otomatis saat aplikasi meminta penyimpanan persisten. Halaman ini menjelaskan cara membuat dan mengonfigurasi StorageClass yang berfungsi dengan Mode Otomatis Amazon EKS untuk menyediakan volume EBS.

Dengan mengonfigurasi aStorageClass, Anda dapat menentukan pengaturan default untuk volume EBS Anda termasuk jenis volume, enkripsi, IOPS, dan parameter penyimpanan lainnya. Anda juga dapat mengonfigurasi StorageClass untuk menggunakan kunci AWS KMS untuk manajemen enkripsi.

Mode Otomatis EKS tidak membuat StorageClass untuk Anda. Anda harus membuat StorageClass referensi ebs.csi.eks.amazonaws.com untuk menggunakan kemampuan penyimpanan Mode Otomatis EKS.

Pertama, buat file bernamastorage-class.yaml:

apiVersion: storage.k8s.io/v1 kind: StorageClass metadata: name: auto-ebs-sc annotations: storageclass.kubernetes.io/is-default-class: "true" allowedTopologies: - matchLabelExpressions: - key: eks.amazonaws.com/compute-type values: - auto provisioner: ebs.csi.eks.amazonaws.com volumeBindingMode: WaitForFirstConsumer parameters: type: gp3 encrypted: "true"

Kedua, terapkan kelas penyimpanan ke cluster Anda.

kubectl apply -f storage-class.yaml

Komponen kunci:

  • provisioner: ebs---csi---eks.amazonaws.com.rproxy.govskope.ca- Menggunakan Mode Otomatis EKS

  • allowedTopologies- Men matchLabelExpressions entukan untuk mencoco eks.amazonaws.com/compute-type:auto kkan akan memastikan bahwa jika pod Anda memerlukan volume untuk disediakan secara otomatis menggunakan Mode Otomatis maka pod tidak akan dijadwalkan pada node non-Auto.

  • volumeBindingMode: WaitForFirstConsumer- Menunda pembuatan volume sampai pod membutuhkannya

  • type: gp3- Menentukan jenis volume EBS

  • encrypted: "true"- EBS akan mengenkripsi volume apa pun yang dibuat menggunakan. StorageClass EBS akan menggunakan alias aws/ebs kunci default. Untuk informasi selengkapnya, lihat Cara kerja enkripsi Amazon EBS di Panduan Pengguna Amazon EBS. Nilai ini opsional tetapi disarankan.

  • storageclass.kubernetes.io/is-default-class: "true"- Kubernetes akan menggunakan kelas penyimpanan ini secara default, kecuali jika Anda menentukan kelas volume yang berbeda pada klaim volume persisten. Nilai ini bersifat opsional. Berhati-hatilah saat menyetel nilai ini jika Anda bermigrasi dari pengontrol penyimpanan yang berbeda.

Gunakan kunci KMS yang dikelola sendiri untuk mengenkripsi volume EBS

Untuk menggunakan kunci KMS yang dikelola sendiri untuk mengenkripsi volume EBS yang diotomatisasi oleh Mode Otomatis EKS, Anda perlu:

  1. Buat kunci KMS yang dikelola sendiri.

  2. Buat kebijakan baru yang mengizinkan akses ke kunci KMS.

  3. Lampirkan kebijakan ke Peran Cluster EKS.

    • Gunakan AWS konsol untuk menemukan ARN dari EKS Cluster Role. Informasi peran terlihat di bagian Ikh tisar. Untuk informasi selengkapnya, lihat IAM role klaster Amazon EKS.

  4. Perbarui StorageClass untuk mereferensikan ID KMS Key di parameters.kmsKeyId bidang.

Contoh Kebijakan KMS IAM yang dikelola sendiri

Perbarui nilai-nilai berikut dalam kebijakan di bawah ini:

  • <account-id>— ID AWS akun Anda, seperti 111122223333

  • <aws-region>— AWS Wilayah cluster Anda, seperti us-west-2

{ "Version":"2012-10-17", "Id": "key-auto-policy-3", "Statement": [ { "Sid": "Enable IAM User Permissions", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::123456789012:root" }, "Action": "kms:*", "Resource": "*" }, { "Sid": "Allow access through EBS for all principals in the account that are authorized to use EBS", "Effect": "Allow", "Principal": { "AWS": "*" }, "Action": [ "kms:Encrypt", "kms:Decrypt", "kms:ReEncrypt*", "kms:GenerateDataKey*", "kms:CreateGrant", "kms:DescribeKey" ], "Resource": "*", "Condition": { "StringEquals": { "kms:CallerAccount": "123456789012", "kms:ViaService": "ec2.us-east-1.amazonaws.com" } } } ] }

Contoh KMS yang dikelola sendiri StorageClass

parameters: type: gp3 encrypted: "true" kmsKeyId: <custom-key-arn>

StorageClassParameter Referensi

Untuk informasi umum tentang StorageClass sumber daya Kubernetes, lihat Kelas Penyimpanan di Dokument asi Kubernetes.

parametersBagian sumber StorageClass daya khusus untuk AWS. Gunakan tabel berikut untuk meninjau opsi yang tersedia.

Parameter Nilai Default Deskripsi

“csi.storage.k8s. io/fstype”

xfs, ext2, ext3, ext4

ext4

Jenis sistem file yang akan diformat selama pembuatan volume. Parameter ini peka huruf besar/kecil!

“Tipe”

io1, io2, gp2, gp3, sc1, st1, standar, sbp1, sbg1

gp3

Jenis volume EBS.

“IopsperGB”

I/O operasi per detik per GiB. Dapat ditentukan untuk volume IO1, IO2, dan GP3.

“IzinkanAutoIOPSPerGBIncrease”

benar, salah

false

Ketika"true", driver CSI meningkatkan IOPS untuk volume ketika iopsPerGB * <volume size> terlalu rendah untuk masuk ke dalam rentang IOPS yang didukung oleh. AWS Hal ini memungkinkan penyediaan dinamis untuk selalu berhasil, bahkan ketika pengguna menentukan kapasitas atau iopsPerGB nilai PVC yang terlalu kecil. Di sisi lain, ini dapat menimbulkan biaya tambahan, karena volume tersebut memiliki IOPS yang lebih tinggi daripada yang diminta. iopsPerGB

“Iops”

I/O operasi per detik. Dapat ditentukan untuk volume IO1, IO2, dan GP3.

“throughput”

125

Throughput masuk MiB/s. Hanya efektif bila tipe volume gp3 ditentukan.

“terenkripsi”

benar, salah

false

Apakah volume harus dienkripsi atau tidak. Nilai yang valid adalah “benar” atau “salah”.

“BlokEkspres”

benar, salah

false

Mengaktifkan pembuatan volume IO2 Block Express.

“km” KeyId

ARN penuh kunci untuk digunakan saat mengenkripsi volume. Jika tidak ditentukan, AWS akan menggunakan kunci KMS default untuk wilayah volume berada. Ini akan menjadi kunci yang dihasilkan secara otomatis yang dipanggil /aws/ebs jika tidak diubah.

“Ukuran blok”

Ukuran blok yang digunakan saat memformat sistem file yang mendasarinya. Hanya didukung pada node linux dan dengan fstypeext2,, ext3ext4, atau. xfs

“InoDesiSize”

Ukuran inode yang digunakan saat memformat sistem file yang mendasarinya. Hanya didukung pada node linux dan dengan fstypeext2,, ext3ext4, atau. xfs

“bytePerInode”

bytes-per-inodeUntuk digunakan saat memformat sistem file yang mendasarinya. Hanya didukung pada node linux dan dengan fstypeext2,,ext3. ext4

“nomorOfInodes”

number-of-inodesUntuk digunakan saat memformat sistem file yang mendasarinya. Hanya didukung pada node linux dan dengan fstypeext2,,ext3. ext4

“ext4" BigAlloc

benar, salah

false

Mengubah ext4 sistem file untuk menggunakan alokasi blok berkelompok dengan mengaktifkan opsi bigalloc pemformatan. Peringatan: bigalloc mungkin tidak sepenuhnya didukung dengan kernel Linux node Anda.

“ext4" ClusterSize

Ukuran cluster yang digunakan saat memformat ext4 sistem file saat bigalloc fitur diaktifkan. Catatan: ext4BigAlloc Parameter harus diatur ke true.

Untuk informasi selengkapnya, lihat Driver AWS EBS CSI aktif. GitHub

Pertimbangan-pertimbangan

catatan

Anda hanya dapat menerapkan beban kerja tergantung pada Mode Otomatis EKS StorageClasses pada node Mode Otomatis EKS. Jika Anda memiliki cluster dengan tipe node campuran, Anda perlu mengonfigurasi beban kerja Anda agar hanya berjalan pada node Mode Otomatis EKS. Untuk informasi selengkapnya, lihat Kontrol jika beban kerja diterapkan pada node Mode Otomatis EKS.

Kemampuan penyimpanan blok dari EKS Auto Mode berbeda dengan EBS CSI Driver.

  • Penyediaan Statis

    • Jika Anda ingin menggunakan volume EBS yang dibuat secara eksternal dengan Mode Otomatis EKS, Anda perlu menambahkan AWS tag secara manual dengan kunci eks:eks-cluster-name dan nilai nama cluster.

  • Taint Startup Node

    • Anda tidak dapat menggunakan fitur node-startup taint untuk mencegah penjadwalan pod sebelum kesiapan kemampuan penyimpanan

  • Tag Kustom pada Volume yang Disediakan Secara Dinamis

    • Anda tidak dapat menggunakan tanda CLI ekstra tag untuk mengonfigurasi tag khusus pada volume EBS yang disediakan secara dinamis

    • Anda dapat menggunakan StorageClass tagging untuk menambahkan tag khusus. Mode Otomatis EKS akan menambahkan tag ke AWS sumber daya terkait. Anda perlu memperbarui Peran IAM Cluster untuk tag kustom. Untuk informasi selengkapnya, lihat Khusus AWS tag untuk EKS Sumber daya otomatis.

  • Metrik Kinerja Detil EBS

    • Anda tidak dapat mengakses metrik Prometheus untuk kinerja terperinci EBS

Annotation-based Modifikasi volume EBS tidak digunakan lagi

volume-modifier-for-k8sProyek ini telah ditinggalkan demi API Ku VolumeAttributesClass bernetes asli. Proyek ini digunakan untuk mengatur anotasi pada a PersistentVolumeClaim untuk memodifikasi volume EBS. Setelah 31 Oktober 2026, Mode Otomatis Amazon EKS tidak lagi mendukung anotasi ini. Untuk memodifikasi volume EBS (misalnya,, typeiops, atauthroughput) setelah tanggal tersebut, gunakan Kubernet VolumeAttributesClass es API sebagai gantinya. Untuk informasi selengkapnya, lihat Kelas Atribut Volume dalam dokumentasi Kubernetes.

Bermigrasi dari volume-modier-for-k8s ke VolumeAttributesClass

Untuk cluster Mode Otomatis EKS yang menjalankan Kubernetes 1.34 atau yang lebih baru, gunakan VolumeAttributesClass (VAC) untuk mengubah jenis volume EBS, IOPS, atau throughput.

PVC yang ada dapat dimigrasikan di tempat dengan membuat VAC dan pengaturan spec.volumeAttributesClassName pada PVC yang ada. PVC dan PV tidak dibuat ulang dan tidak ada gangguan pada beban kerja Anda selama proses ini.

  1. Tentukan pengaturan volume dalam VAC

    Memetakan anotasi VMK ke parameter VAC sebagai berikut:

    Anotasi VMK yang ada Parameter VAC

    ebs.csi.eks.amazonaws.com/volumeType

    jenis

    ebs.csi.eks.amazonaws.com/iops

    iops

    ebs.csi.eks.amazonaws.com/throughput

    throughput

    Gunakantype, bukanvolumeType, di VAC. Nilai harus berupa string, dan VAC hanya membutuhkan parameter yang relevan dengan konfigurasi EBS yang diinginkan. Contoh:

    apiVersion: storage.k8s.io/v1 kind: VolumeAttributesClass metadata: name: ebs-auto-gp3-6000-250 driverName: ebs.csi.eks.amazonaws.com parameters: type: gp3 iops: "6000" throughput: "250"

    VAC memiliki cakupan cluster, jadi manifes tidak memiliki namespace. Terapkan secara normal:

    kubectl apply -f vac.yaml
  2. Tetapkan VAC ke PVC

    VAC_NAME=ebs-auto-gp3-6000-250 kubectl patch pvc <pvc-name> -n <namespace> --type=merge \ -p "{\"spec\":{\"volumeAttributesClassName\":\"${VAC_NAME}\"}}"
  3. Konfirmasikan bahwa perubahan selesai

    kubectl get pvc <pvc-name> -n <namespace> \ -o custom-columns='NAME:.metadata.name,REQUESTED:.spec.volumeAttributesClassName,CURRENT:.status.currentVolumeAttributesClassName,STATUS:.status.modifyVolumeStatus.status'

    Migrasi selesai ketika REQUESTED dan CURRENT berisi nama VAC yang sama dan STATUS kosong.

    Jika tidak selesai, periksa peristiwa PVC:

    kubectl describe pvc <pvc-name> -n <namespace>

    Pendingbiasanya berarti VAC yang direferensikan tidak tersedia. Infeasibleberarti pengemudi menolak parameter EBS yang diminta; buat VAC yang valid dan tetapkan sebagai gantinya.

Opsional: Hapus anotasi VMK

Menghapus anotasi lama tidak diperlukan agar VAC berfungsi. Setelah PVC atau PV mereferensikan VAC, VMK menolak modifikasi berbasis anotasi dan VAC adalah jalur otoritatif.

Anotasi dapat dihapus nanti sebagai pembersihan konfigurasi. Jika dihapus, perbarui juga Helm, GitOps, atau otomatisasi lain yang akan menambahkannya kembali. Anotasi status VMK yang tersisa di PV tidak berbahaya dan tidak perlu dihapus.

Mengubah atau Mengembalikan Pengaturan

Parameter VAC tidak dapat diubah. Untuk mengubah konfigurasi EBS, buat VAC lain dan tetapkan namanya ke PVC.

Untuk membatalkan perubahan yang belum selesai, kembalikan VAC yang ditetapkan sebelumnya. Jika PVC sebelumnya tidak menggunakannya, bersihkan bidang:

kubectl patch pvc <pvc-name> -n <namespace> --type=merge \ -p '{"spec":{"volumeAttributesClassName":null}}'

Menghapus bidang tidak membatalkan modifikasi EBS yang sudah selesai. Untuk mengembalikan pengaturan volume sebelumnya, buat VAC yang berisi pengaturan tersebut dan tetapkan ke PVC. Batasan parameter EBS normal dan cooldown modifikasi berlaku.

Instal add-on CSI Snapshot Controller

Mode Otomatis EKS kompatibel dengan add-on CSI Snapshot Controller Amazon EKS.

AWS menyarankan Anda mengonfigurasi add-on ini untuk berjalan di kumpulan system node bawaan.

Untuk informasi selengkapnya, lihat:

Untuk menginstal pengontrol snapshot di kumpulan node sistem

  1. Buka cluster EKS Anda di AWS konsol

  2. Dari Add-ons tab, pilih Dapatkan add-on lainnya

  3. Pilih CSI Snapshot Controller dan kemudian Berikutnya

  4. Pada halaman Konfigurasi pengaturan add-on yang dipilih, pilih Pengaturan konfigurasi opsional untuk melihat skema Add-on konfigurasi

    1. Masukkan yaml berikut untuk mengaitkan pengontrol snapshot dengan kumpulan system node. Pengontrol snapshot menyertakan toleransi untuk nodaCriticalAddonsOnly.

      { "nodeSelector": { "karpenter.sh/nodepool": "system" } }
    2. Pilih Ber ikutnya

  5. Tinjau konfigurasi add-on lalu pilih Buat