NAS adalah sistem file terdistribusi yang bersifat shared, scalable, sangat andal, dan berkinerja tinggi yang disediakan oleh Alibaba Cloud. Topik ini menjelaskan cara memasang volume NAS ke Elastic Container Instance (ECI).
Poin penting
-
NAS ditagih berdasarkan penggunaan dan mendukung metode penagihan pay-as-you-go, paket sumber daya, dan SCU. Untuk informasi selengkapnya, lihat Ikhtisar Penagihan NAS.
-
Sistem file NAS harus berada dalam VPC yang sama dengan instans.
-
NAS menyediakan penyimpanan bersama. Satu sistem file NAS dapat dipasang ke beberapa instans. Jika beberapa instans memodifikasi data yang sama secara bersamaan, aplikasi Anda harus menangani sinkronisasi data.
-
Jangan menghapus titik pemasangan NAS sebelum melepas pemasangan volume NAS. Tindakan tersebut dapat menyebabkan sistem operasi tidak merespons.
Persiapan
Sebelum menggunakan Alibaba Cloud File Storage NAS sebagai volume, buat sistem file NAS dan titik pemasangan. Untuk informasi selengkapnya, lihat Buat sistem file dan Kelola titik pemasangan.
Rincian konfigurasi (OpenAPI)
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.
Anda dapat mendeklarasikan volume NAS dengan salah satu dari dua cara berikut:
-
Memasang volume bertipe NFS
Name
Type
Example value
Description
Volume.N.Name
String
nas-demo
Nama volume.
Volume.N.Type
String
NFSVolume
Atur ke NFSVolume untuk membuat volume bertipe NFS.
Volume.N.NFSVolume.Server
String
3f9cd4**-na*.cn-shanghai.nas.aliyuncs.com
Alamat server NFS.
Jika Anda menggunakan Alibaba Cloud File Storage NAS, ini adalah alamat titik pemasangan sistem file NAS.
Volume.N.NFSVolume.Path
String
/share
Jalur volume NFS.
Volume.N.NFSVolume.ReadOnly
Boolean
false
Izin baca untuk volume NFS. Nilai yang valid:
-
true: read-only
-
false: baca dan tulis
Nilai default: false.
-
-
Memasang volume menggunakan plugin FlexVolume
Name
Type
Example value
Description
Volume.N.Name
String
nas-demo
Nama volume.
Volume.N.Type
String
FlexVolume
Atur ke FlexVolume untuk memasang volume menggunakan plugin FlexVolume.
Volume.N.FlexVolume.Driver
String
alicloud/nas
Tipe driver saat memasang volume menggunakan plugin FlexVolume. Atur ke
alicloud/nasuntuk memasang Alibaba Cloud File Storage NAS.Volume.N.FlexVolume.Options
String
{"server":"3f9cd4**-na*.cn-shanghai.nas.aliyuncs.com","path": "/share","vers":"3","options":"nolock,tcp,noresvport"}
Opsi key-value untuk objek FlexVolume, diteruskan sebagai string JSON.
Saat memasang NAS menggunakan FlexVolume, Options menentukan parameter konfigurasi volume NAS. Anda dapat mengonfigurasi parameter berikut:
-
server: alamat titik pemasangan sistem file NAS.
-
path: subdirektori di bawah jalur sistem file NAS, dimulai dengan
/.-
Masukkan subdirektori yang sudah ada di sistem file NAS. Jika subdirektori tersebut tidak ada di direktori root, subdirektori akan dibuat sebelum pemasangan.
-
Untuk sistem file NAS Ekstrem, subdirektori harus dimulai dengan
/share. -
Parameter ini opsional. Jika dihilangkan, direktori root sistem file NAS akan dipasang secara default.
-
-
vers: versi protokol NFS yang digunakan untuk memasang sistem file NAS. Kami merekomendasikan penggunaan v3. NAS Ekstrem hanya mendukung v3.
-
options: opsi pemasangan kustom untuk NAS, diformat sebagai "xxx,xxx,xxx", seperti
nolock,tcp,noresvport.
-
Memasang volume
Setelah menentukan volume, Anda dapat menggunakan parameter terkait VolumeMount untuk memasang volume tersebut ke kontainer.
Parameter | Type | Example | Description |
Container.N.VolumeMount.N.Name | String | test-volume | Nama volume N yang akan dipasang ke kontainer N. Nilai ini adalah nilai dari 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 di kontainer. |
Container.N.VolumeMount.N.ReadOnly | Boolean | false | Menentukan apakah direktori pemasangan bersifat read-only. Nilai default: false. |
Container.N.VolumeMount.N.MountPropagation | String | None | Pengaturan propagasi pemasangan dari volume N. Propagasi pemasangan memungkinkan Anda berbagi volume yang dipasang ke satu kontainer dengan kontainer lain dalam instans kontainer elastis yang sama, atau bahkan ke 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.
Rincian 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 configuration, buka Advanced Configuration.
-
Di bawah Storage, pilih tab NAS persistent storage, lalu klik Add.
-
Konfigurasikan parameter volume NAS.
-
Name: nama volume NAS.
-
Mount target: titik pemasangan sistem file NAS.
-
Path: jalur dalam sistem file NAS yang akan dipasang.
-
Read-only: izin baca data. Baca dan tulis diaktifkan secara default. Pilih read-only sesuai kebutuhan.
-
Memasang volume
-
Di bagian Container configuration, pilih kontainer dan buka konfigurasi lanjutannya.
-
Aktifkan toggle Storage, lalu klik Add.
Volume yang tersedia adalah volume yang telah dideklarasikan selama konfigurasi kelompok kontainer.
Di Select storage, pilih volume yang telah dideklarasikan (misalnya, nas-demo). Atur tipe penyimpanan ke NAS persistent storage. Masukkan
/datauntuk Mount path in container dan/testuntuk Subdirectory. Pilih Read-only sesuai kebutuhan.
Jika ingin memasang volume ke beberapa kontainer, pilih lebih banyak kontainer dan ulangi langkah-langkah di atas.
Contoh konfigurasi
-
Buat instans ECI A dan pasang volume NAS ke instans tersebut.
Contoh berikut menunjukkan parameter yang digunakan untuk memanggil operasi CreateContainerGroup guna membuat instans A. Untuk informasi selengkapnya, lihat CreateContainerGroup.
ContainerGroupName=test-nas-a SecurityGroupId=sg-bp1daxpbz9lzpvvc**** VSwitchId=vsw-bp1gds63lmlm7ib05**** # Deklarasikan volume Volume.1.Name=nas-demo Volume.1.Type=NFSVolume Volume.1.NFSVolume.Server=3f9cd4****-na***.cn-shanghai.nas.aliyuncs.com Volume.1.NFSVolume.Path=/share # 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=nas-demo Container.1.VolumeMount.1.MountPath=/data-a -
Hubungkan ke instans A dan buat file di direktori pemasangan.
Untuk informasi tentang cara menghubungkan ke instans ECI, lihat Hubungkan ke instans ECI menggunakan Workbench.
root@test-nas-a:/# cd data-a root@test-nas-a:/data-a# ls root@test-nas-a:/data-a# echo "hello" >test root@test-nas-a:/data-a# ls test root@test-nas-a:/data-a# cat test hello -
Hapus instans A.
-
Buat instans ECI B dan pasang volume NAS yang sama ke instans tersebut.
ContainerGroupName=test-nas-b SecurityGroupId=sg-bp1daxpbz9lzpvvc**** VSwitchId=vsw-bp1gds63lmlm7ib05**** # Deklarasikan volume Volume.1.Name=nas-demo Volume.1.Type=FlexVolume Volume.1.FlexVolume.Driver=alicloud/nas Volume.1.FlexVolume.Options={"server":"3f9cd4****-na***.cn-shanghai.nas.aliyuncs.com","path": "/share"} # 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=nas-demo Container.1.VolumeMount.1.MountPath=/data-b -
Hubungkan ke instans B dan verifikasi file di direktori pemasangan.
Karena baik instans A maupun instans B memasang volume NAS yang sama—dan NAS menyediakan penyimpanan persisten—file yang dibuat oleh instans A tetap dapat diakses melalui instans B setelah instans A dihapus.
root@test-nas-b:/# cd data-b root@test-nas-b:/data-b# ls test root@test-nas-b:/data-b# cat test hello