Condividi tramite


Distribuire un contenitore Windows Server in un cluster del servizio Azure Kubernetes usando il portale di Azure

Il servizio Azure Kubernetes è un servizio Kubernetes gestito che permette di distribuire e gestire rapidamente i cluster. In questo articolo si distribuisce un cluster del servizio Azure Kubernetes che esegue contenitori di Windows Server usando il portale di Azure. Si distribuisce anche un'applicazione di esempio ASP.NET in un contenitore di Windows Server nel cluster.

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.

Operazioni preliminari

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.

Creare un cluster del servizio Azure Kubernetes

  1. Accedere al portale di Azure.

  2. Nella home page del portale di Azure selezionare Crea una risorsa.

  3. Nella sezione Categorie selezionare Contenitori>servizio Azure Kubernetes.

  4. Configurare i valori seguenti nella scheda Informazioni di base:

    • In Dettagli progetto:
      • Sottoscrizione: selezionare la sottoscrizione di Azure da usare per questo cluster del servizio Azure Kubernetes.
      • Gruppo di risorse: selezionare Crea nuovo, immettere un nome di gruppo di risorse, ad esempio myResourceGroup, quindi selezionare OK. Sebbene sia possibile selezionare un gruppo di risorse esistente, a scopo di test o valutazione, è consigliabile creare un gruppo di risorse per ospitare temporaneamente queste risorse ed evitare di influire sui carichi di lavoro di produzione o sviluppo.
    • In dettagli cluster:
      • 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.

        Nota

        È possibile modificare la configurazione predefinita durante la creazione del cluster selezionando Confronta set di impostazioni e scegliendo un'opzione diversa. Screenshot di Creare un cluster del Servizio Azure Kubernetes: opzioni delle impostazioni predefinite del portale.

      • 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.

        Screenshot che mostra come configurare un cluster del servizio Azure Kubernetes nel portale di Azure.

  5. Nella scheda Pool di nodi configurare le impostazioni seguenti:

    • Selezionare Aggiungi pool di nodi e immettere un nome del pool di nodi, ad esempio npwin. Per un pool di nodi di Windows, il nome deve essere composto da sei caratteri o meno.

    • Modalità: selezionare Utente.

    • SKU del sistema operativo: selezionare Windows 2022.

    • 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.

      Screenshot che mostra come creare un pool di nodi che esegue Windows Server 2022.

  6. 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.

Stabilire la connessione al cluster

Si usa kubectl, il client della riga di comando Kubernetes 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.

  1. Aprire Cloud Shell selezionando il pulsante >_ nella parte superiore della pagina del portale di Azure.

  2. Configurare kubectl per connettersi al cluster Kubernetes usando il comando az aks get-credentials. Il comando seguente scarica le credenziali e configura l'interfaccia della riga di comando di Kubernetes per usarle.

    az aks get-credentials --resource-group myResourceGroup --name myAKSCluster
    
  3. Verificare la connessione al cluster usando il comando kubectl get nodes, che restituisce un elenco dei nodi del cluster.

    kubectl get nodes
    

    L'output di esempio seguente mostra tutti i nodi del cluster. Assicurarsi che lo stato di tutti i nodi sia Pronto:

    NAME                                STATUS   ROLES   AGE     VERSION
    aks-agentpool-11741175-vmss000000   Ready    agent   8m17s   v1.29.9
    aks-agentpool-11741175-vmss000001   Ready    agent   8m17s   v1.29.9
    aksnpwin000000                      Ready    agent   8m17s   v1.29.9
    aks-userpool-11741175-vmss000000    Ready    agent   8m17s   v1.29.9
    aks-userpool-11741175-vmss000001    Ready    agent   8m17s   v1.29.9
    

Distribuire l'applicazione

Un file manifesto Kubernetes definisce uno stato desiderato per il cluster, ad esempio le immagini del contenitore da eseguire. In questo argomento di avvio rapido si usa un file manifesto per creare tutti gli oggetti necessari per eseguire l'applicazione di esempio ASP.NET in un contenitore di Windows Server. Questo file manifesto include una distribuzione Kubernetes per l'applicazione di esempio ASP.NET e un servizio Kubernetes esterno per accedere all'applicazione da Internet.

