Condividi tramite


Distribuire la rete dei contenitori per un host Docker di Windows autonomo

Il plug-in Azure CNI consente la rete per contenitore/pod per host Docker autonomi e cluster Kubernetes. In questo articolo viene illustrato come installare e configurare il plugin CNI per un host Docker di Windows autonomo.

Prerequisiti

Creare una rete virtuale e un host Azure Bastion

La procedura seguente consente di creare una rete virtuale con una subnet di risorse, una subnet di Azure Bastion e un host Bastion:

  1. Nel portale cercare e selezionare Reti virtuali.

  2. Nella pagina Reti virtuali selezionare + Crea.

  3. Nella scheda Informazioni di base di Crea rete virtuale immettere o selezionare le informazioni seguenti:

    Impostazione Valore
    Dettagli di progetto
    Subscription Selezionare la propria sottoscrizione.
    Gruppo di risorse Selezionare Crea nuovo.
    Immettere test-rg per il nome.
    Selezionare OK.
    Dettagli istanza
    Nome Immettere vnet-1.
    Paese Selezionare Stati Uniti orientali 2.

    Screenshot della scheda Informazioni di base per la creazione di una rete virtuale nel portale di Azure.

  4. Selezionare Avanti per passare alla scheda Sicurezza.

  5. Nella sezione Azure Bastion, selezionare Abilita Azure Bastion.

    Bastion usa il browser per connettersi alle macchine virtuali nella rete virtuale tramite SSH (Secure Shell) o RDP (Remote Desktop Protocol) usando i relativi indirizzi IP privati. Le macchine virtuali non necessitano di indirizzi IP pubblici, software client o configurazioni speciali. Per altre informazioni, vedere Informazioni su Azure Bastion.

    Nota

    La tariffa oraria inizia dal momento in cui viene distribuito Bastion, a prescindere dall'utilizzo dei dati in uscita. Per altre informazioni, vedere Prezzi e SKU. Se si distribuisce Bastion nel corso di un'esercitazione o di un test, è consigliabile eliminare questa risorsa dopo averla usata.

  6. In Azure Bastion immettere o selezionare le informazioni seguenti:

    Impostazione Valore
    Nome host Azure Bastion Immettere bastion.
    Indirizzo IP pubblico di Azure Bastion Selezionare Crea un indirizzo IP pubblico.
    Immettere public-ip-bastion in Nome.
    Selezionare OK.

    Screenshot delle opzioni per abilitare un host Azure Bastion come parte della creazione di una rete virtuale nel portale di Azure.

  7. Selezionare Avanti per passare alla scheda Indirizzi IP.

  8. Nella casella spazio indirizzi in Subnetselezionare la subnet predefinita.

  9. In Modifica subnet immettere o selezionare le informazioni seguenti:

    Impostazione Valore
    Scopo della subnet Lasciare l'impostazione predefinita Predefinito.
    Nome Immettere subnet-1.
    IPv4
    Intervallo di indirizzi IPv4 Lasciare l'impostazione predefinita 10.0.0.0/16.
    Indirizzo iniziale Lasciare l'impostazione predefinita 10.0.0.0.
    Dimensione Lasciare l'impostazione predefinita /24 (256 indirizzi).

    Screenshot dei dettagli di configurazione per una subnet.

  10. Seleziona Salva.

  11. Selezionare Rivedi e crea nella parte inferiore della finestra. Al termine della convalida, selezionare Crea.

La distribuzione della rete e dell'host Bastion può richiedere qualche minuto. Continuare con i passaggi successivi al termine della distribuzione o al termine della creazione della rete virtuale.

Creare una macchina virtuale di test

