Ekinlikler
17 Mar 21 - 21 Mar 10
Diğer geliştiriciler ve uzmanlarla gerçek dünyadaki kullanım örneklerini temel alan ölçeklenebilir yapay zeka çözümleri oluşturmak için toplantı serisine katılın.
Hemen kaydolunBu tarayıcı artık desteklenmiyor.
En son özelliklerden, güvenlik güncelleştirmelerinden ve teknik destekten faydalanmak için Microsoft Edge’e yükseltin.
Azure Container Apps, sizin için Kubernetes ve kapsayıcı düzenleme ayrıntılarını yönetir. Azure Container Apps'deki kapsayıcılar sizin seçtiğiniz çalışma zamanını, bilgisayar dilini veya geliştirme yığınını kullanabilir.
Azure Container Apps şu desteği destekler:
linux/amd64
) kapsayıcı görüntüsüÖzellikler şunlardır:
template
. Yapılandırma bölümünde yapılan template
değişiklikler yeni bir kapsayıcı uygulaması düzeltmesini tetikler.İşlerin özellikleri şunlardır:
template
.Çoğu kapsayıcı uygulamasında tek bir kapsayıcı vardır. Gelişmiş senaryolarda, bir uygulamanın sepet ve giriş kapsayıcıları da olabilir. Kapsayıcı uygulaması tanımında, ana uygulama ve sepet kapsayıcıları bölümündeki dizide containers
properties.template
listelenir ve init kapsayıcıları dizide initContainers
listelenir. Aşağıdaki alıntı, bir uygulamanın kapsayıcılarını ayarlarken kullanılabilen yapılandırma seçeneklerini gösterir.
{
"properties": {
"template": {
"containers": [
{
"name": "main",
"image": "[parameters('container_image')]",
"env": [
{
"name": "HTTP_PORT",
"value": "80"
},
{
"name": "SECRET_VAL",
"secretRef": "mysecret"
}
],
"resources": {
"cpu": 0.5,
"memory": "1Gi"
},
"volumeMounts": [
{
"mountPath": "/appsettings",
"volumeName": "appsettings-volume"
}
],
"probes": [
{
"type": "liveness",
"httpGet": {
"path": "/health",
"port": 8080,
"httpHeaders": [
{
"name": "Custom-Header",
"value": "liveness probe"
}
]
},
"initialDelaySeconds": 7,
"periodSeconds": 3
},
{
"type": "readiness",
"tcpSocket": {
"port": 8081
},
"initialDelaySeconds": 10,
"periodSeconds": 3
},
{
"type": "startup",
"httpGet": {
"path": "/startup",
"port": 8080,
"httpHeaders": [
{
"name": "Custom-Header",
"value": "startup probe"
}
]
},
"initialDelaySeconds": 3,
"periodSeconds": 3
}
]
}
]
},
"initContainers": [
{
"name": "init",
"image": "[parameters('init_container_image')]",
"resources": {
"cpu": 0.25,
"memory": "0.5Gi"
},
"volumeMounts": [
{
"mountPath": "/appsettings",
"volumeName": "appsettings-volume"
}
]
}
]
...
}
...
}
Ayar | Açıklama | Açıklamalar |
---|---|---|
image |
Kapsayıcı uygulamanızın kapsayıcı görüntüsü adı. | Bu değer biçimindedir repository/<IMAGE_NAME>:<TAG> . |
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şlatın. | Dizideki girdiler, başlangıç komutuna geçirmek üzere bir parametre listesi oluşturmak üzere birleştirilir. |
env |
Ortam değişkenlerini tanımlayan ad/değer çiftleri dizisi. | Bir gizli diziye başvurmak için alan yerine value kullanınsecretRef . |
resources.cpu |
Kapsayıcıya ayrılan CPU sayısı. | Bkz. vCPU ve bellek ayırma gereksinimleri |
resources.memory |
Kapsayıcıya ayrılan RAM miktarı. | Bkz. vCPU ve bellek ayırma gereksinimleri |
volumeMounts |
Birim bağlama tanımları dizisi. | Kapsayıcınız için geçici veya kalıcı depolama birimleri tanımlayabilirsiniz. Depolama birimleri hakkında daha fazla bilgi için bkz . Azure Container Apps'te depolama bağlamalarını kullanma. |
probes |
Kapsayıcıda etkinleştirilen sistem durumu yoklamaları dizisi. | Yoklama ayarları hakkında daha fazla bilgi için bkz . Azure Container Apps'te sistem durumu yoklamaları. |
Tüketim planını kullandığınızda, bir kapsayıcı uygulamasındaki tüm kapsayıcılara ayrılan toplam CPU ve bellek aşağıdaki birleşimlerden birine kadar eklenmelidir.
vCPU'lar (çekirdekler) | Bellek |
---|---|
0.25 |
0.5Gi |
0.5 |
1.0Gi |
0.75 |
1.5Gi |
1.0 |
2.0Gi |
1.25 |
2.5Gi |
1.5 |
3.0Gi |
1.75 |
3.5Gi |
2.0 |
4.0Gi |
2.25 |
4.5Gi |
2.5 |
5.0Gi |
2.75 |
5.5Gi |
3.0 |
6.0Gi |
3.25 |
6.5Gi |
3.5 |
7.0Gi |
3.75 |
7.5Gi |
4.0 |
8.0Gi |
Not
Tüketim planını yalnızca Tüketim ortamında kullanan uygulamalar en fazla 2 çekirdek ve 4Gi bellekle sınırlıdır.
Gelişmiş senaryolarda, tek bir kapsayıcı uygulamasında birden çok kapsayıcı çalıştırabilirsiniz. Bu deseni yalnızca kapsayıcılarınızın sıkı bir şekilde bağlı olduğu belirli örneklerde kullanın.
Çoğu mikro hizmet senaryosunda en iyi yöntem, her hizmeti ayrı bir kapsayıcı uygulaması olarak dağıtmaktır.
Aynı kapsayıcı uygulamasındaki birden çok kapsayıcı sabit disk ve ağ kaynaklarını paylaşır ve aynı uygulama yaşam döngüsünü yaşar.
Kapsayıcı uygulamasında ek kapsayıcıları çalıştırmanın iki yolu vardır: sepet kapsayıcıları ve başlatma kapsayıcıları.
Sepet desenini uygulamak için tek bir kapsayıcı uygulamasında birden çok kapsayıcı tanımlayabilirsiniz.
Sepet kapsayıcısı örnekleri şunlardır:
Paylaşılan bir birimde birincil uygulama kapsayıcısından günlükleri okuyan ve bunları bir günlük hizmetine ileten bir aracı.
Paylaşılan bir birimde birincil uygulama kapsayıcısı tarafından kullanılan bir önbelleği yenileyen bir arka plan işlemi.
Bu senaryolar örnektir ve sepet uygulayabileceğiniz tek yolları temsil etmemektedir.
Kapsayıcı uygulamasında birden çok kapsayıcı çalıştırmak için, kapsayıcı uygulaması şablonunun dizisine containers
birden fazla kapsayıcı ekleyin.
Kapsayıcı uygulamasında bir veya daha fazla init kapsayıcısı tanımlayabilirsiniz. Init kapsayıcıları birincil uygulama kapsayıcısı öncesinde çalışır ve verileri indirme veya ortamı hazırlama gibi başlatma görevlerini gerçekleştirmek için kullanılır.
Init kapsayıcıları, kapsayıcı uygulaması şablonunun dizisinde initContainers
tanımlanır. Kapsayıcılar dizide tanımlandığı sırayla çalışır ve birincil uygulama kapsayıcısı başlamadan önce başarıyla tamamlanması gerekir.
Not
Ayrılmış planı kullanan veya Yalnızca tüketim ortamında çalışan uygulamalarda init kapsayıcıları, çalışma zamanında yönetilen kimliğe erişemez.
Container Apps yapılandırmasında kimlik bilgileri sağlayarak özel kayıt defterlerinde barındırılan görüntüleri dağıtabilirsiniz.
Kapsayıcı kayıt defteri kullanmak için, kapsayıcı uygulaması kaynak şablonunun registries
bölümündeki dizide properties.configuration
kayıt defterini tanımlarsınız. alanı, passwordSecretRef
parolayı tanımladığınız dizi adında gizli secrets
dizinin adını tanımlar.
{
...
"registries": [{
"server": "docker.io",
"username": "my-registry-user-name",
"passwordSecretRef": "my-password-secret-name"
}]
}
Kayıtlı kimlik bilgileri, uygulamanız dağıtılırken özel kayıt defterinden bir kapsayıcı görüntüsü çekmek için kullanılır.
Aşağıdaki örnekte, bir kapsayıcı uygulamasında Azure Container Registry kimlik bilgilerinin nasıl yapılandırılır gösterilmektedir.
{
...
"configuration": {
"secrets": [
{
"name": "docker-hub-password",
"value": "my-docker-hub-password"
}
],
...
"registries": [
{
"server": "docker.io",
"username": "someuser",
"passwordSecretRef": "docker-hub-password"
}
]
}
}
Not
Docker Hub , Docker görüntüsü indirme sayısını sınırlar . Sınıra ulaşıldığında uygulamanızdaki kapsayıcılar başlatılamaz. Bu sorunu önlemek için Azure Container Registry gibi yeterli sınırlara sahip bir kayıt defteri kullanın.
Kullanıcı adı ve parola kullanmak yerine Azure Container Registry ile kimlik doğrulaması yapmak için Azure yönetilen kimliği kullanabilirsiniz. Daha fazla bilgi için bkz . Azure Container Apps'te yönetilen kimlikler.
Yönetilen kimliği bir kayıt defteriyle kullanmak için, kimliğin uygulamada etkinleştirilmesi ve kayıt defterinde rol atanması acrPull
gerekir. Kayıt defterini yapılandırmak için, kullanıcı tarafından atanan bir kimlik için yönetilen kimlik kaynak kimliğini veya system
kayıt defterinin özelliğindeki identity
sistem tarafından atanan kimliği kullanın. Yönetilen kimlik kullanırken kullanıcı adı ve parola yapılandırma.
{
"identity": {
"type": "SystemAssigned,UserAssigned",
"userAssignedIdentities": {
"<IDENTITY1_RESOURCE_ID>": {}
}
}
"properties": {
"configuration": {
"registries": [
{
"server": "myacr1.azurecr.io",
"identity": "<IDENTITY1_RESOURCE_ID>"
},
{
"server": "myacr2.azurecr.io",
"identity": "system"
}]
}
...
}
}
Kullanıcı tarafından atanan kimlikleri yapılandırma hakkında daha fazla bilgi için bkz . Kullanıcı tarafından atanan kimlik ekleme.
Azure Container Apps'te aşağıdaki sınırlamalar vardır:
Ayrıcalıklı kapsayıcılar: Azure Container Apps, konak düzeyinde erişime sahip ayrıcalıklı kapsayıcılar moduna izin vermez.
İşletim sistemi: Linux tabanlı (linux/amd64
) kapsayıcı görüntüleri gereklidir.
En büyük görüntü boyutu:
Ekinlikler
17 Mar 21 - 21 Mar 10
Diğer geliştiriciler ve uzmanlarla gerçek dünyadaki kullanım örneklerini temel alan ölçeklenebilir yapay zeka çözümleri oluşturmak için toplantı serisine katılın.
Hemen kaydolunEğitim
Modül
Azure Container Apps'te kapsayıcı uygulaması yapılandırma - Training
Bu modül, kullanıcılara Container Apps ve ortamlarını oluşturma, yapılandırma ve yönetme konusunda yol gösterir. Azure Container Apps'i yapılandırmaya yönelik en iyi yöntemlerle giriş seçeneklerini, ölçeklendirmeyi, örnek yönetimini ve güvenlikle ilgili dikkat edilmesi gerekenleri de inceler.