Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Aplikacja kontenera ma dostęp do różnych typów magazynu. W razie potrzeby pojedyncza aplikacja może korzystać z więcej niż jednego typu pamięci masowej.
Uwaga / Notatka
Unikaj używania znaków specjalnych w nazwach woluminów, aby zapobiec niepowodzeniom wdrożenia. Na przykład nazwany credentials.json wolumin zawiera znak specjalny (.), który powoduje błąd wdrożenia.
| Typ magazynu | Opis | Wytrwałość | Przykład użycia |
|---|---|---|---|
| Magazyn o zakresie kontenera | Magazyn efemeryczny dostępny dla uruchomionego kontenera | Dane są dostępne do momentu zamknięcia kontenera | Zapisywanie lokalnej pamięci podręcznej aplikacji. |
| Magazyn o zakresie repliki | Magazyn efemeryczny do udostępniania plików między kontenerami w tej samej replice | Dane są dostępne do momentu zamknięcia repliki | Główny kontener aplikacji zapisujący pliki dziennika przetwarzane przez kontener przyczepki. |
| Azure Files | Trwałe przechowywanie | Dane są utrwalane w Azure Files | Zapisywanie plików w udziale plików w celu udostępnienia danych innym systemom. |
Uwaga / Notatka
Usługa Azure Container Apps nie obsługuje instalowania udziałów plików z Azure NetApp Files ani Azure Blob Storage.
Pamięć tymczasowa
Aplikacja kontenera może odczytywać i zapisywać dane tymczasowe w magazynie efemerycznym. Magazyn efemeryczny może być ograniczony do kontenera lub repliki. Łączna ilość magazynu o zakresie kontenera i repliki dostępnego dla każdej repliki zależy od łącznej liczby procesorów wirtualnych przydzielonych do repliki.
| wirtualne jednostki centralne przetwarzania (vCPUs) | Całkowita pamięć efemeryczna |
|---|---|
| 0,25 lub mniej | 1 GiB |
| 0,5 lub mniej | 2 GiB |
| 1 lub mniej | 4 GiB |
| Ponad 1 | 8 GiB |
Magazyn o zakresie kontenera
Kontener może zapisywać dane we własnym systemie plików.
Magazyn systemu plików kontenerów ma następujące cechy:
- Magazyn jest tymczasowy i znika po zamknięciu lub ponownym uruchomieniu kontenera.
- Pliki zapisywane w tym magazynie są widoczne tylko dla procesów uruchomionych w bieżącym kontenerze.
Magazyn o zakresie repliki
Możesz zainstalować efemeryczny, tymczasowy wolumin, który jest odpowiednikiem EmptyDir (pustego katalogu) w Kubernetes. Ten magazyn jest ograniczony do pojedynczej repliki. Użyj woluminu EmptyDir , aby udostępnić dane między kontenerami w tej samej replice.
Magazyn o zakresie repliki ma następujące cechy:
- Pliki są utrwalane przez cały okres istnienia repliki.
- Jeśli kontener w replice zostanie uruchomiony ponownie, pliki w woluminie pozostaną.
- Wszystkie kontenery init lub aplikacji w replice mogą instalować ten sam wolumin.
- Kontener może instalować wiele
EmptyDirwoluminów.
Aby skonfigurować magazyn o zakresie repliki, najpierw zdefiniuj wolumin EmptyDir w poprawce. Następnie zdefiniuj instalację woluminu w jednym lub kilku kontenerach w wersji.
Wymagania wstępne
| Wymaganie | Instrukcje |
|---|---|
| Konto platformy Azure | Jeśli go nie masz, utwórz bezpłatne konto. |
| Środowisko usługi Azure Container Apps | Utwórz środowisko aplikacji kontenera. |
| Konfiguracja tożsamości zarządzanej | Upewnij się, że tożsamość zarządzana skojarzona ze środowiskiem usługi Container Apps ma przypisane odpowiednie role w celu uzyskania dostępu do usługi Azure Files. |
Konfiguracja
Podczas konfigurowania magazynu o zakresie repliki przy użyciu interfejsu wiersza polecenia platformy Azure należy użyć definicji YAML do utworzenia lub zaktualizowania aplikacji kontenera.
Aby zaktualizować istniejącą aplikację kontenera do korzystania z magazynu o zakresie repliki, wyeksportuj specyfikację aplikacji do pliku YAML o nazwie app.yaml.
az containerapp show -n <APP_NAME> -g <RESOURCE_GROUP_NAME> -o yaml > app.yamlWprowadź następujące zmiany w specyfikacji aplikacji kontenera.
- Dodaj tablicę
volumestemplatedo sekcji definicji aplikacji kontenera i zdefiniuj wolumin. Jeśli masz już tablicęvolumes, dodaj do niej nowy wolumin.- Jest
nameto identyfikator woluminu. - Użyj
EmptyDirjako .storageType
- Jest
- Dla każdego kontenera w szablonie, w którym chcesz zainstalować wolumin, zdefiniuj instalację woluminu w tablicy
volumeMountsdefinicji kontenera.- Jest to
volumeNamenazwa zdefiniowana w tablicyvolumes. - Jest to
mountPathścieżka w kontenerze, w której ma zostać zainstalowany wolumin.
- Jest to
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- Dodaj tablicę
Zaktualizuj aplikację kontenera przy użyciu pliku YAML.
az containerapp update --name <APP_NAME> --resource-group <RESOURCE_GROUP_NAME> \ --yaml app.yaml
Zobacz specyfikację YAML, aby zapoznać się z pełnym przykładem.
Aby utworzyć wolumin o zakresie repliki i zainstalować go w kontenerze, wprowadź następujące zmiany w zasobie aplikacji kontenera w szablonie usługi ARM:
- Dodaj tablicę
volumestemplatedo sekcji definicji aplikacji kontenera i zdefiniuj wolumin. Jeśli masz już tablicęvolumes, dodaj do niej nowy wolumin.- Jest
nameto identyfikator woluminu. - Użyj
EmptyDirjako .storageType
- Jest
- Dla każdego kontenera w szablonie, w którym chcesz zainstalować wolumin, zdefiniuj instalację woluminu w tablicy
volumeMountsdefinicji kontenera.- Jest to
volumeNamenazwa zdefiniowana w tablicyvolumes. - Jest to
mountPathścieżka w kontenerze, w której ma zostać zainstalowany wolumin.
- Jest to
Przykładowy fragment kodu szablonu usługi 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"
}
]
}
}
}
Aby zapoznać się z pełnym przykładem, zobacz specyfikację interfejsu API szablonu usługi ARM .
Aby utworzyć wolumin o zakresie repliki i zainstalować go w kontenerze, wdróż nową poprawkę aplikacji kontenera przy użyciu Azure Portal.
W Azure Portal przejdź do aplikacji kontenera.
Wybierz Zarządzanie wersjami w menu po lewej stronie.
Wybierz pozycję Utwórz nową poprawkę.
Wybierz kontener, w którym chcesz zainstalować wolumin.
W okienku Edytowanie kontekstu kontenera wybierz kartę Instalacje woluminów .
W sekcji Magazyn efemeryczny utwórz nowy wolumin z następującymi informacjami.
- Nazwa woluminu: nazwa woluminu efemerycznego.
- Ścieżka instalacji: ścieżka bezwzględna w kontenerze, aby zainstalować wolumin.
Wybierz pozycję Zapisz , aby zapisać zmiany i zamknąć okienko kontekstowe.
Wybierz pozycję Utwórz , aby utworzyć nową poprawkę.
Wolumin Azure Files
Udział plików z Azure Files można zainstalować jako wolumin w kontenerze.
Magazyn Azure Files ma następujące cechy:
- Pliki zapisane w lokalizacji instalacji są utrwalane w udziale plików.
- Pliki w udziale są dostępne za pośrednictwem lokalizacji instalacji.
- Wiele kontenerów może instalować ten sam udział plików, w tym te, które znajdują się w innej replice, poprawce lub aplikacji kontenera.
- Wszystkie kontenery, które instalują udział, mogą uzyskiwać dostęp do plików zapisanych przez dowolny inny kontener lub metodę.
- W jednym kontenerze można zainstalować więcej niż jeden wolumin Azure Files.
Azure Files obsługuje zarówno protokoły SMB (Server Message Block), jak i NFS (Network File System). Udział Azure Files można zainstalować przy użyciu dowolnego protokołu. Udział plików zdefiniowany w środowisku musi być skonfigurowany przy użyciu tego samego protokołu, który jest używany przez udział plików na koncie magazynu.
Aby włączyć usługę Azure Files Storage w kontenerze, należy skonfigurować środowisko i aplikację kontenera w następujący sposób:
- Utwórz definicję magazynu w środowisku usługi Container Apps.
- Jeśli używasz systemu plików NFS, środowisko musi być skonfigurowane przy użyciu niestandardowej sieci wirtualnej, a konto magazynu musi być skonfigurowane tak, aby zezwalać na dostęp z sieci wirtualnej. Aby uzyskać więcej informacji, zobacz Udziały plików NFS w Azure Files .
- Jeśli środowisko jest skonfigurowane przy użyciu niestandardowej sieci wirtualnej, musisz zezwolić na porty 445 i 2049 w sieciowej grupie zabezpieczeń skojarzonej z podsiecią.
- Zdefiniuj wolumin typu
AzureFile(SMB) lubNfsAzureFile(NFS) w poprawce. - Zdefiniuj instalację woluminu w jednym lub kilku kontenerach w wersji.
- Używane konto magazynu Azure Files musi być dostępne z sieci wirtualnej aplikacji kontenera. Aby uzyskać więcej informacji, zobacz Udzielanie dostępu z sieci wirtualnej.
- Jeśli korzystasz z NFS, musisz również wyłączyć bezpieczny transfer. Aby uzyskać więcej informacji, zobacz Udziały plików NFS w usłudze Azure Files.
Wymagania wstępne
| Wymaganie | Instrukcje |
|---|---|
| Konto platformy Azure | Jeśli go nie masz, utwórz bezpłatne konto. |
| Konto usługi Azure Storage | Utwórz konto magazynowe. |
| Środowisko usługi Azure Container Apps | Utwórz środowisko aplikacji kontenera. |
Konfiguracja
Podczas konfigurowania aplikacji kontenera w celu zainstalowania woluminu Azure Files przy użyciu interfejsu wiersza polecenia platformy Azure należy użyć definicji YAML do utworzenia lub zaktualizowania aplikacji kontenera.
Aby zapoznać się z samouczkiem krok po kroku dotyczącym instalowania udziału plików SMB, zobacz Tworzenie instalacji magazynu Azure Files w usłudze Azure Container Apps.
Dodaj definicję magazynu do środowiska usługi Container Apps.
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 ReadWriteZastąp
<STORAGE_ACCOUNT_NAME>i<STORAGE_ACCOUNT_KEY>nazwą i kluczem konta magazynu. Zastąp<STORAGE_SHARE_NAME>ciąg nazwą udziału plików na koncie magazynu.Prawidłowe wartości dla
--access-modeto iReadWriteReadOnly.Aby zaktualizować istniejącą aplikację kontenera w celu zainstalowania udziału plików, wyeksportuj specyfikację aplikacji do pliku YAML o nazwie app.yaml.
az containerapp show -n <APP_NAME> -g <RESOURCE_GROUP_NAME> -o yaml > app.yamlWprowadź następujące zmiany w specyfikacji aplikacji kontenera.
- Dodaj tablicę
volumestemplatedo sekcji definicji aplikacji kontenera i zdefiniuj wolumin. Jeśli masz już tablicęvolumes, dodaj do niej nowy wolumin.- Jest
nameto identyfikator woluminu. - W przypadku
storageTypeprogramu należy użyćAzureFileprotokołu SMB lubNfsAzureFilesystemu plików NFS. Ta wartość musi być zgodna z typem magazynu zdefiniowanym w środowisku. - W przypadku
storageNameprogramu użyj nazwy magazynu zdefiniowanego w środowisku. - Jest to
mountOptionsoddzielony przecinkami ciąg opcji montowania. Aby uzyskać więcej informacji, zobacz Używanie ustawień mountOptions w Azure Files. - Lista
secretsjest listą wpisów tajnych do zainstalowania w woluminie. Aby uzyskać więcej informacji, zobacz Instalowanie wpisów tajnych w woluminie.
- Jest
- Dla każdego kontenera w szablonie, który chcesz zainstalować w magazynie Azure Files, zdefiniuj instalację woluminu w tablicy
volumeMountsdefinicji kontenera.- Jest to
volumeNamenazwa zdefiniowana w tablicyvolumes. - Jest to
mountPathścieżka w kontenerze, w której ma zostać zainstalowany wolumin. - Jest
subPathto ścieżka w woluminie do zainstalowania. Jeśli nie zostanie określony, zostanie zainstalowany katalog główny. Aby uzyskać więcej informacji, zobacz (#sub-path).
- Jest to
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- Dodaj tablicę
Zaktualizuj aplikację kontenera przy użyciu pliku YAML.
az containerapp update --name <APP_NAME> --resource-group <RESOURCE_GROUP_NAME> \ --yaml app.yaml
Zobacz specyfikację YAML, aby zapoznać się z pełnym przykładem.
Poniższe fragmenty szablonu usługi ARM pokazują, jak dodać udział Azure Files do środowiska usługi Container Apps i używać go w aplikacji kontenera.
Dodaj zasób podrzędny
storagesdo środowiska usługi 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" } } } ] }Zaktualizuj zasób aplikacji kontenera, aby dodać wolumin i instalację woluminu.
{ "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" } ] } } }- Dodaj tablicę
volumestemplatedo sekcji definicji aplikacji kontenera i zdefiniuj wolumin. Jeśli masz już tablicęvolumes, dodaj do niej nowy wolumin.- Jest
nameto identyfikator woluminu. - W przypadku
storageTypeprogramu należy użyćAzureFileprotokołu SMB lubNfsAzureFilesystemu plików NFS. Ta wartość musi być zgodna z typem magazynu zdefiniowanym w środowisku. - W przypadku
storageNameprogramu użyj nazwy magazynu zdefiniowanego w środowisku. - Jest to
mountOptionsoddzielony przecinkami ciąg opcji montowania. Aby uzyskać więcej informacji, zobacz Używanie ustawień mountOptions w Azure Files. - Lista
secretsjest listą wpisów tajnych do zainstalowania w woluminie. Aby uzyskać więcej informacji, zobacz Instalowanie wpisów tajnych w woluminie.
- Jest
- Dla każdego kontenera w szablonie, który chcesz zainstalować w magazynie Azure Files, zdefiniuj instalację woluminu w tablicy
volumeMountsdefinicji kontenera.- Jest to
volumeNamenazwa zdefiniowana w tablicyvolumes. - Jest to
mountPathścieżka w kontenerze, w której ma zostać zainstalowany wolumin. - Wartość
subPath(opcjonalna) to ścieżka w woluminie do zainstalowania. Jeśli nie zostanie określony, zostanie zainstalowany katalog główny. Aby uzyskać więcej informacji, zobacz (#sub-path).
- Jest to
- Dodaj tablicę
Aby zapoznać się z pełnym przykładem, zobacz specyfikację interfejsu API szablonu usługi ARM .
Aby skonfigurować instalację woluminu dla magazynu Azure Files w Azure Portal, dodaj udział plików do środowiska Container Apps, a następnie dodaj instalację woluminu do aplikacji kontenera, tworząc nową poprawkę.
W Azure Portal przejdź do środowiska usługi Container Apps.
W okienku nawigacji w obszarze Ustawienia wybierz pozycję Azure Files.
Wybierz Dodaj.
Wybierz pozycję Server Message Block (SMB) lub Network File System (NFS), w zależności od protokołu używanego przez udział plików.
W okienku kontekstowym Dodawanie udziału plików wprowadź następujące informacje:
- Nazwa: nazwa udziału plików.
- Nazwa konta magazynu: nazwa konta magazynu, które zawiera udział plików.
- Klucz konta magazynu: klucz dostępu dla konta magazynu.
- Udział plików: nazwa udziału plików.
- Tryb dostępu: tryb dostępu do udziału plików. Prawidłowe wartości to Odczyt/Zapis i Tylko do odczytu.
Wybierz pozycję Dodaj , aby zamknąć okienko kontekstowe.
Wybierz pozycję Zapisz , aby zatwierdzić zmiany.
Przejdź do aplikacji kontenera.
W okienku nawigacji w obszarze Aplikacja wybierz pozycję Poprawki i repliki.
Wybierz pozycję Utwórz nową poprawkę.
Na stronie Tworzenie i wdrażanie nowej poprawki wybierz kartę Woluminy .
Wybierz Dodaj.
W okienku Dodawanie kontekstu woluminu ustaw następujące ustawienia.
- Typ woluminu: wolumin pliku platformy Azure.
- Nazwa: Wprowadź nazwę woluminu.
- Nazwa udziału plików: wybierz utworzony wcześniej udział plików.
- Opcje montowania: Opcjonalnie wprowadź oddzielony przecinkami ciąg opcji montowania. Aby uzyskać więcej informacji, zobacz Używanie ustawień mountOptions w Azure Files.
Wybierz pozycję Dodaj , aby zamknąć okienko kontekstowe.
Na stronie Tworzenie i ponowne stosowanie nowej poprawki wybierz kartę Kontener .
Wybierz kontener, w którym chcesz zainstalować wolumin.
W okienku Edytowanie kontekstu kontenera wybierz kartę Instalacje woluminów .
W obszarze Nazwa woluminu wybierz utworzony wcześniej wolumin.
W polu Ścieżka instalacji wprowadź ścieżkę bezwzględną w kontenerze, aby zainstalować wolumin.
W polu Ścieżka podrzędna (opcjonalnie) wprowadź ścieżkę w woluminie do zainstalowania. Jeśli nie zostanie określony, zostanie zainstalowany katalog główny. Aby uzyskać więcej informacji, zobacz (#sub-path).
Wybierz pozycję Zapisz , aby zapisać zmiany i zamknąć okienko kontekstowe.
Wybierz pozycję Utwórz , aby utworzyć nową poprawkę.
Ścieżka podrzędna
Podczas instalowania udziału plików z Azure Files oprócz ścieżki instalacji można również określić ścieżkę podrzędną.
- Ścieżka instalacji: ścieżka w kontenerze, w którym chcesz zainstalować wolumin.
- Ścieżka podrzędna: Ścieżka w woluminie, który chcesz zainstalować.
Ścieżka podrzędna jest opcjonalna. Jeśli nie zostanie określony, zostanie zainstalowany katalog główny.
Ścieżka podrzędna jest ścieżką względną od katalogu głównego woluminu. Ścieżka podrzędna nie powinna zaczynać się od /. Określenie ścieżki podrzędnej, która zaczyna się od / może uniemożliwić uruchomienie aplikacji kontenera. Na przykład my-volume-folder jest prawidłową ścieżką podrzędną, gdzie /my-volume-folder nie jest.
Ścieżka podrzędna może odwoływać się do folderu lub pliku w woluminie.
Jeśli ścieżka podrzędna odwołuje się do folderu, ścieżka instalacji powinna odwoływać się do pustego folderu w kontenerze.
Jeśli ścieżka podrzędna odwołuje się do pliku, ścieżka instalacji powinna odwoływać się do pliku, który jeszcze nie istnieje w kontenerze.
Załóżmy na przykład, że ścieżka podrzędna to
my-volume-folder/my-volume-file.txt, a ścieżka instalacji to/my-container-folder/my-container-file. Folder/my-container-folderpowinien już istnieć w kontenerze, ale nie powinien jeszcze zawierać plikumy-container-file.txt.
Wszystkie końcowe ukośniki ścieżki podrzędnej są ignorowane.