Aktualizowanie kontenerów w usłudze Azure Container Instances

Podczas normalnego działania wystąpień kontenera można znaleźć konieczność zaktualizowania uruchomionych kontenerów w grupie kontenerów. Na przykład możesz zaktualizować właściwość, taką jak wersja obrazu, nazwa DNS lub zmienna środowiskowa, albo odświeżyć właściwość w kontenerze, którego aplikacja uległa awarii.

Zaktualizuj kontenery w uruchomionej grupie kontenerów, ponownie wdrażając istniejącą grupę z co najmniej jedną zmodyfikowaną właściwością. Podczas aktualizowania grupy kontenerów wszystkie uruchomione kontenery w grupie są uruchamiane ponownie w miejscu, zwykle na tym samym hoście kontenera.

Uwaga

Nie można zaktualizować zakończonych lub usuniętych grup kontenerów. Po zakończeniu grupy kontenerów (jest w stanie Powodzenie lub Niepowodzenie) lub został usunięty, grupa musi zostać wdrożona jako nowa. Zobacz inne ograniczenia.

Aktualizowanie grupy kontenerów

Aby zaktualizować istniejącą grupę kontenerów:

  • Wydaj polecenie create (lub użyj witryny Azure Portal) i określ nazwę istniejącej grupy
  • Zmodyfikuj lub dodaj co najmniej jedną właściwość grupy, która obsługuje aktualizację podczas ponownego wdrażania. Niektóre właściwości nie obsługują aktualizacji.
  • Ustaw inne właściwości przy użyciu podanych wcześniej wartości. Jeśli nie ustawisz wartości właściwości, zostanie przywrócona jej wartość domyślna.

Uwaga

Jeśli ustawisz wszystkie właściwości na podane wcześniej wartości i nie zmodyfikujesz ani nie dodasz ich, kontener zostanie ponownie uruchomiony w odpowiedzi na polecenie create.

Napiwek

Plik YAML pomaga zachować konfigurację wdrożenia grupy kontenerów i zapewnia punkt wyjścia do wdrożenia zaktualizowanej grupy. Jeśli do utworzenia grupy użyto innej metody, możesz wyeksportować konfigurację do języka YAML przy użyciu polecenia az container export,

Przykład

Poniższy przykład interfejsu wiersza polecenia platformy Azure aktualizuje grupę kontenerów przy użyciu nowej etykiety nazwy DNS. Ponieważ właściwość etykiety nazwy DNS grupy jest taka, którą można zaktualizować, grupa kontenerów jest ponownie wdrażana, a jej kontenery są ponownie uruchamiane.

Początkowe wdrożenie z etykietą nazwy DNS myapplication-staging:

# Create container group
az container create --resource-group myResourceGroup --name mycontainer \
    --image nginx:alpine --dns-name-label myapplication-staging

Zaktualizuj grupę kontenerów przy użyciu nowej etykiety nazwy DNS, aplikacji i ustaw pozostałe właściwości przy użyciu wartości użytych wcześniej:

# Update DNS name label (restarts container), leave other properties unchanged
az container create --resource-group myResourceGroup --name mycontainer \
    --image nginx:alpine --dns-name-label myapplication

Aktualizowanie korzyści

Główną zaletą aktualizowania istniejącej grupy kontenerów jest szybsze wdrażanie. Podczas ponownego wdrażania istniejącej grupy kontenerów jej warstwy obrazu kontenera są pobierane z warstw buforowanych przez poprzednie wdrożenie. Zamiast ściągać wszystkie warstwy obrazu świeże z rejestru, tak jak w przypadku nowych wdrożeń, pobierane są tylko zmodyfikowane warstwy (jeśli istnieją).

Aplikacje oparte na większych obrazach kontenerów, takich jak Windows Server Core, mogą zobaczyć znaczną poprawę szybkości wdrażania podczas aktualizowania zamiast usuwania i wdrażania nowych.

Ograniczenia

  • Nie wszystkie właściwości grupy kontenerów obsługują aktualizacje. Aby zmienić niektóre właściwości grupy kontenerów, należy najpierw usunąć, a następnie ponownie wdrożyć grupę. Zobacz Właściwości wymagające usunięcia kontenera.
  • Wszystkie kontenery w grupie kontenerów są uruchamiane ponownie po zaktualizowaniu grupy kontenerów. Nie można wykonać aktualizacji ani ponownego uruchomienia określonego kontenera w grupie z wieloma kontenerami.
  • Adres IP grupy kontenerów jest zwykle zachowywany między aktualizacjami, ale nie ma gwarancji, że pozostanie taki sam. Jeśli grupa kontenerów zostanie wdrożona na tym samym hoście bazowym, grupa kontenerów zachowuje swój adres IP. Chociaż rzadko występują pewne zdarzenia wewnętrzne platformy Azure, które mogą spowodować ponowne wdrożenie na innym hoście. Aby rozwiązać ten problem, zalecamy użycie etykiety nazwy DNS dla wystąpień kontenera.
  • Nie można zaktualizować zakończonych lub usuniętych grup kontenerów. Po zatrzymaniu grupy kontenerów (w stanie Zakończony) lub usunięciu grupa zostanie wdrożona jako nowa.

Uwaga

Polecenie aktualizacji może nie działać, jeśli grupa kontenerów platformy Azure jest dołączona do profilu usługi Azure Storage.

Właściwości wymagające usunięcia kontenera

Nie można zaktualizować wszystkich właściwości grupy kontenerów. Aby na przykład zmienić zasady ponownego uruchamiania kontenera, należy najpierw usunąć grupę kontenerów, a następnie utworzyć ją ponownie.

Zmiany tych właściwości wymagają usunięcia grupy kontenerów przed ponownym wdrożeniem:

  • Typ systemu operacyjnego
  • Zasoby procesora CPU, pamięci lub procesora GPU
  • Zasady ponownego uruchamiania
  • Profil sieci
  • Availability zone

Ważne

Profile sieciowe zostały wycofane w wersji interfejsu 2021-07-01 API. Jeśli używasz tej lub nowszej wersji, zignoruj wszystkie kroki i akcje związane z profilami sieciowymi.

Gdy usuniesz grupę kontenerów i ponownie ją utworzysz, nie zostanie ona "wdrożona ponownie", ale utworzona nowa. Wszystkie warstwy obrazów są pobierane od rejestru, a nie z warstw buforowanych przez poprzednie wdrożenie. Adres IP kontenera może również ulec zmianie z powodu wdrożenia na innym hoście źródłowym.

Następne kroki

W tym artykule wymieniono kilka razy grupy kontenerów. Każdy kontener w usłudze Azure Container Instances jest wdrażany w grupie kontenerów, a grupy kontenerów mogą zawierać więcej niż jeden kontener. Następujące artykuły zawierają więcej informacji na temat grup kontenerów: