Azure CLI ile iş yükü profillerini yönetme

Azure CLI kullanarak Container Apps ortamınızda iş yükü profillerini yönetmeyi öğrenin.

Bir profilde konteyner uygulaması oluşturun

Varsayılan olarak, Container Apps ortamınız sizin için otomatik olarak oluşturulan bir yönetilen sanal ağ ile oluşturulur. Oluşturulan sanal ağlara, Microsoft kiracısında oluşturulduğundan erişemezsiniz.

Alternatif olarak, özel bir sanal ağ ile ortam oluşturabilirsiniz. Aşağıdaki özelliklerden herhangi birine ihtiyacınız varsa bu seçeneği kullanın:

  • Kullanıcı tanımlı yollar
  • Application Gateway ile tümleştirme
  • Ağ Güvenlik Grupları
  • Sanal ağınızdaki özel uç noktaların arkasındaki kaynaklarla iletişim kurma
  1. Container Apps ortamı oluşturun.

    az containerapp env create \
      --resource-group "<RESOURCE_GROUP>" \
      --name "<NAME>" \
      --location "<LOCATION>"
    

    Bu komutun tamamlanması 10 dakika kadar sürebilir.

  2. Ortamınızın durumunu denetleyin. Aşağıdaki komut, ortamın başarıyla oluşturulup oluşturulmadığını bildirir.

    az containerapp env show \
      --name "<ENVIRONMENT_NAME>" \
      --resource-group "<RESOURCE_GROUP>"
    

    provisioningState öğesinin, sonraki komuta geçmeden önce Succeeded raporlaması gerekir.

  3. Yeni bir kapsayıcı uygulaması oluşturun.

    az containerapp create \
      --resource-group "<RESOURCE_GROUP>" \
      --name "<CONTAINER_APP_NAME>" \
      --target-port 80 \
      --ingress external \
      --image mcr.microsoft.com/k8se/quickstart:latest \
      --environment "<ENVIRONMENT_NAME>" \
      --workload-profile-name "Consumption"
    

Bu komut, uygulamayı yerleşik Tüketim iş yükü profiline dağıtır. Ayrılmış profilde uygulama oluşturmak istiyorsanız, önce profili ortama eklemeniz gerekir.

Bu komut, belirli bir iş yükü profilini kullanarak ortamda yeni uygulamayı oluşturur.

Özel bir sanal ağ ile bir ortam oluşturduğunuzda, sanal ağ yapılandırması üzerinde tam denetime sahipsinizdir. Bu denetim size aşağıdaki özellikleri uygulama seçeneği sunar:

  • Kullanıcı tanımlı yollar
  • Application Gateway ile tümleştirme
  • Ağ Güvenlik Grupları
  • Sanal ağınızdaki özel uç noktaların arkasındaki kaynaklarla iletişim kurma

