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.