Azure Fundamentals · पाठ

Azure Container Instances

सर्वर प्रबंधित किए बिना ACI का उपयोग करके कुछ ही सेकंड में कंटेनरीकृत एप्लिकेशन शुरू करें, परिवेश चर और वॉल्यूम माउंट कॉन्फ़िगर करें तथा ACI बिलिंग समझें।

पाठ 2, कुल 4 में से13 चरण

Azure Container Instances, CoddyKit पर Azure Fundamentals का एक निःशुल्क पाठ है। यह 4 में से 2वाँ पाठ है। आप नीचे पूरा पाठ निःशुल्क पढ़ सकते हैं—फिर अंतर्निहित कोड संपादक और 24/7 एआई ट्यूटर के साथ ब्राउज़र में इसका व्यावहारिक अभ्यास कर सकते हैं। यह Azure Fundamentals सीखने के मार्ग का हिस्सा है और आपकी प्रगति वेब तथा CoddyKit ऐप पर सिंक होती रहती है। Azure Fundamentals पाठ्यक्रम में कुल 4 पाठ शामिल हैं।

Azure Container Instances क्या हैं?

Azure Container Instances (ACI) Azure में किसी भी server या orchestrator को manage किए बिना containerised workload चलाने का सबसे तेज़ तरीका है। आप एक container image प्रदान करते हैं और Azure उसे shared, multi-tenant infrastructure पर कुछ ही seconds में चलाता है। ACI short-lived tasks, batch jobs, build agents और event-driven workloads के लिए आदर्श है, जहाँ पूरा Kubernetes cluster शुरू करना अनावश्यक अतिरिक्त overhead होगा।

Container Instance बनाना

एक single az container create command से ACI container launch कीजिए। image, resource group, CPU और memory निर्दिष्ट कीजिए। ACI image को pull करता है, resources allocate करता है और container शुरू करता है — सामान्यतः 5-10 seconds के भीतर। यदि आप DNS name label assign करते हैं, तो प्रत्येक container instance को एक unique fully qualified domain name (FQDN) मिलता है, जिससे वह internet से तुरंत accessible हो जाता है।

# Run an Nginx container accessible from the internet
az container create \
  --name my-nginx \
  --resource-group MyRG \
  --image nginx:latest \
  --cpu 1 \
  --memory 1 \
  --dns-name-label my-nginx-demo \
  --ports 80

# Access at: http://my-nginx-demo.<region>.azurecontainer.io

Environment Variables और Secure Values

Creation time पर निर्दिष्ट environment variables का उपयोग करके ACI containers को configuration पास कीजिए। API keys या passwords जैसे sensitive values के लिए secure environment variables का उपयोग कीजिए — deployment के बाद ये Azure portal या CLI output में दिखाई नहीं देते, जिससे logs या audit trails में accidental exposure रुकता है। Runtime पर secure values container के भीतर सामान्य environment variables के रूप में accessible रहती हैं।

# Pass regular and secure environment variables
az container create \
  --name my-app \
  --resource-group MyRG \
  --image mycontainerregistry.azurecr.io/myapp:v1.0 \
  --environment-variables APP_ENV=production \
  --secure-environment-variables \
    DATABASE_PASSWORD='super-secret-password' \
    API_KEY='my-api-key'

# View logs from the running container
az container logs --name my-app --resource-group MyRG

ACI Billing और Resource Allocation

ACI आपके द्वारा allocate किए गए CPU cores और memory GB के आधार पर second के हिसाब से billing करता है और इसमें कोई minimum billing period नहीं होता। आप केवल container के running रहने तक भुगतान करते हैं — उसके रुकते ही billing भी रुक जाती है। इससे short-lived workloads के लिए ACI अत्यंत cost-effective बनता है। आप supported combinations में प्रत्येक container group के लिए 0.1 से 4 CPU cores और 0.1 से 16 GB memory allocate कर सकते हैं।

# Small: 0.5 CPU, 0.5 GB memory
az container create --name small-task --resource-group MyRG \
  --image my-batch-image:latest --cpu 0.5 --memory 0.5 \
  --restart-policy Never  # Don't restart after completion

# Large: 4 CPU, 16 GB memory for intensive tasks
az container create --name ml-inference --resource-group MyRG \
  --image ml-model:latest --cpu 4 --memory 16

Restart Policies

ACI तीन restart policies का समर्थन करता है, जो container के exit होने के बाद उसके व्यवहार को नियंत्रित करती हैं। Always (default) container के exit होने पर उसे हर बार restart करता है — यह long-running services के लिए उपयुक्त है। Never container को एक बार चलाता है और उसे terminated state में छोड़ देता है — यह batch jobs के लिए आदर्श है। OnFailure केवल तब restart करता है, जब container non-zero exit code के साथ exit हो — यह retry-on-error patterns के लिए उपयोगी है।

