Udostępnij za pośrednictwem


Uruchamianie zadania usługi ACR w dedykowanej puli agentów

Skonfiguruj pulę maszyn wirtualnych (pulę agentów) zarządzaną przez platformę Azure, aby umożliwić uruchamianie zadań usługi Azure Container Registry w dedykowanym środowisku obliczeniowym. Po skonfigurowaniu co najmniej jednej pul w rejestrze możesz wybrać pulę do uruchomienia zadania zamiast domyślnego środowiska obliczeniowego usługi.

Pula agentów udostępnia następujące jednostki:

  • Obsługa sieci wirtualnej — przypisz pulę agentów do sieci wirtualnej platformy Azure, zapewniając dostęp do zasobów w sieci wirtualnej, takich jak rejestr kontenerów, magazyn kluczy lub magazyn.
  • Skalowanie zgodnie z potrzebami — zwiększ liczbę wystąpień w puli agentów na potrzeby zadań intensywnie korzystających z obliczeń lub przeprowadź skalowanie do zera. Rozliczenia są oparte na alokacji puli. Aby uzyskać szczegółowe informacje, zobacz Cennik.
  • Opcje elastyczne — wybierz jedną z różnych warstw puli i opcji skalowania, aby spełnić potrzeby związane z obciążeniem zadania.
  • Zarządzanie platformą Azure — pule zadań są poprawiane i obsługiwane przez platformę Azure, zapewniając zarezerwowaną alokację bez konieczności obsługi poszczególnych maszyn wirtualnych.

Ta funkcja jest dostępna w warstwie usługi rejestru kontenerów Premium . Aby uzyskać informacje o warstwach i limitach usługi rejestru, zobacz Jednostki SKU usługi Azure Container Registry.

Ważne

Ta funkcja jest obecnie dostępna w wersji zapoznawczej i obowiązują pewne ograniczenia. Wersje zapoznawcze są udostępniane pod warunkiem udzielenia zgody na dodatkowe warunki użytkowania. Niektóre cechy funkcji mogą ulec zmianie, zanim stanie się ona ogólnie dostępna.

Ograniczenia wersji zapoznawczej

  • Pule agentów zadań obsługują obecnie węzły systemu Linux. Węzły systemu Windows nie są obecnie obsługiwane.
  • Pule agentów zadań są dostępne w wersji zapoznawczej w następujących regionach: Zachodnie stany USA 2, Południowo-środkowe stany USA, Wschodnie stany USA 2, Wschodnie stany USA, Środkowe stany USA, Europa Zachodnia, Europa Północna, Kanada Środkowa, Azja Wschodnia, Szwajcaria Północna, USGov Arizona, USGov Texas i USGov Virginia.
  • Dla każdego rejestru domyślny łączny limit przydziału procesorów wirtualnych (rdzeni) wynosi 16 dla wszystkich standardowych pul agentów i wynosi 0 dla izolowanych pul agentów. Otwórz wniosek o pomoc techniczną w celu uzyskania dodatkowej alokacji.

Wymagania wstępne

  • Aby użyć kroków interfejsu wiersza polecenia platformy Azure w tym artykule, wymagany jest interfejs wiersza polecenia platformy Azure w wersji 2.3.1 lub nowszej. Jeśli konieczna będzie instalacja lub uaktualnienie, zobacz Instalowanie interfejsu wiersza polecenia platformy Azure. Możesz też uruchomić polecenie w usłudze Azure Cloud Shell.
  • Jeśli nie masz jeszcze rejestru kontenerów, utwórz jeden (wymagana warstwa Premium) w regionie wersji zapoznawczej.

Warstwy puli

Warstwy puli agentów zapewniają następujące zasoby na wystąpienie w puli.

Warstwa Typ Procesor CPU Pamięć (GB)
S1 standardowa 2 3
S2 standardowa 4 8
S3 standardowa 8 16
I6 odizolowany 64 216

Tworzenie puli agentów zadań i zarządzanie nią

Ustaw rejestr domyślny (opcjonalnie)

Aby uprościć następujące polecenia interfejsu wiersza polecenia platformy Azure, ustaw rejestr domyślny, uruchamiając polecenie az config :

az config set defaults.acr=<registryName>

W poniższych przykładach założono, że ustawiono rejestr domyślny. Jeśli nie, przekaż --registry <registryName> parametr w każdym az acr poleceniu.

Tworzenie puli agentów

Utwórz pulę agentów przy użyciu polecenia az acr agentpool create . Poniższy przykład tworzy pulę warstwy S2 (4 procesor/wystąpienie). Domyślnie pula zawiera 1 wystąpienie.

az acr agentpool create \
    --registry MyRegistry \
    --name myagentpool \
    --tier S2

Uwaga

Tworzenie puli agentów i innych operacji zarządzania pulą trwa kilka minut.

Skalowanie puli

Skaluj rozmiar puli w górę lub w dół za pomocą polecenia az acr agentpool update . Poniższy przykład skaluje pulę do 2 wystąpień. Można skalować do 0 wystąpień.

az acr agentpool update \
    --registry MyRegistry \
    --name myagentpool \
    --count 2

Tworzenie puli w sieci wirtualnej

Dodawanie reguł zapory

Pule agentów zadań wymagają dostępu do następujących usług platformy Azure. Do istniejących sieciowych grup zabezpieczeń lub tras zdefiniowanych przez użytkownika należy dodać następujące reguły zapory.

Kierunek Protokół Element źródłowy Port źródłowy Element docelowy Dest Port Used Uwagi
Wychodzący TCP VirtualNetwork Dowolne AzureKeyVault 443 Wartość domyślna
Wychodzący TCP VirtualNetwork Dowolne Storage 443 Wartość domyślna
Wychodzący TCP VirtualNetwork Dowolne EventHub 443 Wartość domyślna
Wychodzący TCP VirtualNetwork Dowolne AzureActiveDirectory 443 Wartość domyślna
Wychodzący TCP VirtualNetwork Dowolne AzureMonitor 443,12000 Wartość domyślna Port 12000 to unikatowy port używany do diagnostyki

