Aracılığıyla paylaş


Ayrılmış aracı havuzunda ACR görevi çalıştırma

Azure Container Registry görevlerinizin ayrılmış bir işlem ortamında çalıştırılmasını sağlamak için Azure tarafından yönetilen bir VM havuzu (aracı havuzu) ayarlayın. Kayıt defterinizde bir veya daha fazla havuz yapılandırdıktan sonra, hizmetin varsayılan işlem ortamı yerine bir görevi çalıştırmak için bir havuz seçebilirsiniz.

Aracı havuzu şu bilgileri sağlar:

  • Sanal ağ desteği - Azure sanal ağına aracı havuzu atayarak sanal ağdaki kapsayıcı kayıt defteri, anahtar kasası veya depolama gibi kaynaklara erişim sağlayın.
  • Gerektiğinde ölçeklendirin - Yoğun işlem gerektiren görevler için aracı havuzundaki örnek sayısını artırın veya sıfıra ölçeklendirin. Faturalama, havuz ayırmayı temel alır. Ayrıntılar için bkz . Fiyatlandırma.
  • Esnek seçenekler - Görev iş yükü gereksinimlerinizi karşılamak için farklı havuz katmanları ve ölçek seçenekleri arasından seçim yapın.
  • Azure yönetimi - Görev havuzlarına Azure tarafından düzeltme eki eklenerek bakım yapılır ve tek tek VM'lerin bakımını yapmaya gerek kalmadan ayrılmış ayırma sağlanır.

Bu özellik Premium kapsayıcı kayıt defteri hizmet katmanında kullanılabilir. Kayıt defteri hizmet katmanları ve sınırları hakkında bilgi için bkz . Azure Container Registry SKU'ları.

Önemli

Bu özellik şu anda önizleme aşamasındadır ve bazı sınırlamalar geçerlidir. Önizlemeler, ek kullanım koşullarını kabul etmeniz şartıyla kullanımınıza sunulur. Bu özelliğin bazı yönleri genel kullanıma açılmadan önce değişebilir.

Önizleme sınırlamaları

  • Görev aracısı havuzları şu anda Linux düğümlerini destekliyor. Windows düğümleri şu anda desteklenmiyor.
  • Görev aracısı havuzları şu bölgelerde önizlemede kullanılabilir: Batı ABD 2, Orta Güney ABD, Doğu ABD 2, Doğu ABD, Orta ABD, Batı Avrupa, Kuzey Avrupa, Orta Kanada, Doğu Asya, kuzey İsviçre, USGov Arizona, USGov Texas ve USGov Virginia.
  • Her kayıt defteri için varsayılan toplam vCPU (çekirdek) kotası tüm standart aracı havuzları için 16 ve yalıtılmış aracı havuzları için 0'dır. Ek ayırma için bir destek isteği açın.

Önkoşullar

  • Bu makaledeki Azure CLI adımlarını kullanmak için Azure CLI sürüm 2.3.1 veya üzeri gereklidir. Yüklemeniz veya yükseltmeniz gerekirse, bkz. Azure CLI yükleme. Veya Azure Cloud Shell'de komutunu çalıştırın.
  • Henüz bir kapsayıcı kayıt defteriniz yoksa önizleme bölgesinde bir (Premium katman gerekli) oluşturun.

Havuz katmanları

Aracı havuzu katmanları havuzdaki örnek başına aşağıdaki kaynakları sağlar.

Katman Tür CPU Bellek (GB)
S1 standart 2 3
S2 standart 4 8
S3 standart 8 16
I6 Izole 64 216

Görev aracısı havuzu oluşturma ve yönetme

Varsayılan kayıt defterini ayarlama (isteğe bağlı)

Aşağıdaki Azure CLI komutlarını basitleştirmek için az config komutunu çalıştırarak varsayılan kayıt defterini ayarlayın:

az config set defaults.acr=<registryName>

Aşağıdaki örneklerde varsayılan kayıt defterini ayarladığınız varsayılır. Aksi takdirde, her az acr komutta bir --registry <registryName> parametre geçirin.

Aracı havuzu oluşturma

az acr agentpool create komutunu kullanarak bir aracı havuzu oluşturun . Aşağıdaki örnek bir katman S2 havuzu (4 CPU/örnek) oluşturur. Havuz varsayılan olarak 1 örnek içerir.

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

Not

Aracı havuzu ve diğer havuz yönetimi işlemlerinin oluşturulması birkaç dakika sürer.

Ölçek havuzu

az acr agentpool update komutuyla havuz boyutunun ölçeğini büyütün veya küçültün. Aşağıdaki örnek havuzu 2 örneğe ölçeklendirir. 0 örneğe ölçeklendirin.

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

Sanal ağda havuz oluşturma

Güvenlik duvarı kuralları ekleme

Görev aracısı havuzları aşağıdaki Azure hizmetlerine erişim gerektirir. Mevcut ağ güvenlik gruplarına veya kullanıcı tanımlı yollara aşağıdaki güvenlik duvarı kuralları eklenmelidir.