# Batch job: run once, never restart
az container create \
  --name data-processor \
  --resource-group MyRG \
  --image my-batch-image:latest \
  --restart-policy Never \
  --environment-variables BATCH_DATE=2025-01-01

# Check the container's final state
az container show \
  --name data-processor \
  --resource-group MyRG \
  --query '{state:instanceView.state, exitCode:instanceView.currentState.exitCode}'

Container Groups: Multi-Container Deployments

एक container group ऐसे containers का संग्रह है, जो एक ही lifetime, network और storage साझा करते हैं — यह Kubernetes pod के समान है। एक ही group के containers local IP address और port namespace साझा करते हैं, जिससे वे localhost के माध्यम से communicate कर सकते हैं। एक सामान्य pattern में उसी group में एक main application container और एक sidecar container (जैसे, logging agent या proxy) होते हैं, जिन्हें YAML या ARM template में define किया जाता है।

# multi-container.yaml
apiVersion: '2021-09-01'
location: eastus
name: my-container-group
properties:
  containers:
  - name: app
    properties:
      image: myapp:v1.0
      ports: [{port: 80}]
      resources: {requests: {cpu: 1, memoryInGb: 1}}
  - name: log-forwarder
    properties:
      image: fluent-bit:latest
      resources: {requests: {cpu: 0.5, memoryInGb: 0.5}}
  osType: Linux
  restartPolicy: Always
type: Microsoft.ContainerInstance/containerGroups

# Deploy from YAML
# az container create --resource-group MyRG --file multi-container.yaml

Volume Mounts: Azure Files Integration

ACI containers default रूप से stateless होते हैं — container के filesystem में लिखा गया data container restart होने पर खो जाता है। Data को container restarts के बीच बनाए रखने या एक ही group के containers के बीच share करने के लिए किसी Azure Files share को volume के रूप में mount कीजिए। Container instance बनाते समय storage account name, key और file share name निर्दिष्ट कीजिए।

# Mount an Azure Files share for persistent storage
az container create \
  --name stateful-app \
  --resource-group MyRG \
  --image myapp:v1.0 \
  --azure-file-volume-account-name mystorageaccount \
  --azure-file-volume-account-key '<storage-account-key>' \
  --azure-file-volume-share-name myfileshare \
  --azure-file-volume-mount-path /data

# Data written to /data persists in the Azure Files share

GPU Container Instances

ACI ML inference, video processing और scientific computation workloads के लिए GPU container instances (K80, V100) का समर्थन करता है। GPU instances चुनिंदा regions में उपलब्ध हैं और इनके लिए Linux containers आवश्यक हैं। इनकी billing प्रति GPU/second होती है, इसलिए burst inference scenarios के लिए ये किफायती हैं, जहाँ आप GPU container शुरू करते हैं, model चलाते हैं और तुरंत उसे बंद कर देते हैं — 24/7 चलने वाले dedicated GPU VM की तुलना में बहुत सस्ता।

# Create a GPU-enabled container instance
az container create \
  --name gpu-inference \
  --resource-group MyRG \
  --image my-ml-model:latest \
  --gpu-count 1 \
  --gpu-sku V100 \
  --cpu 4 \
  --memory 16 \
  --os-type Linux

Virtual Network के साथ ACI

ACI container groups को VNet के भीतर dedicated subnet में deploy कीजिए, ताकि उन्हें private IP addresses मिलें और वे internet पर expose किए बिना अन्य VNet-connected resources (databases, VMs) तक पहुँच सकें। VNet-integrated ACI के लिए एक dedicated, delegated subnet आवश्यक है (जिसे Microsoft.ContainerInstance/containerGroups को delegate किया गया हो) और इसमें public IP assignment का support नहीं है।

# Create an ACI container in a VNet
az container create \
  --name private-task \
  --resource-group MyRG \
  --image myapp:v1.0 \
  --vnet MyVNet \
  --subnet ContainerSubnet \
  --restart-policy Never

# The container gets a private IP from the subnet CIDR
# It can reach VNet resources (SQL, Redis, VMs) on private IPs

Virtual Kubelet Node के रूप में ACI

ACI, Virtual Kubelet open-source project के माध्यम से virtual node के रूप में AKS के साथ integrate होता है। जब किसी AKS cluster में burst demand उसकी VM node capacity से अधिक हो जाती है, तो Kubernetes pods को virtual ACI node पर schedule कर सकता है — जिससे वास्तविक ACI container instances शुरू होते हैं। इससे अतिरिक्त VM nodes को पहले से provision किए बिना infinite burst scaling मिलती है, और आप केवल burst period के दौरान ACI compute के लिए भुगतान करते हैं।

# Enable virtual nodes on an AKS cluster
az aks enable-addons \
  --name myAKSCluster \
  --resource-group MyRG \
  --addons virtual-node \
  --subnet-name VirtualNodeSubnet