Container Apps ortamı oluşturmak için aşağıdaki komutları kullanın.

  1. Sanal ağ oluşturma.

    az network vnet create \
      --address-prefixes 13.0.0.0/23 \
      --resource-group "<RESOURCE_GROUP>" \
      --location "<LOCATION>" \
      --name "<VNET_NAME>"
    
  2. Microsoft.App/environments için temsilci atanmış bir alt ağ oluşturun.

    az network vnet subnet create \
      --address-prefixes 13.0.0.0/23 \
      --delegations Microsoft.App/environments \
      --name "<SUBNET_NAME>" \
      --resource-group "<RESOURCE_GROUP>" \
      --vnet-name "<VNET_NAME>" \
      --query "id"
    

    Kimlik değerini kopyalayın ve sonraki komuta yapıştırın.

    Container Apps çalışma zamanına, iş yükü profillerini Container Apps ortamında çalıştırabilmesi için sanal ağınız üzerinde gerekli denetimi vermek üzere Microsoft.App/environments yetkilendirmesi gereklidir.

    Alt ağ için /27 CIDR bloğu kadar küçük bir aralık belirtebilirsiniz (32 IP - 8’i ayrılmış). Bir /27 CIDR belirtecekseniz aşağıdaki öğeleri göz önünde bulundurun:

    • Container Apps altyapısı için ayrılmış 11 IP adresi vardır. Bu nedenle, bir /27 CIDR en fazla 21 kullanılabilir IP adresine sahiptir.

    • IP adresleri, yalnızca Tüketim planları ile Adanmış planlar arasında farklı şekilde atanır:

      Yalnızca tüketim Özel
      Her çoğaltma bir IP gerektirir. Kullanıcılar tüm uygulamalarda 21'den fazla çoğaltması olan uygulamalara sahip olamaz. Yeni revizyon başarıyla dağıtılana kadar eski revizyon çalışmaya devam ettiğinden, sıfır kesintiyle dağıtım iki katı IP gerektirir. Her örnek (VM düğümü) tek bir IP gerektirir. Tüm iş yükü profilleri genelinde en fazla 21 örneğe ve bu iş yükü profillerinde çalışan yüzlerce veya daha fazla replikaya sahip olabilirsiniz.
  3. Container Apps ortamı oluşturun.

    Not

    Kapsayıcı uygulamanızın genel gelen trafiğe mi yoksa yalnızca sanal ağınız içinden gelen trafiğe mi izin vereceğini ortam düzeyinde yapılandırabilirsiniz. Girişi yalnızca sanal ağınızla kısıtlamak için bayrağını --internal-only ayarlayın.

    az containerapp env create \
      --resource-group "<RESOURCE_GROUP>" \
      --name "<NAME>" \
      --location "<LOCATION>"
    

    Bu komutun tamamlanması 10 dakika kadar sürebilir.

  4. Ortamınızın durumunu denetleyin. Aşağıdaki komut, ortamın başarıyla oluşturulup oluşturulmadığını bildirir.

    az containerapp env show \
      --name "<ENVIRONMENT_NAME>" \
      --resource-group "<RESOURCE_GROUP>"
    

    Bir sonraki komuta geçmeden önce provisioningState, Succeeded raporlamalıdır.

  5. Yeni bir kapsayıcı uygulaması oluşturun.

    az containerapp create \
      --resource-group "<RESOURCE_GROUP>" \
      --name "<CONTAINER_APP_NAME>" \
      --target-port 80 \
      --ingress external \
      --image mcr.microsoft.com/k8se/quickstart:latest \
      --environment "<ENVIRONMENT_NAME>" \
      --workload-profile-name "Consumption"
    

Bu komut, uygulamayı yerleşik Tüketim iş yükü profiline dağıtır. Ayrılmış profilde uygulama oluşturmak istiyorsanız, önce profili ortama eklemeniz gerekir.

Bu komut, belirli bir iş yükü profilini kullanarak ortamda yeni uygulamayı oluşturur.

Profil ekleyin

Mevcut bir ortama yeni bir iş yükü profili ekleyin. Bu bölümde açıklandığı gibi bir iş profili türü belirtmeniz gerekir.

az containerapp env workload-profile add \
  --resource-group <RESOURCE_GROUP> \
  --name <ENVIRONMENT_NAME> \
  --workload-profile-type <WORKLOAD_PROFILE_TYPE> \
  --workload-profile-name <WORKLOAD_PROFILE_NAME> \
  --min-nodes <MIN_NODES> \
  --max-nodes <MAX_NODES>

Eklenecek bir iş yükü profili seçtiğinizde bölgesel kullanılabilirliği sağlayın. <WORKLOAD_PROFILE_NAME> yer tutucusu için seçtiğiniz değer, iş yükü profilinin görünen adıdır.

Kolay adlar kullanmak, bir ortama aynı türde birden çok profil eklemenize olanak tanır. Kolay ad, bir kapsayıcı uygulamasını bir iş yükü profilinde dağıtırken ve korurken kullandığınız addır.