Yön Protokol Kaynak Kaynak Bağlantı Noktası Hedef Dest Bağlantı Noktası Used Açıklamalar
Giden TCP VirtualNetwork Tümü AzureKeyVault 443 Varsayılan
Giden TCP VirtualNetwork Tümü Depolama 443 Varsayılan
Giden TCP VirtualNetwork Tümü EventHub 443 Varsayılan
Giden TCP VirtualNetwork Tümü AzureActiveDirectory 443 Varsayılan
Giden TCP VirtualNetwork Tümü AzureMonitor 443,12000 Varsayılan 12000 numaralı bağlantı noktası, tanılama için kullanılan benzersiz bir bağlantı noktasıdır

Not

Görevleriniz genel İnternet'ten ek kaynaklar gerektiriyorsa ilgili kuralları ekleyin. Örneğin, temel görüntüleri Docker Hub'dan alan veya bir NuGet paketini geri yükleyen bir docker derleme görevi çalıştırmak için ek kurallar gerekir.

DAĞıTıMlarını MCR ile temel edinen müşteriler, MCR/MAR güvenlik duvarı kurallarına başvurabilir .

Gelişmiş ağ yapılandırması

Standart Güvenlik Duvarı/NSG (Ağ Güvenlik Grubu) kuralları çok izinli kabul edilirse ve giden bağlantılar için daha ayrıntılı denetim gerekiyorsa aşağıdaki yaklaşımı göz önünde bulundurun:

  • Aracı havuzu alt ağındaki hizmet uç noktalarını etkinleştirin. Bu, aracı havuzuna hizmet bağımlılıklarına erişim verirken güvenli bir ağ duruşu sağlar.
  • Giden Güvenlik Duvarı/NSG kurallarının hala gerekli olduğunu unutmayın. Bu kurallar, Sanal Ağ kaynak IP'yi genelden özele geçirme özelliğini kolaylaştırır ve bu da hizmet uç noktalarını etkinleştirmenin ötesinde bir adımdır.

Hizmet uç noktaları hakkında daha fazla bilgi burada belgelenmiştir.

En azından aşağıdaki hizmet uç noktaları gereklidir

  • Microsoft.AzureActiveDirectory
  • Microsoft.ContainerRegistry
  • Microsoft.EventHub
  • Microsoft.KeyVault
  • Microsoft.Storage (veya coğrafi çoğaltmayı dikkate alan ilgili depolama bölgeleri)

Not

Şu anda Azure İzleyici için bir hizmet uç noktası yok. Azure İzleyici için giden trafik yapılandırılmamışsa aracı havuzu tanılama günlüklerini yayamaz ancak yine de normal çalışıyor gibi görünebilir. Bu durumda ACR, karşılaşılan sorunları tam olarak gidermeye yardımcı olmayacaktır, bu nedenle ağ yapılandırmasını planlarken ağ yöneticisinin bunu dikkate alması önemlidir.

Ayrıca, daha yaygın kullanım örneklerinden bazıları için tüm ACR Görevlerinin önceden önbelleğe alınmış görüntüleri olduğuna dikkat etmek önemlidir. Görevler tek seferde yalnızca tek bir sürümü önbelleğe alır, yani tam etiketli görüntü başvurusu kullanılırsa derleme aracısı görüntüyü çekmeye çalışır. Örneğin, yaygın bir kullanım örneğidir cmd: mcr.microsoft.com/acr/acr-cli:<tag>. Ancak, önceden önbelleğe alınmış sürüm sık sık güncelleştirilir ve bu da makinedeki gerçek sürümün büyük olasılıkla daha yüksek olacağı anlamına gelir. Bu durumda, ağ yapılandırmasının hedef kayıt defteri konağına giden trafik için yukarıdaki örnekte mcr.microsoft.com olacak bir yol yapılandırması gerekir. Aynı kurallar diğer tüm dış genel kayıt defterleri (docker.io, quay.io, ghcr.io vb.) için de geçerlidir.

Sanal ağda havuz oluşturma

Aşağıdaki örnek, myvnet ağının mysubnet alt ağında bir aracı havuzu oluşturur:

# 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

Aracı havuzunda görevi çalıştırma

Aşağıdaki örneklerde, bir görevi kuyruğa alırken aracı havuzunun nasıl belirtileceğini gösterilmektedir.

Not

ACR görevinde aracı havuzu kullanmak için havuzda en az 1 örnek bulunduğundan emin olun.

Hızlı görev

az acr build komutunu kullanarak aracı havuzundaki hızlı bir görevi kuyruğa alın ve parametresini --agent-pool geçirin:

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

Otomatik olarak tetiklenen görev

Örneğin, az acr task create komutuyla aracı havuzunda zamanlanmış bir görev oluşturun ve parametresini --agent-pool geçirin.

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

Görev kurulumunu doğrulamak için az acr task run komutunu çalıştırın:

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

Sorgu havuzu durumu

Aracı havuzunda zamanlanmış olan çalıştırma sayısını bulmak için az acr agentpool show komutunu çalıştırın.

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

Sonraki adımlar

Bulutta kapsayıcı görüntüsü derlemeleri ve bakım örnekleri için ACR Görevleri öğretici serisine göz atın.