L'applicazione di esempio ASP.NET viene fornita nel quadro degli esempi di .NET Framework ed eseguita in un contenitore di Windows Server. Il file manifesto kubernetes deve definire un selettore di nodo per indicare al cluster del servizio Azure Kubernetes di eseguire il pod dell'applicazione ASP.NET di esempio in un nodo in grado di eseguire contenitori di Windows Server.

  1. Creare un file denominato sample.yaml e incollarlo nella definizione YAML seguente.

    apiVersion: apps/v1
    kind: Deployment
    metadata:
      name: sample
      labels:
        app: sample
    spec:
      replicas: 1
      template:
        metadata:
          name: sample
          labels:
            app: sample
        spec:
          nodeSelector:
            "kubernetes.io/os": windows
          containers:
          - name: sample
            image: mcr.microsoft.com/dotnet/framework/samples:aspnetapp
            resources:
              limits:
                cpu: 1
                memory: 800M
            ports:
              - containerPort: 80
      selector:
        matchLabels:
          app: sample
    ---
    apiVersion: v1
    kind: Service
    metadata:
      name: sample
    spec:
      type: LoadBalancer
      ports:
      - protocol: TCP
        port: 80
      selector:
        app: sample
    

    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.

  2. Distribuire l'applicazione usando il comando kubectl apply e specificare il nome del manifesto YAML.

    kubectl apply -f sample.yaml
    

    L'output di esempio seguente mostra la distribuzione e il servizio creati correttamente:

    deployment.apps/sample created
    service/sample created
    

Testare l'applicazione

Quando l'applicazione viene eseguita, un servizio Kubernetes espone il front-end dell'applicazione a Internet. Questo processo può richiedere alcuni minuti. Occasionalmente, il provisioning del servizio può richiedere più tempo. Attendere fino a 10 minuti per il provisioning.

  1. 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
    
  2. Monitorare lo stato di avanzamento usando il comando kubectl get service con l'argomento --watch.

    kubectl get service sample --watch
    

    Inizialmente, l'output mostra l’EXTERNAL-IP per il servizio di esempio come in sospeso:

    NAME               TYPE           CLUSTER-IP   EXTERNAL-IP   PORT(S)        AGE
    sample             LoadBalancer   10.0.37.27   <pending>     80:30572/TCP   6s
    
  3. Quando EXTERNAL-IP passa da pending a un effettivo indirizzo IP pubblico, usare CTRL-C per arrestare il processo di controllo kubectl.

  4. Vedere l'app di esempio in azione aprendo un Web browser all'indirizzo IP esterno del servizio.

    Screenshot del passaggio all'applicazione di esempio ASP.NET.

Eliminare risorse

Se non si prevede di eseguire l'esercitazione servizio Azure Kubernetes, è consigliabile eliminare il cluster per evitare di incorrere in addebiti per Azure.

  1. Nel portale di Azure passare al gruppo di risorse.

  2. Selezionare Elimina gruppo di risorse.

  3. Immettere il nome del gruppo di risorse per confermare l'eliminazione e selezionare Elimina.

  4. Nella finestra di dialogo conferma eliminazione selezionare Elimina.

    Nota

    Il cluster del servizio Azure Kubernetes è stato creato con l'identità gestita assegnata dal sistema (opzione di identità predefinita usata in questa guida introduttiva), l'identità viene gestita dalla piattaforma e non richiede la rimozione.

Passaggi successivi

In questa guida introduttiva è stato distribuito un cluster Kubernetes e quindi è stata distribuita un'applicazione di esempio ASP.NET in un contenitore di Windows Server. 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 la soluzione del servizio Azure Kubernetes.

Per altre informazioni sul servizio Azure Kubernetes e per un esempio completo di distribuzione del codice, passare all'esercitazione sul cluster Kubernetes.