Bagikan melalui


Menggunakan pemasangan penyimpanan di Azure Container Apps

Aplikasi kontainer memiliki akses ke berbagai jenis penyimpanan. Satu aplikasi dapat memanfaatkan lebih dari satu jenis penyimpanan jika perlu.

Jenis penyimpanan Deskripsi Persistensi Contoh penggunaan
Penyimpanan cakupan kontainer Penyimpanan Ephemeral tersedia untuk kontainer yang sedang berjalan Data tersedia hingga kontainer dimatikan Menulis cache aplikasi lokal.
Penyimpanan cakupan replika Penyimpanan sementara untuk berbagi file antar kontainer dalam replika yang sama Data tersedia hingga replika dimatikan Kontainer aplikasi utama menulis file log yang 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.

Penyimpanan Ephemeral

Aplikasi kontainer dapat membaca dan menulis data sementara ke penyimpanan sementara. Penyimpanan Ephemeral dapat dicakup ke kontainer atau replika. Jumlah total penyimpanan cakupan kontainer dan cakupan replika yang tersedia untuk setiap replika tergantung pada jumlah total vCPU yang dialokasikan untuk replika.

vCPU Total penyimpanan ephemeral
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 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.
  • File yang ditulis ke penyimpanan ini hanya terlihat oleh proses yang berjalan dalam kontainer saat ini.

Penyimpanan cakupan replika

Anda dapat memasang volume sementara sementara yang setara dengan EmptyDir (direktori kosong) di Kubernetes. Penyimpanan ini dicakup ke satu replika. EmptyDir Gunakan volume untuk berbagi data antar kontainer dalam replika yang sama.

Penyimpanan dengan cakupan replika memiliki karakteristik berikut:

  • File dipertahankan selama masa pakai replika.
    • Jika kontainer dalam replika dimulai ulang, file dalam volume tetap ada.
  • Setiap init atau kontainer aplikasi dalam replika dapat memasang volume yang sama.
  • Kontainer dapat memasang beberapa EmptyDir volume.

Untuk mengonfigurasi penyimpanan yang tercakup replika, pertama-tama tentukan EmptyDir volume dalam revisi. Kemudian tentukan pemasangan volume dalam 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 kontainer.

Konfigurasi

Saat mengonfigurasi penyimpanan cakupan replika menggunakan Azure CLI, Anda harus menggunakan definisi YAML untuk membuat atau memperbarui aplikasi kontainer Anda.

  1. 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.yaml
    
  2. Buat perubahan berikut pada spesifikasi aplikasi kontainer Anda.

    • volumes Tambahkan array ke bagian template definisi aplikasi kontainer Anda dan tentukan volume. Jika Anda sudah memiliki volumes array, tambahkan volume baru ke array.
      • name adalah pengidentifikasi untuk volume.
      • Gunakan EmptyDir sebagai storageType.
    • Untuk setiap kontainer dalam templat yang ingin Anda pasang volumenya, tentukan pemasangan volume dalam volumeMounts array definisi kontainer.
      • volumeName adalah nama yang ditentukan dalam volumes array.
      • mountPath adalah 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
    
  3. Perbarui aplikasi kontainer Anda menggunakan file YAML.

    az containerapp update --name <APP_NAME> --resource-group <RESOURCE_GROUP_NAME> \
        --yaml app.yaml
    

Lihat spesifikasi YAML untuk contoh lengkap.

Untuk membuat volume cakupan replika dan memasangnya dalam kontainer, buat perubahan berikut pada sumber daya aplikasi kontainer dalam templat ARM:

  • volumes Tambahkan array ke bagian template definisi aplikasi kontainer Anda dan tentukan volume. Jika Anda sudah memiliki volumes array, tambahkan volume baru ke array.
    • name adalah pengidentifikasi untuk volume.
    • Gunakan EmptyDir sebagai storageType.
  • Untuk setiap kontainer dalam templat yang ingin Anda pasang volumenya, tentukan pemasangan volume dalam volumeMounts array definisi kontainer.
    • volumeName adalah nama yang ditentukan dalam volumes array.
    • mountPath adalah 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 cakupan replika dan memasangnya dalam kontainer, sebarkan revisi baru aplikasi kontainer Anda menggunakan portal Azure.

  1. Di portal Azure, navigasikan ke aplikasi kontainer Anda.

  2. Pilih Manajemen revisi di menu sebelah kiri.

  3. Pilih Buat revisi baru.

  4. Pilih kontainer tempat Anda ingin memasang volume.

  5. Di panel Edit konteks kontainer , pilih tab Pemasangan volume.

  6. Di bawah bagian Penyimpanan Ephemeral, buat volume baru dengan informasi berikut.

    • Nama volume: Nama untuk volume ephemeral.
    • Jalur pemasangan: Jalur absolut dalam kontainer untuk memasang volume.
  7. Pilih Simpan untuk menyimpan perubahan dan keluar dari panel konteks.

  8. Pilih Buat untuk membuat revisi baru.

Volume Azure Files

Anda dapat memasang berbagi file dari Azure Files sebagai volume dalam kontainer.

Penyimpanan Azure Files memiliki karakteristik berikut:

  • File yang ditulis di bawah lokasi pemasangan dipertahankan ke 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 dan NFS. Anda dapat memasang berbagi Azure Files menggunakan salah satu protokol. Berbagi file yang Anda tentukan di lingkungan harus dikonfigurasi dengan protokol yang sama yang digunakan oleh berbagi file di akun penyimpanan.

