Servizio Azure Kubernetes abilitato dai requisiti di rete di Azure Arc
Si applica a: Azure Stack HCI, versione 23H2
Questo articolo presenta i concetti di base relativi alla rete per le macchine virtuali e le applicazioni nel servizio Azure Kubernetes abilitato da Azure Arc. L'articolo descrive anche i prerequisiti di rete necessari per la creazione di cluster Kubernetes. È consigliabile collaborare con un amministratore di rete per fornire e configurare i parametri di rete necessari per distribuire il servizio Azure Kubernetes abilitato da Arc.
In questo articolo concettuale sono stati introdotti i componenti chiave seguenti. Questi componenti necessitano di un indirizzo IP statico per consentire al cluster e alle applicazioni arc del servizio Azure Kubernetes di creare e funzionare correttamente:
- Macchine virtuali del cluster del servizio Azure Kubernetes
- IP del piano di controllo del servizio Azure Kubernetes
- Servizio di bilanciamento del carico per le applicazioni in contenitori
Rete per le macchine virtuali del cluster del servizio Azure Kubernetes
I nodi Kubernetes vengono distribuiti come macchine virtuali specializzate nel servizio Azure Kubernetes abilitato da Arc. Queste macchine virtuali vengono allocati indirizzi IP per abilitare la comunicazione tra i nodi Kubernetes. Azure Kubernetes Arc usa le reti logiche di Azure Stack HCI per fornire indirizzi IP e reti per le macchine virtuali sottostanti dei cluster Kubernetes. Per altre informazioni sulle reti logiche, vedere Reti logiche per Azure Stack HCI. È necessario pianificare la prenotazione di un indirizzo IP per ogni macchina virtuale del nodo del cluster del servizio Azure Kubernetes nell'ambiente Azure Stack HCI.
Nota
L'indirizzo IP statico è l'unica modalità supportata per l'assegnazione di un indirizzo IP alle macchine virtuali Arc del servizio Azure Kubernetes. Ciò avviene perché Kubernetes richiede che l'indirizzo IP assegnato a un nodo Kubernetes sia costante per tutto il ciclo di vita del cluster Kubernetes. Le reti virtuali definite dal software e le funzionalità correlate a SDN non sono attualmente supportate nel servizio Azure Kubernetes in Azure Stack HCI 23H2.
Per usare una rete logica per l'operazione di creazione del cluster di Azure Kubernetes Arc sono necessari i parametri seguenti:
Parametro di rete logica | Descrizione | Parametro obbligatorio per il cluster Arc del servizio Azure Kubernetes |
---|---|---|
--address-prefixes |
AddressPrefix per la rete. Attualmente è supportato solo un prefisso di indirizzo. Utilizzo: --address-prefixes "10.220.32.16/24" . |
|
--dns-servers |
Elenco separato da spazi di indirizzi IP del server DNS. Utilizzo: --dns-servers 10.220.32.16 10.220.32.17 . |
|
--gateway |
Gateway. L'indirizzo IP del gateway deve essere compreso nell'ambito del prefisso dell'indirizzo. Utilizzo: --gateway 10.220.32.16 . |
|
--ip-allocation-method |
Metodo di allocazione degli indirizzi IP. I valori supportati sono "Statici". Utilizzo: --ip-allocation-method "Static" . |
|
--ip-pool-start |
Indirizzo IP iniziale del pool IP. L'indirizzo deve essere compreso nell'intervallo del prefisso dell'indirizzo. Utilizzo: --ip-pool-start "10.220.32.18" . |
|
--ip-pool-end |
Indirizzo IP finale del pool IP. L'indirizzo deve essere compreso nell'intervallo del prefisso dell'indirizzo. Utilizzo: --ip-pool-end "10.220.32.38" . |
|
--vm-switch-name |
Nome del commutatore di macchina virtuale. Utilizzo: --vm-switch-name "vm-switch-01" . |
IP del piano di controllo
Kubernetes usa un piano di controllo per assicurarsi che ogni componente nel cluster Kubernetes venga mantenuto nello stato desiderato. Il piano di controllo gestisce e gestisce anche i nodi di lavoro che contengono le applicazioni in contenitori. Il servizio Azure Kubernetes abilitato da Arc distribuisce il servizio di bilanciamento del carico KubeVIP per garantire che l'indirizzo IP del server API del piano di controllo Kubernetes sia sempre disponibile. Per funzionare correttamente, questa istanza di KubeVIP richiede un singolo "indirizzo IP del piano di controllo" non modificabile.
Nota
L'INDIRIZZO IP del piano di controllo è un parametro obbligatorio per creare un cluster Kubernetes. È necessario assicurarsi che l'indirizzo IP del piano di controllo di un cluster Kubernetes non si sovrapponga ad altri elementi, tra cui reti logiche di macchine virtuali Arc, INDIRIZZI IP di rete dell'infrastruttura, servizi di bilanciamento del carico e così via. L'IP del piano di controllo deve anche essere compreso nell'ambito del prefisso dell'indirizzo della rete logica, ma all'esterno del pool IP. Ciò è dovuto al fatto che il pool IP viene usato solo per le macchine virtuali e se si sceglie un indirizzo IP dal pool IP per il piano di controllo, può verificarsi un conflitto di indirizzi IP. Gli indirizzi IP sovrapposti possono causare errori imprevisti sia per il cluster del servizio Azure Kubernetes che per qualsiasi altra posizione in cui viene usato l'indirizzo IP. È necessario pianificare la prenotazione di un indirizzo IP per ogni cluster Kubernetes nell'ambiente in uso.
Indirizzi IP del servizio di bilanciamento del carico per le applicazioni in contenitori
Lo scopo principale di un servizio di bilanciamento del carico è distribuire il traffico tra più nodi in un cluster Kubernetes. Questo bilanciamento del carico consente di evitare tempi di inattività e migliorare le prestazioni complessive delle applicazioni. Il servizio Azure Kubernetes supporta le opzioni seguenti per distribuire un servizio di bilanciamento del carico per il cluster Kubernetes:
- Distribuire il servizio di bilanciamento del carico MetalLB usando l'estensione Azure Arc.
- Usare il servizio di bilanciamento del carico di terze parti.
Se si sceglie l'estensione MetalLB Arc o si usa un servizio di bilanciamento del carico personalizzato, è necessario fornire un set di indirizzi IP al servizio di bilanciamento del carico. Sono disponibili le seguenti opzioni:
- Specificare gli indirizzi IP per i servizi dalla stessa subnet delle macchine virtuali Arc del servizio Azure Kubernetes.
- Usare una rete diversa e un elenco di indirizzi IP se l'applicazione richiede il bilanciamento del carico esterno.
Indipendentemente dall'opzione scelta, è necessario assicurarsi che gli indirizzi IP allocati al servizio di bilanciamento del carico non siano in conflitto con gli indirizzi IP nella rete logica o negli INDIRIZZI IP del piano di controllo per i cluster Kubernetes. Gli indirizzi IP in conflitto possono causare errori imprevisti nella distribuzione e nelle applicazioni del servizio Azure Kubernetes.
Pianificazione di indirizzi IP semplici per cluster e applicazioni Kubernetes
Nello scenario seguente si riservano indirizzi IP da una singola rete per i cluster e i servizi Kubernetes. Questo è lo scenario più semplice e semplice per l'assegnazione di indirizzi IP.
Requisito dell'indirizzo IP | Numero minimo di indirizzi IP | Come e dove effettuare questa prenotazione |
---|---|---|
Indirizzi IP delle macchine virtuali Arc del servizio Azure Kubernetes | Riservare un indirizzo IP per ogni nodo di lavoro nel cluster Kubernetes. Ad esempio, se si vogliono creare 3 pool di nodi con 3 nodi in ogni pool di nodi, è necessario avere 9 indirizzi IP nel pool di indirizzi IP. | Riservare gli indirizzi IP per le macchine virtuali Arc del servizio Azure Kubernetes tramite pool IP nella rete logica arc VM. |
Indirizzi IP di aggiornamento della versione di Arc K8s del servizio Azure Kubernetes | Poiché AKS Arc esegue aggiornamenti in sequenza, riservare un indirizzo IP per ogni cluster Arc del servizio Azure Kubernetes per le operazioni di aggiornamento della versione di Kubernetes. | Riservare gli indirizzi IP per l'operazione di aggiornamento della versione K8s tramite pool IP nella rete logica arc VM. |
IP del piano di controllo | Riservare un indirizzo IP per ogni cluster Kubernetes nell'ambiente. Ad esempio, se si vogliono creare 5 cluster in totale, riservare 5 indirizzi IP, uno per ogni cluster Kubernetes. | Riservare gli indirizzi IP per gli indirizzi IP del piano di controllo nella stessa subnet della rete logica della macchina virtuale Arc, ma all'esterno del pool IP specificato. |
Indirizzi IP del servizio di bilanciamento del carico | Il numero di indirizzi IP riservati dipende dal modello di distribuzione dell'applicazione. Come punto di partenza, è possibile riservare un indirizzo IP per ogni servizio Kubernetes. | Riservare gli indirizzi IP per gli indirizzi IP del piano di controllo nella stessa subnet della rete logica della macchina virtuale Arc, ma all'esterno del pool IP specificato. |
Procedura dettagliata di esempio per la prenotazione di indirizzi IP per cluster e applicazioni Kubernetes
Jane è un amministratore IT che inizia con il servizio Azure Kubernetes abilitato da Azure Arc. Vuole distribuire due cluster Kubernetes: cluster Kubernetes A e cluster Kubernetes B nel cluster Azure Stack HCI. Vuole anche eseguire un'applicazione di voto sopra il cluster A. Questa applicazione ha tre istanze dell'interfaccia utente front-end in esecuzione tra i due cluster e un'istanza del database back-end. Tutti i cluster e i servizi del servizio Azure Kubernetes vengono eseguiti in una singola rete, con una singola subnet.
- Il cluster Kubernetes A ha 3 nodi del piano di controllo e 5 nodi di lavoro.
- Il cluster Kubernetes B ha 1 nodo del piano di controllo e 3 nodi di lavoro.
- 3 istanze dell'interfaccia utente front-end (porta 443).
- 1 istanza del database back-end (porta 80).
In base alla tabella precedente, deve riservare un totale di 19 indirizzi IP nella subnet:
- 8 indirizzi IP per le macchine virtuali del nodo Arc del servizio Azure Kubernetes nel cluster A (un IP per macchina virtuale del nodo K8s).
- 4 indirizzi IP per le macchine virtuali del nodo Arc del servizio Azure Kubernetes nel cluster B (un IP per macchina virtuale del nodo K8s).
- 2 indirizzi IP per l'esecuzione dell'operazione di aggiornamento di Arc del servizio Azure Kubernetes (un indirizzo IP per ogni cluster del servizio Azure Kubernetes Arc).
- 2 indirizzi IP per il piano di controllo Arc del servizio Azure Kubernetes (un indirizzo IP per ogni cluster di Azure Kubernetes Arc)
- 3 Indirizzi IP per il servizio Kubernetes (un indirizzo IP per istanza dell'interfaccia utente front-end, poiché usano tutte la stessa porta. Il database back-end può usare uno dei tre indirizzi IP purché usi una porta diversa.
Continuando con questo esempio e aggiungendolo alla tabella seguente, si ottiene:
Parametro | Numero di indirizzi IP | Come e dove effettuare questa prenotazione |
---|---|---|
Aggiornamento delle macchine virtuali Arc del servizio Azure Kubernetes e della versione K8s | Riservare 14 indirizzi IP | Effettuare questa prenotazione tramite pool IP nella rete logica di Azure Stack HCI. |
IP del piano di controllo | Riservare 2 indirizzi IP, uno per il cluster Arc del servizio Azure Kubernetes | Usare il controlPlaneIP parametro per passare l'indirizzo IP per l'indirizzo IP del piano di controllo. Assicurarsi che questo IP si trova nella stessa subnet della rete logica Arc, ma all'esterno del pool IP definito nella rete logica Arc. |
Indirizzi IP del servizio di bilanciamento del carico | 3 Indirizzo IP per i servizi Kubernetes, per l'applicazione di voto di Jane. | Questi indirizzi IP vengono usati quando si installa un servizio di bilanciamento del carico nel cluster A. È possibile usare l'estensione MetalLB Arc o usare il servizio di bilanciamento del carico di terze parti. Assicurarsi che questo IP si trova nella stessa subnet della rete logica Arc, ma all'esterno del pool IP definito nella rete logica arc VM. |
Impostazioni proxy
Le impostazioni proxy nel servizio Azure Kubernetes vengono ereditate dal sistema di infrastruttura sottostante. La funzionalità per impostare le singole impostazioni proxy per i cluster Kubernetes e modificare le impostazioni proxy non è ancora supportata.
Requisiti di porta di rete e cross-VLAN
Quando si distribuisce Azure Stack HCI, si alloca un blocco contiguo di almeno sei indirizzi IP statici nella subnet della rete di gestione, omettendo gli indirizzi già usati dai server fisici. Questi indirizzi IP vengono usati da Azure Stack HCI e dall'infrastruttura interna (Arc Resource Bridge) per la gestione delle macchine virtuali Arc e L'arco del servizio Azure Kubernetes. Se la rete di gestione che fornisce indirizzi IP ai servizi Azure Stack HCI correlati ad Arc Resource Bridge si trovano in una VLAN diversa rispetto alla rete logica usata per creare cluster del servizio Azure Kubernetes, è necessario assicurarsi che le porte seguenti vengano aperte per creare e gestire correttamente un cluster del servizio Azure Kubernetes.
Porta di destinazione | Destinazione | Origine | Descrizione | Note sulla rete cross-VLAN |
---|---|---|---|---|
22 | Rete logica usata per le macchine virtuali Arc del servizio Azure Kubernetes | Indirizzi IP nella rete di gestione | Necessario per raccogliere i log per la risoluzione dei problemi. | Se si usano VLAN separate, gli indirizzi IP nella rete di gestione usata per Azure Stack HCI e Arc Resource Bridge devono accedere alle macchine virtuali del cluster Arc del servizio Azure Kubernetes su questa porta. |
6443 | Rete logica usata per le macchine virtuali Arc del servizio Azure Kubernetes | Indirizzi IP nella rete di gestione | Necessario per comunicare con le API Kubernetes. | Se si usano VLAN separate, gli indirizzi IP nella rete di gestione usata per Azure Stack HCI e Arc Resource Bridge devono accedere alle macchine virtuali del cluster Arc del servizio Azure Kubernetes su questa porta. |
55000 | Indirizzi IP nella rete di gestione | Rete logica usata per le macchine virtuali Arc del servizio Azure Kubernetes | Server gRPC dell'agente cloud | Se si usano VLAN separate, le macchine virtuali Arc del servizio Azure Kubernetes devono accedere agli indirizzi IP nella rete di gestione usata per l'indirizzo IP dell'agente cloud e l'IP del cluster su questa porta. |
65000 | Indirizzi IP nella rete di gestione | Rete logica usata per le macchine virtuali Arc del servizio Azure Kubernetes | Autenticazione gRPC dell'agente cloud | Se si usano VLAN separate, le macchine virtuali Arc del servizio Azure Kubernetes devono accedere agli indirizzi IP nella rete di gestione usata per l'indirizzo IP dell'agente cloud e l'IP del cluster su questa porta. |
Eccezioni dell'URL del firewall
Per informazioni sull'elenco di indirizzi consentiti per firewall/proxy di Azure Arc, vedere i requisiti di rete del bridge di risorse di Azure Arc e i requisiti di rete di Azure Stack HCI 23H2.
Nota
Se si distribuisce una versione precedente di Azure Stack HCI , ad esempio 2402 e versioni precedenti, è necessario consentire anche gli URL gcr.io e storage.googleapis.com . Questi URL sono stati rimossi dalla versione più recente del servizio Azure Kubernetes Arc.
URL | Porta | Service | Note |
---|---|---|---|
https://mcr.microsoft.com *.data.mcr.microsoft.com azurearcfork8s.azurecr.io linuxgeneva-microsoft.azurecr.io pipelineagent.azurecr.io ecpacr.azurecr.io https://azurearcfork8sdev.azurecr.io https://hybridaks.azurecr.io aszk8snetworking.azurecr.io |
443 | AKS Arc | Usato per artefatti Microsoft ufficiali, ad esempio immagini del contenitore. |
docker.io |
443 | AKS Arc | Usato per gli artefatti ufficiali di Kubernetes, ad esempio immagini di base del contenitore. |
hybridaksstorage.z13.web.core.windows.net |
443 | AKS Arc | Sito Web statico AKSHCI ospitato in Archiviazione di Azure. |
*.blob.core.windows.net *.dl.delivery.mp.microsoft.com *.do.dsp.mp.microsoft.com |
443 | AKS Arc | Usato per il download e l'aggiornamento dell'immagine del disco rigido virtuale arc del servizio Azure Kubernetes. |
*.prod.do.dsp.mp.microsoft.com |
443 | AKS Arc | Usato per il download e l'aggiornamento dell'immagine del disco rigido virtuale arc del servizio Azure Kubernetes. |
*.login.microsoft.com |
443 | Azure | Obbligatorio per recuperare e aggiornare i token di Azure Resource Manager per l'accesso ad Azure. |
https://*.his.arc.azure.com |
443 | K8s con abilitazione di Azure Arc | Usato per l'identità e il controllo di accesso degli agenti Arc. |
https://*.dp.kubernetesconfiguration.azure.com |
443 | K8s con abilitazione di Azure Arc | Usato per la configurazione di Azure Arc. |
https://*.servicebus.windows.net |
443 | K8s con abilitazione di Azure Arc | Usato per connettersi in modo sicuro ai cluster Kubernetes abilitati per Azure Arc senza richiedere l'abilitazione di alcuna porta in ingresso nel firewall. |
https://guestnotificationservice.azure.com |
443 | K8s con abilitazione di Azure Arc | Utilizzato per le operazioni di notifica guest. |
sts.windows.net |
443 | K8s con abilitazione di Azure Arc | Per lo scenario basato su connessione del cluster e sulla posizione personalizzata. |
https://*.dp.prod.appliances.azure.com |
443 | Arc Resource Bridge | Usato per le operazioni del piano dati per Resource Bridge (appliance). |
*.prod.microsoftmetrics.com *.prod.hot.ingestion.msftcloudes.com dc.services.visualstudio.com *.prod.warm.ingest.monitor.core.windows.net gcs.prod.monitoring.core.windows.net https://adhs.events.data.microsoft.com https://v20.events.data.microsoft.com |
443 | Metriche e monitoraggio dell'integrità | Usato per le metriche e il monitoraggio del traffico di telemetria. |
pypi.org *.pypi.org files.pythonhosted.org |
443 | Interfaccia della riga di comando di Azure | Usato per scaricare le estensioni dell'interfaccia della riga di comando di Az e dell'interfaccia della riga di comando di Azure. |
aka.ms |
443 | Azure Stack HCI | Obbligatorio per i download correlati ad Azure Stack HCI. |
raw.githubusercontent.com |
443 | GitHub | Usato per GitHub. |
www.microsoft.com |
80 | Sito Web ufficiale Microsoft. | Sito Web ufficiale Microsoft. |
Passaggi successivi
Creare reti logiche per cluster Kubernetes in Azure Stack HCI 23H2