Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Aplikasi kontainer memiliki akses ke berbagai jenis penyimpanan. Satu aplikasi dapat memanfaatkan lebih dari satu jenis penyimpanan jika perlu.
Catatan
Hindari menggunakan karakter khusus dalam nama volume untuk mencegah kegagalan penyebaran. Misalnya, volume bernama credentials.json berisi karakter khusus (.) yang menghasilkan kesalahan penyebaran.
| Jenis penyimpanan | Deskripsi | Keteguhan | Contoh penggunaan |
|---|---|---|---|
| Penyimpanan berskala kontainer | Penyimpanan sementara tersedia untuk kontainer yang sedang berjalan | Data tersedia hingga kontainer dimatikan | Menulis cache aplikasi lokal. |
| Penyimpanan yang terlingkup untuk replika | Penyimpanan sementara untuk berbagi file antar kontainer dalam replika yang sama | Data tersedia hingga replika dimatikan | Kontainer aplikasi utama, yang menulis file log, diproses oleh kontainer sidecar. |
| Azure Files | Penyimpanan permanen | Data disimpan ke Azure Files | Menulis file ke berbagi file untuk membuat data dapat diakses oleh sistem lain. |
Catatan
Azure Container Apps tidak mendukung pemasangan berbagi file dari Azure NetApp Files atau Azure Blob Storage.
Penyimpanan Sementara
Aplikasi kontainer dapat membaca dan menulis data sementara ke penyimpanan sementara. Penyimpanan ephemeral dapat dibatasi pada kontainer atau replika. Jumlah total penyimpanan yang berbasis kontainer dan yang berbasis replika yang tersedia bagi setiap replika tergantung pada jumlah total vCPU yang dialokasikan untuk replika tersebut.
| vCPU | Total penyimpanan sementara |
|---|---|
| 0,25 atau lebih rendah | 1 GiB |
| 0,5 atau lebih rendah | 2 GiB |
| 1 atau lebih rendah | 4 GiB |
| Lebih dari 1 | 8 GiB |
Penyimpanan yang dibatasi oleh cakupan kontainer.
Kontainer dapat menulis ke sistem filenya sendiri.
Penyimpanan sistem file kontainer memiliki karakteristik berikut:
- Penyimpanan bersifat sementara dan menghilang saat kontainer dimatikan atau dihidupkan ulang.
- Hanya proses yang berjalan dalam kontainer saat ini yang dapat melihat file yang ditulis ke penyimpanan ini.
Penyimpanan dengan cakupan replika
Anda dapat memasang volume sementara yang setara dengan EmptyDir (direktori kosong) di Kubernetes. Penyimpanan ini dibatasi hanya untuk satu replika.
EmptyDir Gunakan volume untuk berbagi data antar kontainer dalam replika yang sama.
Penyimpanan dengan ruang lingkup replika memiliki karakteristik berikut:
- File bertahan selama masa pakai replika.
- Jika sebuah kontainer dalam replika dimulai ulang, file di dalam volume akan tetap ada.
- Setiap init atau kontainer aplikasi dalam replika dapat menggunakan volume yang sama.
- Kontainer dapat memasang beberapa volume
EmptyDir.
Untuk mengonfigurasi penyimpanan yang tercakup replika, pertama-tama tentukan EmptyDir volume dalam revisi. Kemudian tentukan mount volume pada satu atau beberapa kontainer dalam revisi.
Prasyarat
| Persyaratan | Petunjuk |
|---|---|
| Akun Azure | Jika Anda tidak memilikinya, buat akun secara gratis. |
| Lingkungan Azure Container Apps | Buat lingkungan aplikasi 'container apps'. |
| Konfigurasi identitas terkelola | Pastikan identitas terkelola yang terkait dengan lingkungan Container Apps Anda diberi peran yang sesuai untuk akses mengakses Azure Files. |
Konfigurasi
Saat mengonfigurasi penyimpanan cakupan replika dengan menggunakan Azure CLI, Anda harus menggunakan definisi YAML untuk membuat atau memperbarui aplikasi kontainer Anda.
Untuk memperbarui aplikasi kontainer yang ada untuk menggunakan penyimpanan cakupan replika, ekspor spesifikasi aplikasi Anda ke file YAML bernama app.yaml.
az containerapp show -n <APP_NAME> -g <RESOURCE_GROUP_NAME> -o yaml > app.yamlBuat perubahan berikut pada spesifikasi aplikasi kontainer Anda.
-
volumesTambahkan array ke bagiantemplatedefinisi aplikasi kontainer Anda dan tentukan volume. Jika Anda sudah memilikivolumesarray, tambahkan volume baru ke array.-
nameadalah identifikasi untuk volume. - Gunakan
EmptyDirsebagaistorageType.
-
- Untuk setiap kontainer dalam templat yang ingin Anda pasang volumenya, tentukan pemasangan volume dalam
volumeMountsarray definisi kontainer.-
volumeNameadalah nama yang ditentukan dalamvolumesarray. -
mountPathadalah jalur dalam kontainer untuk memasang volume.
-
properties: managedEnvironmentId: /subscriptions/<SUBSCRIPTION_ID>/resourceGroups/<RESOURCE_GROUP_NAME>/providers/Microsoft.App/managedEnvironments/<ENVIRONMENT_NAME> configuration: activeRevisionsMode: Single template: containers: - image: <IMAGE_NAME1> name: my-container-1 volumeMounts: - mountPath: /myempty volumeName: myempty - image: <IMAGE_NAME_2> name: my-container-2 volumeMounts: - mountPath: /myempty volumeName: myempty volumes: - name: myempty storageType: EmptyDir-
Perbarui aplikasi kontainer Anda dengan menggunakan file YAML.
az containerapp update --name <APP_NAME> --resource-group <RESOURCE_GROUP_NAME> \ --yaml app.yaml
Untuk contoh lengkapnya, lihat spesifikasi YAML.
Untuk membuat volume dengan cakupan replika dan memasangnya ke dalam kontainer, buat perubahan berikut pada resource aplikasi container dalam template ARM:
-
volumesTambahkan array ke bagiantemplatedefinisi aplikasi kontainer Anda dan tentukan volume. Jika Anda sudah memilikivolumesarray, tambahkan volume baru ke array.-
nameadalah identifikasi untuk volume. - Gunakan
EmptyDirsebagaistorageType.
-
- Untuk setiap kontainer dalam templat yang ingin Anda pasang volumenya, tentukan pemasangan volume dalam
volumeMountsarray definisi kontainer.-
volumeNameadalah nama yang ditentukan dalamvolumesarray. -
mountPathadalah jalur dalam kontainer untuk memasang volume.
-
Contoh cuplikan templat ARM:
{
"apiVersion": "2022-03-01",
"type": "Microsoft.App/containerApps",
"name": "[parameters('containerappName')]",
"location": "[parameters('location')]",
"properties": {
...
"template": {
"revisionSuffix": "myrevision",
"containers": [
{
"name": "main",
"image": "[parameters('container_image')]",
"resources": {
"cpu": 0.5,
"memory": "1Gi"
},
"volumeMounts": [
{
"mountPath": "/myempty",
"volumeName": "myempty"
}
]
},
{
"name": "sidecar",
"image": "[parameters('sidecar_image')]",
"resources": {
"cpu": 0.5,
"memory": "1Gi"
},
"volumeMounts": [
{
"mountPath": "/myempty",
"volumeName": "myempty"
}
]
}
],
"scale": {
"minReplicas": 1,
"maxReplicas": 3
},
"volumes": [
{
"name": "myempty",
"storageType": "EmptyDir"
}
]
}
}
}
Lihat spesifikasi API templat ARM untuk contoh lengkapnya.
Untuk membuat volume dengan cakupan replika dan memasangnya di dalam kontainer, terapkan revisi baru aplikasi kontainer Anda menggunakan Microsoft Azure Portal.
Di portal Microsoft Azure, buka aplikasi kontainer Anda.
Pilih Manajemen revisi di menu sebelah kiri.
Pilih Buat revisi baru.
Pilih kontainer tempat Anda ingin memasang volume.
Di panel konteks Edit kontainer, pilih tab Pemasangan volume.
Di bawah bagian Penyimpanan Ephemeral, buat volume baru dengan informasi berikut:
- Nama volume: Nama untuk volume ephemeral.
- Jalur pemasangan: Jalur absolut dalam kontainer guna pemasangan volume.
Pilih Simpan untuk menyimpan perubahan dan keluar dari panel konteks.
Pilih Buat untuk membuat revisi baru.
Volume Berkas Azure
Anda dapat memasang file share dari Azure Files sebagai volume dalam wadah.
Penyimpanan Azure Files memiliki karakteristik berikut:
- File yang dibuat di lokasi pemasangan disimpan ke dalam berbagi file.
- File dalam berbagi tersedia melalui lokasi pemasangan.
- Beberapa kontainer dapat memasang berbagi file yang sama, termasuk yang ada di replika, revisi, atau aplikasi kontainer lain.
- Semua kontainer yang memasang berbagi dapat mengakses file yang ditulis oleh kontainer atau metode lain.
- Lebih dari satu volume Azure Files dapat dipasang dalam satu kontainer.
Azure Files mendukung protokol SMB (Server Message Block) dan NFS (Network File System). Anda dapat memasang berkas berbagi Azure Files dengan salah satu protokol. Berbagi file yang Anda tentukan di lingkungan harus dikonfigurasi dengan protokol yang sama yang digunakan oleh berbagi file di akun penyimpanan.
Untuk mengaktifkan penyimpanan Azure Files di kontainer, Anda perlu menyiapkan lingkungan dan aplikasi kontainer Anda sebagai berikut:
- Buat definisi penyimpanan di lingkungan Container Apps.
- Jika Anda menggunakan NFS, lingkungan Anda harus dikonfigurasi dengan VNet kustom dan akun penyimpanan harus dikonfigurasi untuk mengizinkan akses dari VNet. Untuk informasi selengkapnya, lihat Berbagi file NFS di Azure Files .
- Jika lingkungan Anda dikonfigurasi dengan VNet kustom, Anda harus mengizinkan port 445 dan 2049 dalam kelompok keamanan jaringan (NSG) yang terkait dengan subnet.
- Tentukan volume jenis
AzureFile(SMB) atauNfsAzureFile(NFS) dalam revisi. - Tentukan pemasangan volume penyimpanan dalam satu atau beberapa kontainer pada revisi.
- Akun penyimpanan Azure Files yang digunakan harus dapat diakses dari jaringan virtual aplikasi kontainer Anda. Untuk informasi selengkapnya, lihat Memberikan akses dari jaringan virtual.
Prasyarat
| Persyaratan | Petunjuk |
|---|---|
| Akun Azure | Jika Anda tidak memilikinya, buat akun secara gratis. |
| Akun Azure Storage | Membuat akun penyimpanan. |
| Lingkungan Azure Container Apps | Buat lingkungan aplikasi 'container apps'. |
Konfigurasi
Saat mengonfigurasi aplikasi kontainer untuk memasang volume Azure Files dengan menggunakan Azure CLI, Anda harus menggunakan definisi YAML untuk membuat atau memperbarui aplikasi kontainer Anda.
Untuk tutorial langkah demi langkah tentang pemasangan berbagi file SMB, lihat Membuat pemasangan penyimpanan Azure Files di Azure Container Apps.
Tambahkan definisi penyimpanan ke lingkungan Container Apps Anda.
az containerapp env storage set --name my-env --resource-group my-group \ --storage-name mystorage \ --storage-type AzureFile \ --azure-file-account-name <STORAGE_ACCOUNT_NAME> \ --azure-file-account-key <STORAGE_ACCOUNT_KEY> \ --azure-file-share-name <STORAGE_SHARE_NAME> \ --access-mode ReadWriteGanti
<STORAGE_ACCOUNT_NAME>dan<STORAGE_ACCOUNT_KEY>dengan nama dan kunci akun penyimpanan Anda. Ganti<STORAGE_SHARE_NAME>dengan nama berbagi file di akun penyimpanan.Nilai yang valid untuk
--access-modeadalahReadWritedanReadOnly.Untuk memperbarui aplikasi kontainer yang ada untuk memasang berbagi file, ekspor spesifikasi aplikasi Anda ke file YAML bernama app.yaml.
az containerapp show -n <APP_NAME> -g <RESOURCE_GROUP_NAME> -o yaml > app.yamlBuat perubahan berikut pada spesifikasi aplikasi kontainer Anda.
-
volumesTambahkan array ke bagiantemplatedefinisi aplikasi kontainer Anda dan tentukan volume. Jika Anda sudah memilikivolumesarray, tambahkan volume baru ke array.-
nameadalah identifikasi untuk volume. - Untuk
storageType, gunakanAzureFileuntuk SMB, atauNfsAzureFileuntuk NFS. Nilai ini harus cocok dengan jenis penyimpanan yang Anda tentukan di lingkungan. - Untuk
storageName, gunakan nama penyimpanan yang Anda tentukan di lingkungan. -
mountOptionsadalah string opsi pemasangan yang dipisahkan koma. Untuk informasi selengkapnya, lihat Menggunakan pengaturan mountOptions di Azure Files. - Daftar
secretsadalah daftar rahasia yang akan dipasang ke dalam volume. Untuk informasi selengkapnya, lihat Memasang rahasia dalam volume.
-
- Untuk setiap kontainer dalam templat yang ingin Anda mount penyimpanan Azure Files, tentukan volume mount dalam array
volumeMountsdari definisi kontainer.-
volumeNameadalah nama yang ditentukan dalamvolumesarray. -
mountPathadalah jalur dalam kontainer untuk memasang volume. -
subPathadalah jalur di dalam volume yang akan dilampirkan. Jika Anda tidak menentukan nilai ini, akar volume akan dipasang. Untuk informasi selengkapnya, lihat (#sub-jalur).
-
properties: managedEnvironmentId: /subscriptions/<SUBSCRIPTION_ID>/resourceGroups/<RESOURCE_GROUP_NAME>/providers/Microsoft.App/managedEnvironments/<ENVIRONMENT_NAME> configuration: template: containers: - image: <IMAGE_NAME> name: my-container volumeMounts: - volumeName: azure-files-volume mountPath: /my-files subPath: my-sub-path volumes: - name: azure-files-volume storageType: AzureFile storageName: mystorage-
Perbarui aplikasi kontainer Anda dengan menggunakan file YAML.
az containerapp update --name <APP_NAME> --resource-group <RESOURCE_GROUP_NAME> \ --yaml app.yaml
Untuk contoh lengkapnya, lihat spesifikasi YAML.
Cuplikan templat ARM berikut menunjukkan cara menambahkan berbagi Azure Files ke lingkungan Container Apps dan menggunakannya di aplikasi kontainer.
storagesTambahkan sumber daya anak ke lingkungan Container Apps.{ "type": "Microsoft.App/managedEnvironments", "apiVersion": "2022-03-01", "name": "[parameters('environment_name')]", "location": "[parameters('location')]", "properties": { "daprAIInstrumentationKey": "[parameters('dapr_ai_instrumentation_key')]", "appLogsConfiguration": { "destination": "log-analytics", "logAnalyticsConfiguration": { "customerId": "[parameters('log_analytics_customer_id')]", "sharedKey": "[parameters('log_analytics_shared_key')]" } } }, "resources": [ { "type": "storages", "name": "myazurefiles", "apiVersion": "2022-03-01", "dependsOn": [ "[resourceId('Microsoft.App/managedEnvironments', parameters('environment_name'))]" ], "properties": { "azureFile": { "accountName": "[parameters('storage_account_name')]", "accountKey": "[parameters('storage_account_key')]", "shareName": "[parameters('storage_share_name')]", "accessMode": "ReadWrite" } } } ] }Perbarui sumber daya aplikasi kontainer untuk menambahkan volume dan penempatan volume.
{ "apiVersion": "2023-05-01", "type": "Microsoft.App/containerApps", "name": "[parameters('containerappName')]", "location": "[parameters('location')]", "properties": { ... "template": { "revisionSuffix": "myrevision", "containers": [ { "name": "main", "image": "[parameters('container_image')]", "resources": { "cpu": 0.5, "memory": "1Gi" }, "volumeMounts": [ { "mountPath": "/myfiles", "volumeName": "azure-files-volume", "subPath": "my-sub-path" } ] } ], "scale": { "minReplicas": 1, "maxReplicas": 3 }, "volumes": [ { "name": "azure-files-volume", "storageType": "AzureFile", "storageName": "myazurefiles" } ] } } }-
volumesTambahkan array ke bagiantemplatedefinisi aplikasi kontainer Anda dan tentukan volume. Jika Anda sudah memilikivolumesarray, tambahkan volume baru ke array.-
nameadalah identifikasi untuk volume. - Untuk
storageType, gunakanAzureFileuntuk SMB, atauNfsAzureFileuntuk NFS. Nilai ini harus cocok dengan jenis penyimpanan yang Anda tentukan di lingkungan. - Untuk
storageName, gunakan nama penyimpanan yang Anda tentukan di lingkungan. -
mountOptionsadalah string opsi pemasangan yang dipisahkan koma. Untuk informasi selengkapnya, lihat Menggunakan pengaturan mountOptions di Azure Files. - Daftar
secretsadalah daftar rahasia yang akan dipasang ke dalam volume. Untuk informasi selengkapnya, lihat Mengintegrasikan rahasia dalam volume.
-
- Untuk setiap kontainer dalam templat yang ingin Anda mount penyimpanan Azure Files, tentukan volume mount dalam array
volumeMountsdari definisi kontainer.-
volumeNameadalah nama yang ditentukan dalamvolumesarray. -
mountPathadalah jalur dalam kontainer untuk memasang volume. -
subPath(opsional) adalah jalur dalam volume yang akan dipasang. Jika Anda tidak menentukannya, akar volume akan dipasang. Untuk informasi selengkapnya, lihat (#sub-path).
-
-
Lihat spesifikasi API templat ARM untuk contoh lengkapnya.
Untuk mengonfigurasi mount volume untuk penyimpanan Azure Files di portal Azure, tambahkan file share ke lingkungan Container Apps Anda lalu tambahkan mount volume ke aplikasi kontainer Anda dengan membuat revisi baru.
Di portal Azure, navigasikan ke lingkungan Aplikasi Kontainer Anda.
Di panel navigasi, di bawah Pengaturan, pilih Azure Files.
Pilih Tambahkan.
Pilih Blok Pesan Server (SMB) atau Sistem File Jaringan (NFS), bergantung pada protokol yang digunakan oleh berbagi file Anda.
Di panel Tambahkan konteks berbagi file, masukkan informasi berikut ini:
- Nama: Nama untuk berbagi file.
- Nama akun penyimpanan: Nama akun penyimpanan yang berisi berbagi file.
- Kunci akun penyimpanan: Kunci akses untuk akun penyimpanan.
- Berbagi Berkas: Nama berbagi berkas.
- Mode Akses: Pengaturan akses untuk berbagi file. Nilai yang valid adalah Baca/Tulis dan Baca saja.
Pilih Tambahkan untuk keluar dari panel konteks.
Pilih Simpan untuk menerapkan perubahan.
Buka aplikasi kontainer Anda.
Di panel navigasi, di bawah Aplikasi, pilih Revisi dan replika.
Pilih Buat revisi baru.
Di halaman Buat dan sebarkan revisi baru, pilih tab Volume .
Pilih Tambahkan.
Di panel Tambahkan konteks volume , atur nilai berikut.
- Volume jenis: Volume file Azure.
- Nama: Masukkan nama volume.
- Nama berbagi file: Pilih berbagi file yang telah Anda buat sebelumnya.
- Opsi pemasangan: Secara opsional, masukkan string opsi pemasangan yang dipisahkan koma. Untuk informasi selengkapnya, lihat Menggunakan pengaturan mountOptions di Azure Files.
Pilih Tambahkan untuk keluar dari panel konteks.
Di halaman Buat dan deploy revisi baru, pilih tab Kontainer.
Pilih kontainer tempat Anda ingin memasang volume.
Di panel konteks Edit kontainer, pilih tab Pemasangan volume.
Di bawah Nama volume, pilih volume yang Anda buat sebelumnya.
Di Jalur pemasangan, masukkan jalur absolut dalam kontainer untuk memasang volume.
Di Sub jalur (opsional), masukkan jalur dalam volume yang akan dipasang. Jika Anda tidak menentukan nilai ini, akar volume akan dipasang. Untuk informasi selengkapnya, lihat (#sub-path).
Pilih Simpan untuk menyimpan perubahan dan keluar dari panel konteks.
Pilih Buat untuk membuat revisi baru.
Sub jalur
Saat memasang file share dari Azure Files, Anda dapat menentukan path pemasangan dan subpath.
- Jalur pemasangan: Jalur dalam kontainer tempat Anda ingin memasang volume.
- Sub jalur: Jalur dalam volume yang ingin Anda pasang.
Sub jalur bersifat opsional. Jika Anda tidak menentukan sub jalur, akar volume akan dipasang.
Subjalur merupakan jalur relatif dari root volume. Jangan mulai subpath dengan /. Jika Anda menentukan sub jalur yang dimulai dengan /, aplikasi kontainer Anda mungkin tidak dimulai. Misalnya, my-volume-folder adalah sub jalur yang valid, tetapi /my-volume-folder tidak.
Sub jalur dapat merujuk ke folder atau file dalam volume.
Jika sub jalur mengacu pada folder, jalur pemasangan harus merujuk ke folder kosong dalam kontainer.
Jika sub jalur mengacu pada file, jalur pemasangan harus merujuk ke file yang belum ada di kontainer.
Misalnya, misalkan sub jalur adalah
my-volume-folder/my-volume-file.txt, dan jalur pemasangan adalah/my-container-folder/my-container-file. Folder/my-container-folderharus sudah ada dalam kontainer tetapi belum berisi filemy-container-file.txt.
Sistem mengabaikan garis miring di ujung sub jalur.