La procedura seguente crea nella rete virtuale una macchina virtuale di test denominata vm-1.

  1. Nel portale, cercare e selezionare Macchine virtuali.

  2. In Macchine virtuali, selezionare + Crea, quindi Macchina virtuale di Azure.

  3. Nella scheda Informazioni di base di Crea una macchina virtuale, immettere o selezionare le informazioni seguenti:

    Impostazione Valore
    Dettagli di progetto
    Subscription Selezionare la propria sottoscrizione.
    Gruppo di risorse Selezionare test-rg.
    Dettagli istanza
    Virtual machine name Immettere vm-1.
    Paese Selezionare Stati Uniti orientali 2.
    Opzioni di disponibilità Selezionare La ridondanza dell'infrastruttura non è richiesta.
    Tipo di sicurezza Lasciare l'impostazione predefinita Standard.
    Immagine Selezionare Windows Server 2022 Datacenter - x64 Gen2.
    Architettura della macchina virtuale Lasciare il valore predefinito x64.
    Dimensione Selezionare una dimensione.
    Account amministratore
    Tipo di autenticazione selezionare Password.
    Username digitare azureuser.
    Password Immettere una password.
    Conferma password Immettere nuovamente la password.
    Regole porta in ingresso
    Porte in ingresso pubbliche Selezionare Nessuno.
  4. Selezionare la scheda Rete, nella parte superiore della pagina.

  5. Nella scheda Rete immettere o selezionare le informazioni seguenti:

    Impostazione Valore
    Interfaccia di rete
    Rete virtuale Selezionare vnet-1.
    Subnet Selezionare subnet-1 (10.0.0.0/24).
    IP pubblico Selezionare Nessuno.
    Gruppo di sicurezza di rete della scheda di interfaccia di rete Seleziona Avanzate.
    Configura gruppo di sicurezza di rete Selezionare Crea nuovo.
    Immettere nsg-1 per il nome.
    Lasciare invariate le impostazioni predefinite e selezionare OK.
  6. Lasciare invariate le impostazioni predefinite e selezionare Rivedi e crea.

  7. Rivedere le impostazioni e selezionare Crea.

Nota

Le macchine virtuali in una rete virtuale con un host Bastion non necessitano di indirizzi IP pubblici. Bastion fornisce l'indirizzo IP pubblico e le macchine virtuali usano indirizzi IP privati per comunicare all'interno della rete. È possibile rimuovere gli indirizzi IP pubblici da qualsiasi macchina virtuale in reti virtuali ospitate da Bastion. Per altre informazioni, vedere Annullare l'associazione di un indirizzo IP pubblico da una macchina virtuale di Azure.

Nota

Azure fornisce un IP di accesso in uscita predefinito per le macchine virtuali a cui non è stato assegnato un indirizzo IP pubblico o che si trovano nel pool back-end di un servizio del bilanciamento del carico di base di Azure. Il meccanismo dell'IP di accesso in uscita predefinito fornisce un IP in uscita non configurabile.

L'IP di accesso in uscita predefinito è disabilitato quando si verifica uno degli eventi seguenti:

  • Alla macchina virtuale viene assegnato un indirizzo IP pubblico.
  • La macchina virtuale è posizionata nel pool back-end di un servizio di bilanciamento del carico standard, con o senza regole in uscita.
  • Una risorsa del gateway NAT di Azure viene assegnata alla subnet della macchina virtuale.

Le macchine virtuali create usando set di scalabilità di macchine virtuali in modalità di orchestrazione flessibile non hanno l'accesso in uscita predefinito.

Per altre informazioni sulle connessioni in uscita in Azure, vedere Accesso in uscita predefinito in Azure e Uso di Source Network Address Translation (SNAT) per le connessioni in uscita.

Aggiungere la configurazione IP

Il plug-in Azure CNI alloca gli indirizzi IP ai contenitori in base a un pool di indirizzi IP creati nell'interfaccia di rete virtuale della macchina virtuale. Per ogni contenitore nell'host, è necessario che nell'interfaccia di rete virtuale esista una configurazione IP. Se il numero di contenitori nel server supera le configurazioni IP nell'interfaccia di rete virtuale, il contenitore viene avviato ma non ha un indirizzo IP.

In questa sezione viene aggiunta una configurazione IP all'interfaccia di rete virtuale della macchina virtuale creata in precedenza.

  1. Nella casella di ricerca, nella parte superiore del portale, immettere Macchina virtuale. Selezionare Macchine virtuali nei risultati della ricerca.

  2. Selezionare vm-1.

  3. In Impostazioni selezionare Rete.

  4. Selezionare il nome dell'interfaccia di rete accanto a Interfaccia di rete:. L'interfaccia di rete è denominata vm-1 con un numero casuale.

  5. In Impostazioni dell'interfaccia di rete selezionare Configurazioni IP.

  6. in Configurazioni IPselezionare ipconfig1 in Nome.

  7. Nelle impostazioni di ipconfig1 modificare l'assegnazione dell'indirizzo IP privato da Dinamico a Statico.

  8. Seleziona Salva.

  9. Tornare alle Configurazioni IP.

  10. Seleziona + Aggiungi.

  11. Immettere o selezionare le informazioni seguenti per Aggiungere una configurazione IP:

    Impostazione valore
    Nome Immettere ipconfig-2.
    Impostazioni dell'indirizzo IP privato
    Allocazione Selezionare Statico.
    Indirizzo IP Immettere 10.0.0.5.
  12. Seleziona OK.

  13. Verificare che ipconfig2 sia stato aggiunto come configurazione IP secondaria.