Uwaga

Jeśli zadania wymagają dodatkowych zasobów z publicznego Internetu, dodaj odpowiednie reguły. Na przykład do uruchomienia zadania kompilacji platformy Docker potrzebne są dodatkowe reguły, które ściągają obrazy podstawowe z usługi Docker Hub lub przywracają pakiet NuGet.

Klienci, którzy bazują na swoich wdrożeniach za pomocą umowy MCR, mogą odwoływać się do reguł zapory MCR/MAR.

Zaawansowana konfiguracja sieci

Jeśli standardowe reguły zapory/sieciowej grupy zabezpieczeń (sieciowej grupy zabezpieczeń) są uznawane za zbyt permissywne, a bardziej szczegółowa kontrola jest wymagana w przypadku połączeń wychodzących, rozważ następujące podejście:

  • Włącz punkty końcowe usługi w podsieci puli agentów. Dzięki temu pula agentów uzyskuje dostęp do zależności usługi przy zachowaniu bezpiecznego stanu sieci.
  • Należy pamiętać, że reguły zapory/sieciowej grupy zabezpieczeń dla ruchu wychodzącego są nadal niezbędne. Te reguły ułatwiają przełączanie źródłowego adresu IP z publicznego na prywatny, co stanowi dodatkowy krok poza włączaniem punktów końcowych usługi.

Więcej informacji na temat punktów końcowych usługi opisano tutaj.

Wymagane będą co najmniej następujące punkty końcowe usługi

  • Microsoft.AzureActiveDirectory
  • Microsoft.ContainerRegistry
  • Microsoft.EventHub
  • Microsoft.KeyVault
  • Microsoft.Storage (lub odpowiednie regiony magazynu biorące pod uwagę replikację geograficzną)

Uwaga

Obecnie punkt końcowy usługi dla usługi Azure Monitor nie istnieje. Jeśli ruch wychodzący dla usługi Azure Monitor nie jest skonfigurowany, pula agentów nie będzie mogła emitować dzienników diagnostycznych, ale może nadal działać normalnie. W takim przypadku usługa ACR nie będzie mogła w pełni rozwiązać wszelkich napotkanych problemów, dlatego ważne jest, aby administrator sieci uwzględnił to podczas planowania konfiguracji sieci.

Należy również pamiętać, że wszystkie zadania usługi ACR mają wstępnie buforowane obrazy dla niektórych z bardziej typowych przypadków użycia. Zadania będą buforować tylko jedną wersję w danym momencie, co oznacza, że jeśli jest używane pełne odwołanie do obrazu oznakowanego, agent kompilacji podejmie próbę ściągnięcia obrazu. Na przykład typowym przypadkiem użycia jest cmd: mcr.microsoft.com/acr/acr-cli:<tag>. Jednak wersja wstępnie buforowana jest często aktualizowana, co oznacza, że rzeczywista wersja na maszynie prawdopodobnie będzie wyższa. W takim przypadku konfiguracja sieci musi skonfigurować trasę dla ruchu wychodzącego do docelowego hosta rejestru, który w powyższym przykładzie będzie mcr.microsoft.com. Te same reguły dotyczą innych zewnętrznych rejestrów publicznych (docker.io, quay.io, ghcr.io itp.).

Tworzenie puli w sieci wirtualnej

Poniższy przykład tworzy pulę agentów w podsieci mysubnet sieci myvnet:

# Get the subnet ID
subnetId=$(az network vnet subnet show \
        --resource-group myresourcegroup \
        --vnet-name myvnet \
        --name mysubnetname \
        --query id --output tsv)

az acr agentpool create \
    --registry MyRegistry \
    --name myagentpool \
    --tier S2 \
    --subnet-id $subnetId

Uruchamianie zadania w puli agentów

W poniższych przykładach pokazano, jak określić pulę agentów podczas kolejkowania zadania.

Uwaga

Aby użyć puli agentów w zadaniu usługi ACR, upewnij się, że pula zawiera co najmniej 1 wystąpienie.

Szybkie zadanie

W kolejce szybkie zadanie w puli agentów przy użyciu polecenia az acr build i przekaż --agent-pool parametr :

az acr build \
    --registry MyRegistry \
    --agent-pool myagentpool \
    --image myimage:mytag \
    --file Dockerfile \
    https://github.com/Azure-Samples/acr-build-helloworld-node.git#main

Automatycznie wyzwalane zadanie

Na przykład utwórz zaplanowane zadanie w puli agentów za pomocą polecenia az acr task create, przekazując --agent-pool parametr .

az acr task create \
    --registry MyRegistry \
    --name mytask \
    --agent-pool myagentpool \
    --image myimage:mytag \
    --schedule "0 21 * * *" \
    --file Dockerfile \
    --context https://github.com/Azure-Samples/acr-build-helloworld-node.git#main \
    --commit-trigger-enabled false

Aby zweryfikować konfigurację zadania, uruchom polecenie az acr task run:

az acr task run \
    --registry MyRegistry \
    --name mytask

Stan puli zapytań

Aby znaleźć liczbę przebiegów aktualnie zaplanowanych w puli agentów, uruchom polecenie az acr agentpool show.

az acr agentpool show \
    --registry MyRegistry \
    --name myagentpool \
    --queue-count

Następne kroki

Aby uzyskać więcej przykładów kompilacji i konserwacji obrazu kontenera w chmurze, zapoznaj się z serią samouczków usługi ACR Tasks.