Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Azure Container Registry görevlerinizinayrı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 özellikleri sunar:
- 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ırımı üzerine kuruludur. 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ı Azure tarafından güncellenir ve bakımı yapılır, bu sayede her bir VM'in bakımıyla ilgilenmeye gerek kalmadan ayrılmış kaynak sağlanır.
Bu özellik Premium kapsayıcı kayıt defteri hizmet katmanında kullanılabilir. Konteyner kayıt defteri hizmet katmanları ve sınırları hakkında bilgi için, Azure Container Registry SKU'ları bölümüne bakınız.
Ö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 | İşlemci (CPU) | Bellek (GB) |
---|---|---|---|
S1 | standart | 2 | 3 |
S2 | standart | 4 | 8 |
S3 | standart | 8 | 16 |
I6 | Yalıtılmış | 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 --registry <registryName>
komutta bir az acr
parametre iletin.
Aracı havuzu oluştur
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 oluşturmak ve diğer havuz yönetim işlemleri, tamamlanması birkaç dakika alır.
Ö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çeklendirebilirsiniz.
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ı | Kullanılmış | Açıklamalar |
---|---|---|---|---|---|---|---|
Giden | TCP | VirtualNetwork | Herhangi bir | AzureKeyVault | 443 | Varsayılan | |
Giden | TCP | VirtualNetwork | Herhangi bir | Depolama | 443 | Varsayılan | |
Giden | TCP | VirtualNetwork | Herhangi bir | EventHub | 443 | Varsayılan | |
Giden | TCP | VirtualNetwork | Herhangi bir | AzureActiveDirectory | 443 | Varsayılan | |
Giden | TCP | VirtualNetwork | Herhangi bir | 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ğ yapısı 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 (yalnızca kayıt defteri özel bağlantı kullanmıyorsa)
- 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 gönderemez, ancak yine de normal çalışmaya devam edebilir 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ı, yukarıdaki örnekte mcr.microsoft.com olacak hedef kayıt defteri konağına giden trafik için bir yol yapılandırmalıdır. Aynı kurallar diğer tüm dış genel kayıt defterleri (docker.io, quay.io, ghcr.io vb.) için de geçerlidir.
Özel DNS kullanma
Alt ağda yapılandırılmış özel bir DNS sunucusu varsa bu, çalışma zamanı sırasında derleme aracısı tarafından devralınır.
Önemli
Özel DNS uç noktası tarafından kullanılan IP aralığı docker'ın varsayılan aralığıyla çakışmamalıdır 172.17.0.0/16
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ılar havuzunda görevi çalıştır
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ı havuzunda hızlı bir görevi kuyruğa alın ve --agent-pool
parametresini 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 komutunu kullanarak aracı havuzunda zamanlanmış bir görev oluşturun ve --agent-pool
parametresini 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
Bulut ortamında kapsayıcı imaj derlemeleri ve güncelleme örnekleri için ACR Görevleri öğretici serisine göz atın.