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
- Un account Azure con una sottoscrizione attiva. Creare un account gratuitamente.
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:
Nel portale cercare e selezionare Reti virtuali.
Nella pagina Reti virtuali selezionare + Crea.
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. Selezionare Avanti per passare alla scheda Sicurezza.
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.
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.Selezionare Avanti per passare alla scheda Indirizzi IP.
Nella casella spazio indirizzi in Subnetselezionare la subnet predefinita.
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). Seleziona Salva.
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.
Nel portale, cercare e selezionare Macchine virtuali.
In Macchine virtuali, selezionare + Crea, quindi Macchina virtuale di Azure.
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. Selezionare la scheda Rete, nella parte superiore della pagina.
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.Lasciare invariate le impostazioni predefinite e selezionare Rivedi e crea.
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.
Nella casella di ricerca, nella parte superiore del portale, immettere Macchina virtuale. Selezionare Macchine virtuali nei risultati della ricerca.
Selezionare vm-1.
In Impostazioni selezionare Rete.
Selezionare il nome dell'interfaccia di rete accanto a Interfaccia di rete:. L'interfaccia di rete è denominata vm-1 con un numero casuale.
In Impostazioni dell'interfaccia di rete selezionare Configurazioni IP.
in Configurazioni IPselezionare ipconfig1 in Nome.
Nelle impostazioni di ipconfig1 modificare l'assegnazione dell'indirizzo IP privato da Dinamico a Statico.
Seleziona Salva.
Tornare alle Configurazioni IP.
Seleziona + Aggiungi.
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. Seleziona OK.
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.
Nella casella di ricerca, nella parte superiore del portale, immettere Macchina virtuale. Selezionare Macchine virtuali nei risultati della ricerca.
Selezionare vm-1.
Nella Panoramica di vm-1selezionare Connetti quindi Bastion.
Immettere il nome utente e la password creati durante la distribuzione della macchina virtuale nei passaggi precedenti.
Selezionare Connetti.
Aprire la configurazione delle connessioni di rete nella macchina virtuale. Selezionare Avvia ->Esegui e immettere
ncpa.cpl
.Seleziona OK.
Selezionare l'interfaccia di rete della macchina virtuale, quindi Proprietà:
In Proprietà Ethernetselezionare Protocollo Internet versione 4 (TCP/IPv4), quindi Proprietà.
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 Selezionare Avanzate....
in indirizzi IPselezionare Aggiungi....
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 Selezionare Aggiungi.
Per aggiungere altri indirizzi IP che corrispondono alle eventuali configurazioni IP aggiuntive create in precedenza, selezionare Aggiungi.
Seleziona OK.
Seleziona OK.
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.
Nella casella di ricerca, nella parte superiore del portale, immettere Macchina virtuale. Selezionare Macchine virtuali nei risultati della ricerca.
Selezionare vm-1.
Nella Panoramica di vm-1selezionare Connetti quindi Bastion.
Immettere il nome utente e la password creati durante la distribuzione della macchina virtuale nei passaggi precedenti.
Selezionare Connetti.
Aprire Windows PowerShell in vm-1.
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.
Nella casella di ricerca, nella parte superiore del portale, immettere Macchina virtuale. Selezionare Macchine virtuali nei risultati della ricerca.
Selezionare vm-1.
Nella Panoramica di vm-1selezionare Connetti quindi Bastion.
Immettere il nome utente e la password creati durante la distribuzione della macchina virtuale nei passaggi precedenti.
Selezionare Connetti.
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
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
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.
Aprire un Web browser nella macchina virtuale e scaricare l'applicazione jq.
Il download è un eseguibile autonomo per l'applicazione. Copiare il file
jq-win64.exe
eseguibile nella directoryC:\Windows
.
Creare un contenitore di test
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.
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
Usare il comando
ipconfig
nell'esempio seguente per verificare che l'indirizzo IP sia stato assegnato al contenitore:ipconfig
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.
Accedere al portale di Azure e selezionare Gruppi di risorse.
Nella pagina Gruppi di risorse selezionare il gruppo di risorse test-rg.
Nella pagina test-rg selezionare Elimina gruppo di risorse.
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: