Object Storage Service (OSS) menyediakan penyimpanan berskala besar, aman, hemat biaya, dan sangat andal untuk data tidak terstruktur seperti gambar, file audio, dan file video. Topik ini menjelaskan cara memasang volume OSS ke instans kontainer elastis.
Catatan penggunaan
-
OSS ditagih berdasarkan penggunaan dan mendukung metode penagihan seperti pay-as-you-go, paket sumber daya, dan storage capacity units (SCUs). Untuk informasi selengkapnya, lihat Ikhtisar penagihan OSS.
-
OSS menyediakan penyimpanan bersama. Satu bucket OSS dapat dipasang ke beberapa instans.
-
Jangan menyimpan lebih dari 1.000 file dalam satu direktori mount.
Jumlah file yang berlebihan dapat menyebabkan klien OSS mengonsumsi memori dalam jumlah besar, yang berpotensi memicu event OOM (out-of-memory) pada instans.
Prasyarat
-
Buat bucket OSS.
-
Masuk ke Konsol OSS.
-
Buat bucket OSS.
Untuk informasi selengkapnya, lihat Membuat bucket.
-
-
Pilih metode otorisasi.
-
Gunakan peran RAM untuk otorisasi (direkomendasikan).
Buat peran RAM dan berikan izin kepadanya. Untuk informasi selengkapnya, lihat Membuat peran RAM dan Memberikan izin ke peran RAM.
Saat membuat peran tersebut, atur Trusted Entity Type menjadi Alibaba Cloud Service, Role Type menjadi Normal Service Role, dan Trusted Service menjadi Elastic Compute Service (ECS). Lampirkan kebijakan AliyunOSSFullAccess ke peran tersebut.
-
Gunakan Pasangan Kunci Akses untuk otorisasi (tidak direkomendasikan).
Dapatkan ID AccessKey dan Secret AccessKey. Untuk informasi selengkapnya, lihat Mendapatkan Pasangan Kunci Akses.
-
Konfigurasi (API)
Saat memanggil operasi API CreateContainerGroup untuk membuat instans kontainer elastis, Anda dapat menggunakan parameter terkait Volume untuk menentukan volume, lalu menggunakan parameter terkait Container.VolumeMount untuk memasang volume tersebut ke kontainer. Parameter terkait dijelaskan di bawah ini. Untuk informasi selengkapnya, lihat CreateContainerGroup.
Deklarasikan volume
Saat menggunakan parameter terkait Volume untuk menentukan volume, Anda harus terlebih dahulu menentukan tipe dan nama volume tersebut. Kemudian, konfigurasikan parameter Volume lainnya berdasarkan nilai parameter Volume.N.Type.
|
Parameter |
Tipe |
Contoh |
Deskripsi |
|
Volume.N.Name |
String |
oss-demo |
Nama volume. |
|
Volume.N.Type |
String |
FlexVolume |
Atur ke FlexVolume untuk membuat volume yang dipasang menggunakan plugin FlexVolume. |
|
Volume.N.FlexVolume.Driver |
String |
alicloud/oss |
Driver plugin FlexVolume. Atur ke |
|
Volume.N.FlexVolume.Options |
String |
{"bucket":"test-*","url":"oss-cn-hangzhou.aliyuncs.com","ramRole":"ram-*"} |
String JSON berisi opsi untuk objek FlexVolume. Saat Anda menggunakan FlexVolume untuk memasang volume OSS, parameter
|
Memasang volume
Setelah menentukan volume, Anda dapat menggunakan parameter terkait VolumeMount untuk memasang volume tersebut ke kontainer.
Parameter | Tipe | Contoh | Deskripsi |
Container.N.VolumeMount.N.Name | String | test-volume | Nama volume N yang akan dipasang ke kontainer N. Nilai ini sama dengan nilai Volume.N.Name. |
Container.N.VolumeMount.N.MountPath | String | /usr/share | Jalur dalam kontainer tempat volume dipasang. Data dalam direktori ini akan tertutup oleh data pada volume. |
Container.N.VolumeMount.N.SubPath | String | /usr/sub | Subdirektori dari volume. Parameter ini menentukan subdirektori berbeda dari volume yang sama yang dapat dipasang instans ke subdirektori berbeda dalam kontainer. |
Container.N.VolumeMount.N.ReadOnly | Boolean | false | Menentukan apakah direktori mount bersifat read-only. Nilai default: false. |
Container.N.VolumeMount.N.MountPropagation | String | None | Pengaturan propagasi mount untuk volume N. Propagasi mount memungkinkan Anda berbagi volume yang dipasang ke satu kontainer dengan kontainer lain dalam instans kontainer elastis yang sama, atau bahkan dengan instans kontainer elastis lain pada host yang sama. Nilai yang valid:
Nilai default: None. |
Volume juga dapat dipasang ke init container. Parameter yang diperlukan mirip dengan parameter pada tabel di atas. Anda hanya perlu mengganti Container menjadi InitContainer.
Konfigurasi (Konsol)
Saat membuat instans kontainer elastis di halaman pembelian Elastic Container Instance, Anda dapat menentukan volume di bagian Container Group Configurations, lalu memasang volume tersebut ke kontainer di bagian Container Configurations.
Deklarasikan volume
-
Di bagian Container Group Configurations, buka Advanced Settings.
-
Di bagian Storage, pada tab OSS Persistence, klik Add.
-
Konfigurasikan parameter volume OSS.
-
Name: Nama volume OSS.
-
Bucket: Nama bucket OSS.
-
RAM Role: Peran RAM yang memiliki izin untuk mengakses OSS.
-
Memasang volume
-
Di bagian Container Configurations, pilih kontainer dan buka pengaturan lanjutannya.
-
Aktifkan sakelar Storage dan klik Add.
Volume yang tersedia adalah volume yang telah Anda deklarasikan dalam konfigurasi kelompok kontainer.
Pada baris konfigurasi penyimpanan, atur Volume ke volume yang telah dideklarasikan, misalnya
oss-demo, pilih tipe penyimpanan, misalnya OSS Persistence, dan masukkan Mount Path in Container, misalnya/data. Secara opsional, tentukan Sub Path, misalnyatest, dan centang kotak pilihan Read-only.
Jika ingin memasang volume ke beberapa kontainer, pilih lebih banyak kontainer dan ulangi langkah-langkah di atas.
Contoh konfigurasi
-
Buat instans kontainer elastis, Instans A, dan pasang volume OSS ke instans tersebut.
Contoh berikut menunjukkan parameter yang digunakan untuk memanggil operasi CreateContainerGroup guna membuat Instans A. Untuk informasi selengkapnya, lihat CreateContainerGroup.
ContainerGroupName=test-oss-a # Deklarasikan volume Volume.1.Name=oss-demo Volume.1.Type=FlexVolume Volume.1.FlexVolume.Driver=alicloud/oss Volume.1.FlexVolume.Options={"bucket":"test-***","url":"oss-cn-hangzhou-internal.aliyuncs.com","ramRole":"ram-***"} # Pasang volume ke kontainer Container.1.Name=nginx Container.1.Image=registry-vpc.cn-hangzhou.aliyuncs.com/eci_open/nginx:1.14.2 Container.1.VolumeMount.1.Name=oss-demo Container.1.VolumeMount.1.MountPath=/data-a -
Hubungkan ke Instans A dan buat file di direktori mount.
Untuk informasi tentang cara menghubungkan ke instans kontainer elastis, lihat Menghubungkan ke instans ECI menggunakan Workbench.
root@test-oss-a:/# cd data-a root@test-oss-a:/data-a# ls root@test-oss-a:/data-a# echo "hello" >test root@test-oss-a:/data-a# ls test root@test-oss-a:/data-a# cat test hello -
Hapus Instans A.
-
Buat instans kontainer elastis lain, Instans B, dan pasang volume OSS yang sama ke instans tersebut.
ContainerGroupName=test-oss-b # Deklarasikan volume Volume.1.Name=oss-demo Volume.1.Type=FlexVolume Volume.1.FlexVolume.Driver=alicloud/oss Volume.1.FlexVolume.Options={"bucket":"test-***","url":"oss-cn-hangzhou-internal.aliyuncs.com","ramRole":"ram-***"} # Pasang volume ke kontainer Container.1.Name=nginx Container.1.Image=registry-vpc.cn-hangzhou.aliyuncs.com/eci_open/nginx:1.14.2 Container.1.VolumeMount.1.Name=oss-demo Container.1.VolumeMount.1.MountPath=/data-b -
Hubungkan ke Instans B dan periksa file di direktori mount.
Karena OSS menyediakan penyimpanan persisten, Anda tetap dapat mengakses file yang ditulis oleh Instans A dari Instans B, meskipun Instans A telah dihapus.
root@test-oss-b:/# cd data-b root@test-oss-b:/data-b# ls test root@test-oss-b:/data-b# cat test hello