İş profili türü bölgeye özgüdür, tek bir genel sabit kodlanmış liste değildir. Hedeflenen keşif yolu: az containerapp env workload-profile list-supported -l <REGION>. Uygulama, arm şablonu uç noktasından desteklenen değerleri bu konumdaki kullanılabilir iş yükü profili türleri için çözümler.

Bölgeniz için geçerli iş yükü profili türlerini görmek için şu komutu kullanın:

az containerapp env workload-profile list-supported -l <REGION>

--workload-profile-type için döndürülen değerlerden birini kullanın. Örneğin, bu türün kullanılabildiği bölgelerde kullanabilirsiniz D4 .

Aşağıdaki davranışı aklınızda bulundurun:

  • Komut, göndermeden önce tür değerini büyük harfle değiştirir.
  • --workload-profile-name öğesini atlarsanız komut, profil adını varsayılan olarak tür değerine ayarlar.
  • İş yükü profillerini ekleme veya güncelleştirme yalnızca iş yükü profillerini destekleyen ortamlarda çalışır.

Profilleri düzenleme

komutunu kullanarak update bir iş yükü profili tarafından kullanılan en düşük ve en fazla düğüm sayısını değiştirebilirsiniz.

az containerapp env workload-profile update \
  --resource-group <RESOURCE_GROUP> \
  --name <ENV_NAME> \
  --workload-profile-type <WORKLOAD_PROFILE_TYPE> \
  --workload-profile-name <WORKLOAD_PROFILE_NAME> \
  --min-nodes <MIN_NODES> \
  --max-nodes <MAX_NODES>

Profili sil

bir iş yükü profilini silmek için aşağıdaki komutu kullanın.

az containerapp env workload-profile delete \
  --resource-group "<RESOURCE_GROUP>" \
  --name <ENVIRONMENT_NAME> \
  --workload-profile-name <WORKLOAD_PROFILE_NAME> 

Not

Tüketim iş yükü profili silinemez.

Profilleri inceleme

Aşağıdaki komutlar, bölgenizdeki kullanılabilir profilleri ve belirli bir ortamda kullanılan profilleri listelemenizi sağlar.

Kullanılabilir iş yükü profillerini listeleme

list-supported Bölgeniz için desteklenen iş yükü profillerini listelemek için komutunu kullanın.

Aşağıdaki Azure CLI komutu sonuçları bir tabloda görüntüler.

az containerapp env workload-profile list-supported \
  --location <LOCATION>  \
  --query "[].{Name: name, Cores: properties.cores, MemoryGiB: properties.memoryGiB, Category: properties.category}" \
  -o table

Yanıt, şu örneğe benzer bir tabloya benzer:

Name                       Cores    MemoryGiB    Category
-------------------------  -------  -----------  --------------------
D4                         4        16           GeneralPurpose
D8                         8        32           GeneralPurpose
D16                        16       64           GeneralPurpose
D32                        32       128          GeneralPurpose
E4                         4        32           MemoryOptimized
E8                         8        64           MemoryOptimized
E16                        16       128          MemoryOptimized
E32                        32       256          MemoryOptimized
Consumption                4        8            Consumption
Consumption-GPU-NC24-A100  24       220          Consumption-GPU-A100
Consumption-GPU-NC8as-T4   8        56           Consumption-GPU-T4
Flex                       4        16           Consumption
NC24-A100                  24       220          GPU-NC-A100
NC48-A100                  48       440          GPU-NC-A100
NC96-A100                  96       880          GPU-NC-A100

Bir iş yükü profili seçin ve iş yükü profillerini --workload-profile-type seçeneği için az containerapp env workload-profile add veya az containerapp env workload-profile update komutlarıyla eklerken ya da güncelleştirirken Ad alanını kullanın.

İş yükü profilini gösterme

İş yükü profiliyle ilgili ayrıntıları görüntüleyin.

az containerapp env workload-profile show \
  --resource-group <RESOURCE_GROUP> \
  --name <ENVIRONMENT_NAME> \
  --workload-profile-name <WORKLOAD_PROFILE_NAME> 

Sonraki adım