Jika aplikasi Anda memerlukan penyimpanan tambahan tetapi tidak membutuhkan penyimpanan persisten, Anda dapat memasang volume sementara ke Pod. Volume tersebut dibuat dan dihapus bersamaan dengan Pod terkait, sehingga menyederhanakan penerapan dan pengelolaan aplikasi. Topik ini menjelaskan cara menggunakan disk sebagai volume sementara, memasang volume tersebut ke Pod melalui ephemeral.volumeClaimTemplate, serta memverifikasi bahwa volume persisten (PV) dan klaim volume persisten (PVC) secara otomatis dihapus saat Pod dihapus.
Skenario
Metode ini cocok untuk skenario yang memerlukan penyimpanan sementara, seperti:
Aplikasi Anda memerlukan penyimpanan sementara untuk menyimpan data antara, tetapi tidak perlu mempertahankan data tersebut secara persisten.
Aplikasi Anda menghasilkan log dengan throughput tinggi. Penggunaan penyimpanan sementara non-bersama membantu memastikan kinerja penyimpanan.
Prasyarat
Kluster ACK yang menjalankan versi 1.22 atau lebih baru telah dibuat.
Buat penyebaran dan pasang volume sementara
Saat membuat penyebaran, Anda dapat menggunakan VolumeClaimTemplate untuk secara otomatis membuat PVC dan PV. VolumeClaimTemplate adalah templat yang mendefinisikan PVC. Sistem membuat sejumlah PVC berdasarkan jumlah replika yang ditentukan dalam konfigurasi penyebaran. PVC tersebut memiliki konfigurasi yang sama, kecuali nama masing-masing.
Anda dapat menggunakan ephemeral.volumeClaimTemplate untuk memasang volume sementara pada penyebaran, StatefulSet, dan Pod. Topik ini menggunakan penyebaran sebagai contoh.
Modifikasi konten YAML berikut berdasarkan deskripsi parameter dalam tabel, lalu simpan sebagai file ephemeral-example.yaml.
apiVersion: apps/v1 kind: Deployment metadata: name: ephemeral-example spec: replicas: 2 selector: matchLabels: pod: example-pod strategy: type: Recreate template: metadata: labels: pod: example-pod spec: containers: - name: nginx image: anolis-registry.cn-zhangjiakou.cr.aliyuncs.com/openanolis/nginx:1.14.1-8.6 resources: requests: cpu: 500m memory: 2Gi ephemeral-storage: 2Gi volumeMounts: - mountPath: "/scratch" name: scratch-volume volumes: - name: scratch-volume ephemeral: # Mendeklarasikan penyimpanan saat ini sebagai penyimpanan sementara volumeClaimTemplate: spec: accessModes: [ "ReadWriteOncePod" ] storageClassName: alicloud-disk-topology-alltype resources: requests: storage: 30GiTabel berikut menjelaskan parameter dalam
volumeClaimTemplate.Parameter
Deskripsi
accessModesMode akses volume persisten. Anda dapat mengatur parameter ini menjadi
ReadWriteOncePodatauReadWriteOnce.Jika kluster Anda versi 1.29 atau lebih baru, gunakan
ReadWriteOncePod. Ini memastikan bahwa disk hanya digunakan oleh satu Pod.storageClassNameNama StorageClass yang akan digunakan.
Contoh ini menggunakan
alicloud-disk-topology-alltype, yaitu StorageClass bawaan yang disediakan oleh ACK. StorageClass ini mendefinisikan konfigurasi untuk volume disk. StorageClass ini mencoba membuat disk dalam urutan berikut: SSD Perusahaan (ESSD), SSD standar, dan disk ultra.CatatanDisk ditagih berdasarkan skema bayar sesuai penggunaan. Untuk informasi selengkapnya, lihat penagihan Elastic Block Storage dan harga Elastic Block Storage.
storageKapasitas volume sementara.
CatatanStorageClass yang digunakan dalam contoh (
alicloud-disk-topology-alltype) secara default membuat ESSD PL1. Kapasitas minimum adalah 20 GiB.Gunakan file ephemeral-example.yaml untuk membuat penyebaran.
kubectl create -f ephemeral-example.yamlPeriksa status Pod penyebaran.
kubectl get pod -l pod=example-podOutput yang diharapkan:
NAME READY STATUS RESTARTS AGE ephemeral-example-7f795798f9-kbplx 1/1 Running 0 38s ephemeral-example-7f795798f9-p98lt 1/1 Running 0 38sPeriksa PVC.
kubectl get pvcKeluaran berikut diharapkan. PVC dan PV yang sesuai dengan Pod dibuat secara otomatis. ID disk terdapat pada bidang
VOLUME.NAME STATUS VOLUME CAPACITY ACCESS MODES STORAGECLASS VOLUMEATTRIBUTESCLASS AGE ephemeral-example-7f795798f9-kbplx-scratch-volume Bound d-uf61678cuo33eunn**** 30Gi RWOP alicloud-disk-topology-alltype <unset> 74s ephemeral-example-7f795798f9-p98lt-scratch-volume Bound d-uf6dwkdcowyf2fj6**** 30Gi RWOP alicloud-disk-topology-alltype <unset> 74s
Verifikasi bahwa PV dan PVC dihapus saat Pod mengalami skala-masuk
Saat Anda membuat penyebaran seperti yang dijelaskan pada bagian sebelumnya, disk dipasang secara otomatis ke setiap Pod sebagai volume sementara. Volume tersebut secara otomatis dihapus saat Pod terkait dihapus. Contoh berikut menunjukkan cara memverifikasi perilaku ini.
Kurangi jumlah replika penyebaran.
Perintah berikut mengurangi jumlah replika dalam penyebaran menjadi 1.
kubectl scale deploy ephemeral-example --replicas=1Periksa Pod untuk memastikan skala-masuk telah selesai.
kubectl get pod -l pod=example-podOutput yang diharapkan:
NAME READY STATUS RESTARTS AGE ephemeral-example-7f795798f9-kbplx 1/1 Running 0 5m29sPeriksa PV dan PVC untuk memastikan sumber daya untuk Pod yang dihapus juga dihapus.
Periksa PV.
kubectl get pvKeluaran berikut diharapkan. PV untuk Pod yang dihapus juga dihapus.
NAME CAPACITY ACCESS MODES RECLAIM POLICY STATUS CLAIM STORAGECLASS VOLUMEATTRIBUTESCLASS REASON AGE d-uf61678cuo33eunn**** 30Gi RWOP Delete Bound default/ephemeral-example-7f795798f9-kbplx-scratch-volume alicloud-disk-topology-alltype <unset> 5m52sPeriksa PVC.
kubectl get pvcKeluaran berikut diharapkan. PVC untuk Pod yang dihapus juga dihapus.
NAME STATUS VOLUME CAPACITY ACCESS MODES STORAGECLASS VOLUMEATTRIBUTESCLASS AGE ephemeral-example-7f795798f9-kbplx-scratch-volume Bound d-uf61678cuo33eunn**** 30Gi RWOP alicloud-disk-topology-alltype <unset> 7m11s
Referensi
Untuk informasi selengkapnya tentang cara memantau penggunaan penyimpanan sementara, lihat Pemantauan penyimpanan sementara.
Untuk informasi selengkapnya tentang penggunaan disk untuk penyimpanan persisten, lihat Volume disk.