# Schedule a burst pod on ACI via node selector
# spec:
#   nodeSelector:
#     kubernetes.io/role: agent
#     beta.kubernetes.io/os: linux
#     type: virtual-kubelet
#   tolerations:
#   - key: virtual-kubelet.io/provider
#     operator: Exists

ACI बनाम AKS बनाम App Service का उपयोग कब करें

Short-lived tasks, batch jobs, CI build agents और ऐसे one-off containers के लिए ACI चुनिए, जिनमें Kubernetes overhead आवश्यक नहीं है। Long-running, multi-container microservices के लिए AKS चुनिए, जिन्हें service discovery, health checks, rolling updates और cluster networking की आवश्यकता होती है। जब आप container networking को स्वयं manage किए बिना PaaS सुविधाएँ (deployment slots, managed certs, built-in auth) चाहते हों, तब App Service चुनिए।

त्वरित जाँच

इस lesson में दिए गए Microsoft Azure Fundamentals (AZ-900) concepts की अपनी समझ जाँचिए।

Lesson का पुनरावलोकन

इस lesson में आपने सीखा: Azure Container Instances server management के बिना कुछ ही seconds में containers चलाते हैं और CPU तथा memory के प्रति second billing करते हैं; container groups कई containers को Kubernetes pod की तरह network और storage share करने देते हैं; और restart policies (Always, Never, OnFailure) exit के बाद container lifetime को नियंत्रित करती हैं। अब हम Azure के लिए Kubernetes concepts का अध्ययन करेंगे।

शुरुआत निःशुल्क

एआई शिक्षक के साथ Azure Fundamentals सीखें — निःशुल्क

अपने ब्राउज़र में वास्तविक कोड लिखें और चलाएँ, चौबीसों घंटे एआई शिक्षक से तुरंत सहायता पाएँ, और वेब या ऐप पर वहीं से शुरू करें जहाँ आपने छोड़ा था।

पाठ्यक्रम
30
पाठ
120

अक्सर पूछे जाने वाले प्रश्न

क्या “Azure Container Instances” पाठ निःशुल्क है?

हाँ—“Azure Container Instances” का पूरा पाठ यहाँ वेब पर निःशुल्क पढ़ा जा सकता है। इंटरैक्टिव अभ्यास (अंतर्निहित कोड संपादक और 24/7 एआई ट्यूटर) करने और Azure Fundamentals पाठ्यक्रम का बाकी हिस्सा अनलॉक करने के लिए CoddyKit PRO लें। Azure Fundamentals पाठ्यक्रम में कुल 4 पाठ शामिल हैं।

“Azure Container Instances” में मैं क्या सीखूँगा?

सर्वर प्रबंधित किए बिना ACI का उपयोग करके कुछ ही सेकंड में कंटेनरीकृत एप्लिकेशन शुरू करें, परिवेश चर और वॉल्यूम माउंट कॉन्फ़िगर करें तथा ACI बिलिंग समझें। आप ब्राउज़र में सीधे चलाए जाने वाले व्यावहारिक कोड के साथ Azure Fundamentals का अभ्यास करते हैं, और पाठ पूरा करते समय 24/7 एआई ट्यूटर आपके प्रश्नों के उत्तर देता है।

क्या Azure Fundamentals शुरू करने के लिए मुझे किसी अनुभव की आवश्यकता है?

पहले के अनुभव की आवश्यकता नहीं है। CoddyKit पर Azure Fundamentals शुरुआती से लेकर उन्नत शिक्षार्थियों तक सभी के लिए व्यवस्थित किया गया है, इसलिए आप यहीं से या शुरुआत से सीखना शुरू कर सकते हैं और अपनी गति से आगे बढ़ सकते हैं। यह 4 में से 2वाँ पाठ है।

“Azure Container Instances” पाठ पूरा करने में कितना समय लगता है?

CoddyKit का अधिकांश पाठ लगभग 5–10 मिनट में पूरा हो जाता है। हर पाठ छोटा और संवादात्मक है, इसलिए आप लगातार प्रगति करते हैं और वेब या ऐप पर वहीं से सीखना जारी रख सकते हैं जहाँ आपने छोड़ा था।

क्या मैं इस Azure Fundamentals पाठ में कोड लिख और चला सकता हूँ?

हाँ। हर Azure Fundamentals पाठ में एक अंतर्निर्मित कोड संपादक शामिल है, जिससे आप सीधे अपने ब्राउज़र में वास्तविक कोड लिख और चला सकते हैं और तुरंत एआई प्रतिक्रिया पा सकते हैं—स्थानीय सेटअप की आवश्यकता नहीं है।

इस पाठ्यक्रम के सभी पाठ

  1. Azure Container Registry
  2. Azure Container Instances
  3. Azure के लिए Kubernetes की अवधारणाएँ
  4. AKS पर कार्यभार तैनात करना
← Azure Fundamentals पर वापस जाएँ