Eventi
Creare app e agenti di intelligenza artificiale
17 mar, 21 - 21 mar, 10
Partecipa alla serie meetup per creare soluzioni di intelligenza artificiale scalabili basate su casi d'uso reali con altri sviluppatori ed esperti.
Iscriviti subitoQuesto browser non è più supportato.
Esegui l'aggiornamento a Microsoft Edge per sfruttare i vantaggi di funzionalità più recenti, aggiornamenti della sicurezza e supporto tecnico.
Il servizio Azure Kubernetes è un servizio Kubernetes gestito che permette di distribuire e gestire rapidamente i cluster. Questa guida introduttiva spiega come:
Nota
Per iniziare ad effettuare un veloce provisioning di un cluster del servizio Azure Kubernetes, questo articolo include i passaggi per la distribuzione di un cluster con impostazioni predefinite a solo scopo di valutazione. Prima di distribuire un cluster pronto per la produzione, è consigliabile acquisire familiarità con l'architettura di riferimento di base per valutare il modo in cui è allineato ai requisiti aziendali.
Questa guida introduttiva presuppone una comprensione di base dei concetti relativi a Kubernetes. Per altre informazioni, vedere Concetti di base relativi a Kubernetes per il servizio Azure Kubernetes.
Nota
Il pool di nodi Linux di Azure è ora generalmente disponibile. Per informazioni sui vantaggi e sui passaggi di distribuzione, vedere Introduzione all'host contenitore Linux di Azure per il servizio Azure Kubernetes.
Accedere al portale di Azure.
Nella home page del portale di Azure selezionare Crea una risorsa.
Nella sezione Categorie selezionare Contenitori>servizio Azure Kubernetes.
Configurare i valori seguenti nella scheda Informazioni di base:
Configurazione del set di impostazioni del cluster: selezionare Sviluppo/Test. Per altre informazioni sulle configurazioni predefinite, vedere Set di impostazioni di configurazione del cluster nel portale di Azure.
Nome del cluster Kubernetes: immettere un nome del cluster, ad esempio myAKSCluster.
Area: selezionare un'area, ad esempio Stati Uniti orientali 2.
Zone di disponibilità: selezionare Nessuno.
Piano tariffario del servizio Azure Kubernetes: selezionare Gratuito.
Lasciare i valori predefiniti per le impostazioni rimanenti e selezionare Avanti.
Nella scheda Pool di nodi configurare le impostazioni seguenti:
Selezionare Aggiungi pool di nodi e immettere un nome del pool di nodi, ad esempio nplinux.
Modalità: selezionare Utente.
SKU del sistema operativo: selezionare Ubuntu Linux.
Zone di disponibilità: selezionare Nessuno.
Lasciare deselezionata la casella di controllo Abilita istanze spot di Azure.
Dimensioni nodo: selezionare Scegli una dimensione. Nella pagina Selezione dimensioni macchina virtuale selezionare D2s_v3 e quindi selezionare Seleziona.
Lasciare i valori predefiniti per le impostazioni rimanenti e selezionare Aggiungi.
Selezionare Rivedi e crea per eseguire la convalida nella configurazione del cluster. Al termine della convalida selezionare Crea.
Per creare il cluster del servizio Azure Kubernetes sono necessari alcuni minuti. Al termine della distribuzione, passare alla risorsa selezionando Vai alla risorsa oppure passando al gruppo di risorse del cluster del servizio Azure Kubernetes e selezionando la risorsa servizio Azure Kubernetes.
Usare il client da riga di comando kubernetes, kubectl, per gestire i cluster Kubernetes. kubectl
è già installato se si usa Azure Cloud Shell. Se non si ha familiarità con Cloud Shell, vedere Panoramica di Azure Cloud Shell.
Se si usa Cloud Shell, aprirlo con il pulsante >_
nella parte superiore del portale di Azure. Se si usa PowerShell in locale, connettersi ad Azure tramite il comando Connect-AzAccount
. Se si usa l'interfaccia della riga di comando di Azure in locale, connettersi ad Azure tramite il comando az login
.
Configurare kubectl
per connettersi al cluster Kubernetes usando il comando az aks get-credentials
. Questo comando scarica le credenziali e configura l'interfaccia della riga di comando di Kubernetes per usarli.
az aks get-credentials --resource-group myResourceGroup --name myAKSCluster
Verificare la connessione al cluster usando kubectl get
per restituire un elenco dei nodi del cluster.
kubectl get nodes
L'esempio di output seguente mostra il nodo singolo creato nei passaggi precedenti. Assicurarsi che lo stato del nodo sia Pronto.
NAME STATUS ROLES AGE VERSION
aks-nodepool1-31718369-0 Ready agent 6m44s v1.15.10
Si usa un file manifesto per creare tutti gli oggetti necessari per eseguire l'applicazione dello Store del servizio Azure Kubernetes. Un file manifesto Kubernetes definisce lo stato desiderato di un cluster, ad esempio le immagini del contenitore da eseguire. Il manifesto include le distribuzioni e i servizi Kubernetes seguenti:
Nota
Non è consigliabile eseguire contenitori con stato, ad esempio Rabbit MQ, senza l'archiviazione permanente per la produzione. Questi vengono usati qui per semplicità, ma è consigliabile usare servizi gestiti, ad esempio Azure CosmosDB o il bus di servizio di Azure.
In Cloud Shell aprire un editor e creare un file denominato aks-store-quickstart.yaml
.
Incollare il manifesto seguente nell'editor:
apiVersion: apps/v1
kind: Deployment
metadata:
name: rabbitmq
spec:
replicas: 1
selector:
matchLabels:
app: rabbitmq
template:
metadata:
labels:
app: rabbitmq
spec:
nodeSelector:
"kubernetes.io/os": linux
containers:
- name: rabbitmq
image: mcr.microsoft.com/mirror/docker/library/rabbitmq:3.10-management-alpine
ports:
- containerPort: 5672
name: rabbitmq-amqp
- containerPort: 15672
name: rabbitmq-http
env:
- name: RABBITMQ_DEFAULT_USER
value: "username"
- name: RABBITMQ_DEFAULT_PASS
value: "password"
resources:
requests:
cpu: 10m
memory: 128Mi
limits:
cpu: 250m
memory: 256Mi
volumeMounts:
- name: rabbitmq-enabled-plugins
mountPath: /etc/rabbitmq/enabled_plugins
subPath: enabled_plugins
volumes:
- name: rabbitmq-enabled-plugins
configMap:
name: rabbitmq-enabled-plugins
items:
- key: rabbitmq_enabled_plugins
path: enabled_plugins
---
apiVersion: v1
data:
rabbitmq_enabled_plugins: |
[rabbitmq_management,rabbitmq_prometheus,rabbitmq_amqp1_0].
kind: ConfigMap
metadata:
name: rabbitmq-enabled-plugins
---
apiVersion: v1
kind: Service
metadata:
name: rabbitmq
spec:
selector:
app: rabbitmq
ports:
- name: rabbitmq-amqp
port: 5672
targetPort: 5672
- name: rabbitmq-http
port: 15672
targetPort: 15672
type: ClusterIP
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: order-service
spec:
replicas: 1
selector:
matchLabels:
app: order-service
template:
metadata:
labels:
app: order-service
spec:
nodeSelector:
"kubernetes.io/os": linux
containers:
- name: order-service
image: ghcr.io/azure-samples/aks-store-demo/order-service:latest
ports:
- containerPort: 3000
env:
- name: ORDER_QUEUE_HOSTNAME
value: "rabbitmq"
- name: ORDER_QUEUE_PORT
value: "5672"
- name: ORDER_QUEUE_USERNAME
value: "username"
- name: ORDER_QUEUE_PASSWORD
value: "password"
- name: ORDER_QUEUE_NAME
value: "orders"
- name: FASTIFY_ADDRESS
value: "0.0.0.0"
resources:
requests:
cpu: 1m
memory: 50Mi
limits:
cpu: 75m
memory: 128Mi
initContainers:
- name: wait-for-rabbitmq
image: busybox
command: ['sh', '-c', 'until nc -zv rabbitmq 5672; do echo waiting for rabbitmq; sleep 2; done;']
resources:
requests:
cpu: 1m
memory: 50Mi
limits:
cpu: 75m
memory: 128Mi
---
apiVersion: v1
kind: Service
metadata:
name: order-service
spec:
type: ClusterIP
ports:
- name: http
port: 3000
targetPort: 3000
selector:
app: order-service
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: product-service
spec:
replicas: 1
selector:
matchLabels:
app: product-service
template:
metadata:
labels:
app: product-service
spec:
nodeSelector:
"kubernetes.io/os": linux
containers:
- name: product-service
image: ghcr.io/azure-samples/aks-store-demo/product-service:latest
ports:
- containerPort: 3002
resources:
requests:
cpu: 1m
memory: 1Mi
limits:
cpu: 1m
memory: 7Mi
---
apiVersion: v1
kind: Service
metadata:
name: product-service
spec:
type: ClusterIP
ports:
- name: http
port: 3002
targetPort: 3002
selector:
app: product-service
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: store-front
spec:
replicas: 1
selector:
matchLabels:
app: store-front
template:
metadata:
labels:
app: store-front
spec:
nodeSelector:
"kubernetes.io/os": linux
containers:
- name: store-front
image: ghcr.io/azure-samples/aks-store-demo/store-front:latest
ports:
- containerPort: 8080
name: store-front
env:
- name: VUE_APP_ORDER_SERVICE_URL
value: "http://order-service:3000/"
- name: VUE_APP_PRODUCT_SERVICE_URL
value: "http://product-service:3002/"
resources:
requests:
cpu: 1m
memory: 200Mi
limits:
cpu: 1000m
memory: 512Mi
---
apiVersion: v1
kind: Service
metadata:
name: store-front
spec:
ports:
- port: 80
targetPort: 8080
selector:
app: store-front
type: LoadBalancer
Per una suddivisione dei file manifesto YAML, vedere Distribuzioni e manifesti YAML.
Se si crea e si salva il file YAML in locale, è possibile caricare il file manifesto nella directory predefinita in CloudShell selezionando il pulsante Carica/Scarica file e selezionando il file dal file system locale.
Distribuire l'applicazione usando il comando kubectl apply
e specificare il nome del manifesto YAML:
kubectl apply -f aks-store-quickstart.yaml
L'output di esempio seguente mostra le distribuzioni e i servizi:
deployment.apps/rabbitmq created
service/rabbitmq created
deployment.apps/order-service created
service/order-service created
deployment.apps/product-service created
service/product-service created
deployment.apps/store-front created
service/store-front created
Quando l'applicazione viene eseguita, un servizio Kubernetes espone il front-end dell'applicazione a Internet. Questo processo può richiedere alcuni minuti.
Controllare lo stato dei pod distribuiti usando il comando kubectl get pods
. Fare in modo che tutti i pod siano Running
prima di procedere.
kubectl get pods
Verificare la presenza di un indirizzo IP pubblico per l'applicazione store-front
. Monitorare lo stato di avanzamento usando il comando kubectl get service
con l'argomento --watch
.
kubectl get service store-front --watch
L'output EXTERNAL-IP per il servizio store-front
inizialmente viene visualizzato come in sospeso:
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
store-front LoadBalancer 10.0.100.10 <pending> 80:30025/TCP 4h4m
Quando l'indirizzo EXTERNAL-IP passa da in sospeso a un effettivo indirizzo IP pubblico, usare CTRL-C
per arrestare il processo di controllo kubectl
.
L'output di esempio seguente mostra un indirizzo IP pubblico valido assegnato al servizio:
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
store-front LoadBalancer 10.0.100.10 20.62.159.19 80:30025/TCP 4h5m
Aprire un Web browser all'indirizzo IP esterno del servizio per visualizzare l'app di Azure Store in azione.
Se non si prevede di eseguire la serie di esercitazioni del servizio Azure Kubernetes, pulire le risorse non necessarie per evitare addebiti di Azure.
Nel portale di Azure passare al gruppo di risorse del cluster del servizio Azure Kubernetes.
Selezionare Elimina gruppo di risorse.
Immettere il nome del gruppo di risorse da eliminare e quindi selezionare Elimina>Elimina.
Nota
Il cluster del servizio Azure Kubernetes è stato creato con un'identità gestita assegnata dal sistema. Questa identità viene gestita dalla piattaforma e non richiede la rimozione.
In questa guida introduttiva è stato distribuito un cluster Kubernetes e quindi è stata distribuita una semplice applicazione multi-contenitore. Questa applicazione di esempio è solo a scopo dimostrativo e non rappresenta tutte le procedure consigliate per le applicazioni Kubernetes. Per indicazioni sulla creazione di soluzioni complete con il servizio Azure Kubernetes per la produzione, vedere Linee guida per le soluzioni del servizio Azure Kubernetes.
Per altre informazioni sul servizio Azure Kubernetes e per un esempio completo di code-to-deployment, continuare con la serie di esercitazioni sul cluster Kubernetes.
Feedback su Azure Kubernetes Service
Azure Kubernetes Service è un progetto di open source. Selezionare un collegamento per fornire feedback:
Eventi
Creare app e agenti di intelligenza artificiale
17 mar, 21 - 21 mar, 10
Partecipa alla serie meetup per creare soluzioni di intelligenza artificiale scalabili basate su casi d'uso reali con altri sviluppatori ed esperti.
Iscriviti subitoFormazione
Modulo
Guided Project - Deploy applications to Azure Kubernetes Service - Training
Welcome to this interactive skills validation experience. Completing this module helps prepare you for the Deploy and manage containers with Azure Kubernetes Service assessment.
Certificazione
Microsoft Certified: Azure Administrator Associate - Certifications
Demonstrate key skills to configure, manage, secure, and administer key professional functions in Microsoft Azure.
Documentazione
Learn how to quickly deploy a Kubernetes cluster and deploy an application in Azure Kubernetes Service (AKS) using Azure CLI.
Develop on Azure Kubernetes Service (AKS) with Helm - Azure Kubernetes Service
Use Helm with AKS and Azure Container Registry to package and run application containers in a cluster.
Learn how to quickly deploy a Kubernetes cluster and deploy an application in Azure Kubernetes Service (AKS) Automatic (preview).