Catatan

Dukungan untuk memasang berbagi NFS di Azure Container Apps sedang dalam pratinjau.

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) atau NfsAzureFile (NFS) dalam revisi.
  • Tentukan pemasangan volume dalam satu atau beberapa kontainer dalam 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.
    • Jika Anda menggunakan NFS, Anda juga harus menonaktifkan transfer aman. Untuk informasi selengkapnya, lihat berbagi file NFS di Azure Files dan bagian Membuat berbagi file NFS Azure dalam tutorial ini.

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 kontainer.

Konfigurasi

Saat mengonfigurasi aplikasi kontainer untuk memasang volume Azure Files 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.

  1. 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 ReadWrite
    

    Ganti <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-mode adalah ReadWrite dan ReadOnly.

  2. 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.yaml
    
  3. Buat perubahan berikut pada spesifikasi aplikasi kontainer Anda.

    • volumes Tambahkan array ke bagian template definisi aplikasi kontainer Anda dan tentukan volume. Jika Anda sudah memiliki volumes array, tambahkan volume baru ke array.
      • name adalah pengidentifikasi untuk volume.
      • Untuk storageType, gunakan AzureFile untuk SMB, atau NfsAzureFile untuk NFS. Nilai ini harus cocok dengan jenis penyimpanan yang Anda tentukan di lingkungan.
      • Untuk storageName, gunakan nama penyimpanan yang Anda tentukan di lingkungan.
    • Untuk setiap kontainer dalam templat yang ingin Anda pasang penyimpanan Azure Files, tentukan pemasangan volume dalam volumeMounts array definisi kontainer.
      • volumeName adalah nama yang ditentukan dalam volumes array.
      • mountPath adalah jalur dalam kontainer untuk memasang volume.
    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
        volumes:
        - name: azure-files-volume
          storageType: AzureFile
          storageName: mystorage
    
  4. Perbarui aplikasi kontainer Anda menggunakan file YAML.

    az containerapp update --name <APP_NAME> --resource-group <RESOURCE_GROUP_NAME> \
        --yaml app.yaml
    

Lihat spesifikasi YAML untuk contoh lengkap.

Cuplikan templat ARM berikut menunjukkan cara menambahkan berbagi Azure Files ke lingkungan Container Apps dan menggunakannya di aplikasi kontainer.

  1. storages Tambahkan 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"
            }
          }
        }
      ]
    }
    
  2. Perbarui sumber daya aplikasi kontainer untuk menambahkan volume dan pemasangan 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"
                }
              ]
            }
          ],
          "scale": {
            "minReplicas": 1,
            "maxReplicas": 3
          },
          "volumes": [
            {
              "name": "azure-files-volume",
              "storageType": "AzureFile",
              "storageName": "myazurefiles"
            }
          ]
        }
      }
    }
    
    • volumes Tambahkan array ke bagian template definisi aplikasi kontainer Anda dan tentukan volume. Jika Anda sudah memiliki volumes array, tambahkan volume baru ke array.
      • name adalah pengidentifikasi untuk volume.
      • Untuk storageType, gunakan AzureFile untuk SMB, atau NfsAzureFile untuk NFS. Nilai ini harus cocok dengan jenis penyimpanan yang Anda tentukan di lingkungan.
      • Untuk storageName, gunakan nama penyimpanan yang Anda tentukan di lingkungan.
    • Untuk setiap kontainer dalam templat yang ingin Anda pasang penyimpanan Azure Files, tentukan pemasangan volume dalam volumeMounts array definisi kontainer.
      • volumeName adalah nama yang ditentukan dalam volumes array.
      • mountPath adalah jalur dalam kontainer untuk memasang volume.

Lihat spesifikasi API templat ARM untuk contoh lengkapnya.

Untuk mengonfigurasi pemasangan volume untuk penyimpanan Azure Files di portal Azure, tambahkan berbagi file ke lingkungan Container Apps Anda lalu tambahkan pemasangan volume ke aplikasi kontainer Anda dengan membuat revisi baru.

  1. Di portal Azure, navigasikan ke lingkungan Aplikasi Kontainer Anda.

  2. Pilih Azure Files dari menu sebelah kiri.

  3. Pilih Tambahkan.

  4. Di menu 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 file: Nama berbagi file.
    • Mode akses: Mode akses untuk berbagi file. Nilai yang valid adalah "Baca/Tulis" dan "Baca saja".
  5. Pilih Tambahkan untuk keluar dari panel konteks.

  6. Pilih Simpan untuk menerapkan perubahan.

  7. Navigasi ke aplikasi kontainer Anda.

  8. Pilih Manajemen revisi dari menu sebelah kiri.

  9. Pilih Buat revisi baru.

  10. Pilih kontainer tempat Anda ingin memasang volume.

  11. Di panel Edit konteks kontainer , pilih tab Pemasangan volume.

  12. Di bawah bagian Berbagi file, buat volume baru dengan informasi berikut.

    • Nama berbagi file: Berbagi file yang Anda tambahkan.
    • Jalur pemasangan: Jalur absolut dalam kontainer untuk memasang volume.
  13. Pilih Simpan untuk menyimpan perubahan dan keluar dari panel konteks.

  14. Pilih Buat untuk membuat revisi baru.