Azure Container Apps Önizlemesinde Kapsayıcılar

Azure Container Apps, Kubernetes ve kapsayıcı düzenlemelerinin ayrıntılarını sizin için yönetir. Azure Container Apps'te kapsayıcılar herhangi bir çalışma zamanı, programlama dili veya geliştirme yığınını tercih edebilirsiniz.

Azure Container Apps: Kapsayıcılar

Azure Container Apps şunları destekler:

  • Linux tabanlı herhangi bir kapsayıcı görüntüsü
  • Herhangi bir genel veya özel kapsayıcı kayıt defterindeki kapsayıcılar

Ek özellikler şunlardır:

  • Gerekli temel kapsayıcı görüntüsü yoktur.
  • ARM yapılandırması bölümünde template yapılan değişiklikler yeni bir kapsayıcı uygulaması düzeltmesi tetikler.
  • Bir kapsayıcı kilitlenirse otomatik olarak yeniden başlatılır.

Yapılandırma

Aşağıdaki örnek yapılandırma, bir kapsayıcıyı ayarlarken kullanılabilen seçenekleri gösterir.

{
  ...
  "template": {
    "containers": [
      {
        "image": "myacr.azurecr.io/myrepo/api-service:v1",
        "name": "my-container-image",
        "command": ["/bin/queue"],
        "args": [],
        "env": [
          {
            "name": "HTTP_PORT",
            "value": "8080"
          }
        ],
        "resources": {
            "cpu": 1,
            "memory": "250Mb"
        }
    }]
  }
}
Ayar Açıklama Açıklamalar
image Kapsayıcı uygulamanıza göre kapsayıcı görüntüsü adı. Bu değer, repository/image-name:tag şeklindedir.
name Kapsayıcının kolay adı. Raporlama ve tanımlama için kullanılır.
command Kapsayıcının başlangıç komutu. Docker'ın giriş noktası alanına eşdeğerdir.
args Komut bağımsız değişkenlerini başlatma. Dizideki girişler, başlangıç komutuna geçiş yapmak için bir parametre listesi oluşturmak için bir araya eklenir.
env Ortam değişkenlerini tanımlayan anahtar/değer çiftleri dizisi. Gizli secretRef bir gizli value bilgiye başvurmak için alanı yerine kullanın.
resources.cpu Kapsayıcıya ayrılan CPU sayısı. Değerlerin aşağıdaki kurallara uyması gerekir: değer sıfırdan büyük ve 2'den küçük olmalıdır ve herhangi bir ondalık sayı olabilir ve en fazla bir ondalık basamak olabilir. Örneğin, 1.1 geçerli, ancak 1.55 geçersizdir. Varsayılan değer kapsayıcı başına 0,5 CPU'dır.
resources.memory Kapsayıcıya ayrılan RAM miktarı. Bu değer, değerine 4Gi kadardır. İzin verilen tek birleşik değer gibibaytlardır ( Gi ). Değerlerin aşağıdaki kurallara uyması gerekir: değer sıfırdan büyük ve değerinden küçük olmalıdır ve herhangi bir ondalık sayı olabilir ve en 4Gi fazla iki ondalık basamak olabilir. Örneğin, 1.25Gi geçerli, ancak 1.555Gi geçersizdir. Kapsayıcı başına varsayılan 1Gi değerdir.

Kapsayıcı uygulamasındaki tüm kapsayıcılar için istenen toplam CPU miktarı ve bellek miktarı aşağıdaki bileşimlerden birini eklemalıdır.

Sanal çekirdek Gi'de bellek
0,5 1.0
1.0 2.0
1,5 3.0
2.0 4.0
  • Tüm kapsayıcılarınıza gelen CPU isteklerinin vCPU sütunundaki değerlerden biri ile eşleşmesi gerekir.
  • Tüm kapsayıcılarınıza gelen tüm bellek isteklerinin CPU sütunlarının aynı satırdaki bellek sütunundaki bellek değeriyle eşleşmesi gerekir.

Birden çok kapsayıcı

Tek bir kapsayıcı uygulamasında birden çok kapsayıcı tanımlayabilirsiniz. Kapsayıcı grupları pod olarak bilinir. Pod'daki kapsayıcılar sabit diski ve ağ kaynaklarını paylaşır ve aynı uygulama yaşam döngüsünü deneyimler.

Yapılandırmanın dizisinde birden fazla kapsayıcı tanımlayarak birden çok kapsayıcıyı birlikte containers çalıştırabilirsiniz.

Podda kapsayıcıları birlikte çalıştırma nedenleri şunlardır:

  • Kapsayıcıyı birincil uygulamanıza bir araba olarak kullanın.
  • Paylaşılan disk alanı ve sanal ağ kullanımı.
  • Ölçek kurallarını kapsayıcılar arasında paylaşın.
  • Her zaman birlikte çalışması gereken birden çok kapsayıcıyı birlikte grupla.
  • Aynı konakta bulunan kapsayıcılar arasında doğrudan iletişimi etkinleştirin.

Kapsayıcı kayıt defterleri

Özel kayıt defterleri üzerinde barındırılan görüntüleri dağıtabilirsiniz; burada kimlik bilgileri Container Apps yapılandırması aracılığıyla sağlanır.

Kapsayıcı kayıt defterini kullanmak için önce yapılandırmanın bölümüne gerekli alanları tanımlayın. registries

{
  ...
  "registries": {
    "server": "docker.io",
    "username": "my-registry-user-name",
    "passwordSecretRef": "my-password-secretref-name"
  }
}

Bu ayar ile, dizideki bir kapsayıcı görüntüsüne başvurarak kaydedilen kimlik image bilgileri containers kullanılabilir.

Aşağıdaki örnekte, uygulamanın şirket dışından nasıl Azure Container Registry.

{
  ...
  "configuration": {
      "secrets": [
          {
              "name": "acr-password",
              "value": "my-acr-password"
          }
      ],
      "registries": [
          {
              "server": "myacr.azurecr.io",
              "username": "someuser",
              "passwordSecretRef": "acr-password"
          }
      ]
  }
}

Sınırlamalar

Azure Container Apps aşağıdaki sınırlamalara sahiptir:

  • Ayrıcalıklı kapsayıcılar: Azure Container Apps ayrıcalıklı kapsayıcıları çalıştıramamalıdır. Programınız kök erişim gerektiren bir işlemi çalıştırmaya çalışırsa, kapsayıcının içindeki uygulama bir çalışma zamanı hatasıyla karşılaştı.

  • İşletim sistemi: Linux tabanlı kapsayıcı görüntüleri gereklidir.

Sonraki adımlar