Ripetere i passaggi da 1 a 13 per aggiungere tutte le configurazioni dei contenitori da distribuire nell'host contenitore.

Configurare gli indirizzi IP in Windows

Per assegnare più indirizzi IP a una macchina virtuale Windows, gli indirizzi IP devono essere aggiunti all'interfaccia di rete in Windows. In questa sezione è possibile accedere alla macchina virtuale e configurare le configurazioni IP create nella sezione precedente.

  1. Nella casella di ricerca, nella parte superiore del portale, immettere Macchina virtuale. Selezionare Macchine virtuali nei risultati della ricerca.

  2. Selezionare vm-1.

  3. Nella Panoramica di vm-1selezionare Connetti quindi Bastion.

  4. Immettere il nome utente e la password creati durante la distribuzione della macchina virtuale nei passaggi precedenti.

  5. Selezionare Connetti.

  6. Aprire la configurazione delle connessioni di rete nella macchina virtuale. Selezionare Avvia ->Esegui e immettere ncpa.cpl.

  7. Seleziona OK.

  8. Selezionare l'interfaccia di rete della macchina virtuale, quindi Proprietà:

    Screenshot della selezione dell'interfaccia di rete nel sistema operativo Windows.

  9. In Proprietà Ethernetselezionare Protocollo Internet versione 4 (TCP/IPv4), quindi Proprietà.

  10. Immettere o selezionare le informazioni seguenti nella scheda Generale:

    Impostazione Valore
    Selezionare Usare l'indirizzo IP seguente:
    Indirizzo IP: Immettere 10.0.0.4
    Subnet mask: Immettere 255.255.255.0
    Gateway predefinito Immettere 10.0.0.1
    Selezionare Usare gli indirizzi server DNS seguenti:
    Server DNS preferito: Immettere 168.63.129.16 Questo è l'indirizzo IP assegnato da DHCP per il DNS di Azure predefinito
  11. Selezionare Avanzate....

  12. in indirizzi IPselezionare Aggiungi....

  13. Immettere o selezionare le informazioni seguenti:

    Impostazione Valore
    Indirizzo TCP/IP
    Indirizzo IP: Immettere 10.0.0.5
    Subnet mask: Immettere 255.255.255.0
  14. Selezionare Aggiungi.

  15. Per aggiungere altri indirizzi IP che corrispondono alle eventuali configurazioni IP aggiuntive create in precedenza, selezionare Aggiungi.

  16. Seleziona OK.

  17. Seleziona OK.

  18. Seleziona OK.

La connessione Bastion si interrompe per alcuni secondi quando viene applicata la configurazione di rete. Attendere alcuni secondi e quindi tentare di riconnettersi. Continuare quando una riconnessione ha esito positivo.

Installare Docker

Il motore contenitore Docker deve essere installato e configurato nella macchina virtuale creata in precedenza.

Accedere alla macchina virtuale creata in precedenza con l'host Azure Bastion distribuito con la rete virtuale.

  1. Nella casella di ricerca, nella parte superiore del portale, immettere Macchina virtuale. Selezionare Macchine virtuali nei risultati della ricerca.

  2. Selezionare vm-1.

  3. Nella Panoramica di vm-1selezionare Connetti quindi Bastion.

  4. Immettere il nome utente e la password creati durante la distribuzione della macchina virtuale nei passaggi precedenti.

  5. Selezionare Connetti.

  6. Aprire Windows PowerShell in vm-1.

  7. Nell'esempio seguente viene installato Docker CE/Moby:

    Invoke-WebRequest -UseBasicParsing "https://raw.githubusercontent.com/microsoft/Windows-Containers/Main/helpful_tools/Install-DockerCE/install-docker-ce.ps1" -o install-docker-ce.ps1
    
    .\install-docker-ce.ps1
    

La macchina virtuale viene riavviata per installare il supporto del contenitore in Windows. Riconnettersi alla macchina virtuale e l'installazione di Docker continua.

Per altre informazioni sui contenitori di Windows, vedere Introduzione: Preparazione di Windows per i contenitori.

