Öğretici: YAML dosyası kullanarak çok kapsayıcılı grup dağıtma
Azure Container Instances, bir kapsayıcı grubu kullanarak tek bir konakta birden çok kapsayıcının dağıtımını destekler. Kapsayıcı grubu, bir hizmetin ikinci bir ekli işleme ihtiyaç duyduğu günlüğe kaydetme, izleme veya başka bir yapılandırma için bir uygulama sepet oluştururken kullanışlıdır.
Bu öğreticide, Azure CLI kullanarak bir YAML dosyası dağıtarak basit bir iki kapsayıcılı sepet yapılandırmasını çalıştırma adımlarını izleyeceksiniz. YAML dosyası, örnek ayarlarını belirtmek için kısa bir biçim sağlar. Şunları yapmayı öğreneceksiniz:
- YAML dosyası yapılandırma
- Kapsayıcı grubunu dağıtma
- Kapsayıcıların günlüklerini görüntüleme
Dekont
Çok kapsayıcılı gruplar şu anda Linux kapsayıcıları ile sınırlıdır.
Azure aboneliğiniz yoksa başlamadan önce birücretsiz Azure hesabı oluşturun.
Ön koşullar
Azure Cloud Shell'de Bash ortamını kullanın. Daha fazla bilgi için bkz . Azure Cloud Shell'de Bash için hızlı başlangıç.
CLI başvuru komutlarını yerel olarak çalıştırmayı tercih ediyorsanız Azure CLI'yı yükleyin . Windows veya macOS üzerinde çalışıyorsanız Azure CLI’yi bir Docker kapsayıcısında çalıştırmayı değerlendirin. Daha fazla bilgi için bkz . Docker kapsayıcısında Azure CLI'yi çalıştırma.
Yerel yükleme kullanıyorsanız az login komutunu kullanarak Azure CLI ile oturum açın. Kimlik doğrulama işlemini tamamlamak için terminalinizde görüntülenen adımları izleyin. Diğer oturum açma seçenekleri için bkz . Azure CLI ile oturum açma.
İstendiğinde, ilk kullanımda Azure CLI uzantısını yükleyin. Uzantılar hakkında daha fazla bilgi için bkz. Azure CLI ile uzantıları kullanma.
Yüklü sürümü ve bağımlı kitaplıkları bulmak için az version komutunu çalıştırın. En son sürüme yükseltmek için az upgrade komutunu çalıştırın.
YAML dosyası yapılandırma
Azure CLI'da az container create komutuyla çok kapsayıcılı bir grup dağıtmak için kapsayıcı grubu yapılandırmasını bir YAML dosyasında belirtmeniz gerekir. Ardından YAML dosyasını komutuna parametre olarak geçirin.
Aşağıdaki YAML'yi deploy-aci.yaml adlı yeni bir dosyaya kopyalayarak başlayın. Azure Cloud Shell'de Visual Studio Code'u kullanarak dosyayı çalışma dizininizde oluşturabilirsiniz:
code deploy-aci.yaml
Bu YAML dosyası, iki kapsayıcı, bir genel IP adresi ve kullanıma sunulan iki bağlantı noktası içeren "myContainerGroup" adlı bir kapsayıcı grubu tanımlar. Kapsayıcılar genel Microsoft görüntülerinden dağıtılır. Gruptaki ilk kapsayıcı İnternet'e yönelik bir web uygulaması çalıştırır. İkinci kapsayıcı olan sepet, kapsayıcı grubunun yerel ağı aracılığıyla ilk kapsayıcıda çalışan web uygulamasına düzenli aralıklarla HTTP isteklerinde bulunur.
apiVersion: 2019-12-01
location: eastus
name: myContainerGroup
properties:
containers:
- name: aci-tutorial-app
properties:
image: mcr.microsoft.com/azuredocs/aci-helloworld:latest
resources:
requests:
cpu: 1
memoryInGb: 1.5
ports:
- port: 80
- port: 8080
- name: aci-tutorial-sidecar
properties:
image: mcr.microsoft.com/azuredocs/aci-tutorial-sidecar
resources:
requests:
cpu: 1
memoryInGb: 1.5
osType: Linux
ipAddress:
type: Public
ports:
- protocol: tcp
port: 80
- protocol: tcp
port: 8080
tags: {exampleTag: tutorial}
type: Microsoft.ContainerInstance/containerGroups
Özel kapsayıcı görüntüsü kayıt defteri kullanmak için kapsayıcı grubuna özelliğini ekleyin imageRegistryCredentials
ve ortamınız için değerlerin değiştirilmesini sağlayın:
imageRegistryCredentials:
- server: imageRegistryLoginServer
username: imageRegistryUsername
password: imageRegistryPassword
Kapsayıcı grubunu dağıtma
az group create komutuyla bir kaynak grubu oluşturun :
az group create --name myResourceGroup --location eastus
Kapsayıcı grubunu az container create komutuyla dağıtın ve YAML dosyasını bağımsız değişken olarak geçirin:
az container create --resource-group myResourceGroup --file deploy-aci.yaml
Birkaç saniye içinde Azure’dan bir ilk yanıt almanız gerekir.
Dağıtım durumunu görüntüleme
Dağıtımın durumunu görüntülemek için aşağıdaki az container show komutunu kullanın:
az container show --resource-group myResourceGroup --name myContainerGroup --output table
Çalışan uygulamayı görüntülemek isterseniz tarayıcınızda uygulamanın IP adresine gidin. Örneğin, IP şu örnek çıktıdadır 52.168.26.124
:
Name ResourceGroup Status Image IP:ports Network CPU/Memory OsType Location
---------------- --------------- -------- -------------------------------------------------------------------------------------------------- -------------------- --------- --------------- -------- ----------
myContainerGroup danlep0318r Running mcr.microsoft.com/azuredocs/aci-tutorial-sidecar,mcr.microsoft.com/azuredocs/aci-helloworld:latest 20.42.26.114:80,8080 Public 1.0 core/1.5 gb Linux eastus
Kapsayıcı günlüklerini görüntüleme
az container logs komutunu kullanarak kapsayıcının günlük çıkışını görüntüleyin. --container-name
bağımsız değişkeni, günlüklerin çekildiği kapsayıcıyı belirtir. Bu örnekte kapsayıcı aci-tutorial-app
belirtilir.
az container logs --resource-group myResourceGroup --name myContainerGroup --container-name aci-tutorial-app
Çıkış:
listening on port 80
::1 - - [02/Jul/2020:23:17:48 +0000] "HEAD / HTTP/1.1" 200 1663 "-" "curl/7.54.0"
::1 - - [02/Jul/2020:23:17:51 +0000] "HEAD / HTTP/1.1" 200 1663 "-" "curl/7.54.0"
::1 - - [02/Jul/2020:23:17:54 +0000] "HEAD / HTTP/1.1" 200 1663 "-" "curl/7.54.0"
Sepet kapsayıcısının günlüklerini görmek için kapsayıcıyı belirten aci-tutorial-sidecar
benzer bir komut çalıştırın.
az container logs --resource-group myResourceGroup --name myContainerGroup --container-name aci-tutorial-sidecar
Çıkış:
Every 3s: curl -I http://localhost 2020-07-02 20:36:41
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
0 1663 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0
HTTP/1.1 200 OK
X-Powered-By: Express
Accept-Ranges: bytes
Cache-Control: public, max-age=0
Last-Modified: Wed, 29 Nov 2017 06:40:40 GMT
ETag: W/"67f-16006818640"
Content-Type: text/html; charset=UTF-8
Content-Length: 1663
Date: Thu, 02 Jul 2020 20:36:41 GMT
Connection: keep-alive
Gördüğünüz gibi sepet, çalıştığından emin olmak için grubun yerel ağı üzerinden ana web uygulamasına düzenli aralıklarla bir HTTP isteğinde bulunuyor. Bu sepet örneği, dışında 200 OK
bir HTTP yanıt kodu aldıysa uyarı tetiklenecek şekilde genişletilebilir.
Sonraki adımlar
Bu öğreticide, Azure Container Instances'da çok kapsayıcılı bir grup dağıtmak için bir YAML dosyası kullandınız. Şunları öğrendiniz:
- Çok kapsayıcılı bir grup için YAML dosyası yapılandırma
- Kapsayıcı grubunu dağıtma
- Kapsayıcıların günlüklerini görüntüleme
Resource Manager şablonu kullanarak çok kapsayıcılı bir grup da belirtebilirsiniz. Bir Resource Manager şablonu, kapsayıcı grubuyla ek Azure hizmet kaynakları dağıtmanız gerektiğinde senaryolar için kolayca uyarlanabilir.