Dopo l'installazione di Docker nella macchina virtuale, continuare con i passaggi descritti in questo articolo.

Installare il plug-in CNI e jq

Il plug-in Azure CNI viene gestito come progetto GitHub ed è disponibile per il download dalla pagina GitHub del progetto. Per questo articolo, scaricare il repository del plug-in CNI all'interno della macchina virtuale e quindi installare e configurare il plug-in.

Per altre informazioni sul plug-in Azure CNI, vedere Rete di contenitori Microsoft Azure.

  1. Nella casella di ricerca, nella parte superiore del portale, immettere Macchina virtuale. Selezionare Macchine virtuali nei risultati della ricerca.

  2. Selezionare vm-1.

  3. Nella Panoramica di vm-1selezionare Connetti quindi Bastion.

  4. Immettere il nome utente e la password creati durante la distribuzione della macchina virtuale nei passaggi precedenti.

  5. Selezionare Connetti.

  6. Usare l'esempio seguente per scaricare ed estrarre il plug-in CNI in una cartella temporanea nella macchina virtuale:

    Invoke-WebRequest -Uri https://github.com/Azure/azure-container-networking/archive/refs/heads/master.zip -OutFile azure-container-networking.zip
    
    Expand-Archive azure-container-networking.zip -DestinationPath azure-container-networking
    
  7. Per installare il plug-in CNI, passare alla directory degli script della cartella del plug-in CNI scaricata nel passaggio precedente. Il comando install script richiede un numero di versione per il plug-in CNI. Al momento della stesura di questo articolo, la versione più recente è v1.4.39. Per ottenere il numero di versione più recente del plug-in o delle versioni precedenti, vedere Versioni.

    cd .\azure-container-networking\azure-container-networking-master\scripts\
    
    .\Install-CniPlugin.ps1 v1.4.39
    
  8. Il plug-in CNI include un file di configurazione di rete predefinito per il plug-in. Usare l'esempio seguente per copiare il file nella directory di configurazione di rete:

    Copy-Item -Path "c:\k\azurecni\bin\10-azure.conflist" -Destination "c:\k\azurecni\netconf"
    

Installare jq

Lo script che crea i contenitori con il plug-in Azure CNI richiede l'applicazione jq. Per altre informazioni e percorso di download, vedere Scaricare jq.

  1. Aprire un Web browser nella macchina virtuale e scaricare l'applicazione jq.

  2. Il download è un eseguibile autonomo per l'applicazione. Copiare il file jq-win64.exe eseguibile nella directory C:\Windows.

Creare un contenitore di test

  1. Per avviare un contenitore con il plug-in CNI, è necessario usare uno script speciale fornito con il plug-in per creare e avviare il contenitore. Nell'esempio seguente viene creato un contenitore Windows Server con lo script del plugin CNI:

    cd .\azure-container-networking\azure-container-networking-master\scripts\
    .\docker-exec.ps1 vnetdocker1 default mcr.microsoft.com/windows/servercore/iis add
    

    Il primo download dell'immagine del contenitore può richiedere alcuni minuti. Quando il contenitore si avvia e inizializza la rete, la connessione a Bastion si disconnette. Attendere alcuni secondi e ristabilire la connessione.

  2. Per verificare che il contenitore abbia ricevuto l'indirizzo IP configurato in precedenza, connettersi al contenitore e visualizzare l'indirizzo IP:

    docker exec -it vnetdocker1 powershell
    
  3. Usare il comando ipconfig nell'esempio seguente per verificare che l'indirizzo IP sia stato assegnato al contenitore:

    ipconfig
    

    Screenshot dell'output ipconfig nel prompt del contenitore di test di PowerShell.

  4. Chiudere il contenitore e chiudere la connessione Bastion a vm-1.

Quando le risorse create non sono più necessarie, è possibile eliminare il gruppo di risorse e tutte le risorse che contiene.

  1. Accedere al portale di Azure e selezionare Gruppi di risorse.

  2. Nella pagina Gruppi di risorse selezionare il gruppo di risorse test-rg.

  3. Nella pagina test-rg selezionare Elimina gruppo di risorse.

  4. Immettere test-rg in Immettere il nome del gruppo di risorse per confermare l'eliminazione, quindi selezionare Elimina.

Passaggi successivi

In questo articolo si è appreso come installare il plugin Azure CNI e creare un contenitore di test.

Per altre informazioni sulla rete dei contenitori di Azure e sul servizio Azure Kubernetes, vedere: