Servizio Azure Kubernetes abilitato dai requisiti di rete di Azure Arc

Si applica a: Azure Stack HCI, versione 23H2

Questo articolo presenta concetti di base di 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 usare 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 vengono introdotti i componenti chiave seguenti. Questi componenti richiedono un indirizzo IP statico per consentire al cluster e alle applicazioni 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 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 sono indirizzi IP allocati per abilitare la comunicazione tra nodi Kubernetes. AKS Arc usa 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 riserva di un indirizzo IP per ogni vm 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 nel ciclo di vita del cluster Kubernetes.

Per usare una rete logica per l'operazione di creazione del cluster Arc del servizio Azure Kubernetes, sono necessari i parametri seguenti:

Parametro di rete logica Descrizione Parametro obbligatorio per il cluster AKS Arc
--address-prefixes AddressPrefix per la rete. Attualmente è supportato solo 1 prefisso di indirizzo. Utilizzo: --address-prefixes "10.220.32.16/24". Supportato
--dns-servers Elenco delimitato da spazio degli indirizzi IP del server DNS. Utilizzo: --dns-servers 10.220.32.16 10.220.32.17. Supportato
--gateway Gateway. L'indirizzo IP del gateway deve trovarsi nell'ambito del prefisso dell'indirizzo. Utilizzo: --gateway 10.220.32.16. Supportato
--ip-allocation-method Metodo di allocazione degli indirizzi IP. I valori supportati sono "Statici". Utilizzo: --ip-allocation-method "Static". Supportato
--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". Supportato
--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". Supportato
--vm-switch-name Nome dell'opzione della macchina virtuale. Utilizzo: --vm-switch-name "vm-switch-01". Supportato

IP del piano di controllo

Kubernetes usa un piano di controllo per garantire 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 KubeVIP abilitato da Arc distribuisce il servizio di bilanciamento del carico KubeVIP per assicurarsi che l'indirizzo IP del server API del piano di controllo Kubernetes sia disponibile in ogni momento. Questa istanza di KubeVIP richiede una singola "indirizzo IP del piano di controllo" non modificabile per funzionare correttamente.

Nota

L'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 altro, tra cui reti logiche di macchina virtuale Arc, indirizzi IP di rete dell'infrastruttura, bilanciamento del carico e così via. L'IP del piano di controllo deve anche trovarsi nell'ambito del prefisso dell'indirizzo della rete logica, ma all'esterno del pool IP. Questo è 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, è possibile che venga generato 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 di riservare un indirizzo IP per ogni cluster Kubernetes nell'ambiente.

Indirizzi IP del servizio di bilanciamento del carico per 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:

Se si sceglie l'estensione MetalLB Arc o si usa il 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 necessita del 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 gli 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 degli indirizzi IP semplici per i cluster e le 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 desidera creare 3 pool di nodi con 3 nodi in ogni pool di nodi, è necessario disporre di 9 indirizzi IP nel pool IP. Riservare gli indirizzi IP per le macchine virtuali arc del servizio Azure Kubernetes tramite pool IP nella rete logica di macchine virtuali Arc.
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 del servizio Azure Kubernetes per le operazioni di aggiornamento delle versioni di Kubernetes. Riservare gli indirizzi IP per l'operazione di aggiornamento della versione K8s tramite pool IP nella rete logica di Arc VM.
IP del piano di controllo Riservare un indirizzo IP per ogni cluster Kubernetes nell'ambiente. Ad esempio, se si desidera 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 arc vm, 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 arc vm, ma all'esterno del pool IP specificato.

Procedura dettagliata di esempio per la prenotazione degli indirizzi IP per i cluster e le applicazioni Kubernetes

Jane è un amministratore IT a partire dal 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 in cima al cluster A. Questa applicazione include 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 include 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 sua 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 AKS Arc (un indirizzo IP per cluster AKS Arc).
  • 2 Indirizzi IP per il piano di controllo arc del servizio Azure Kubernetes (un indirizzo IP per cluster AKS 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.

Continuare con questo esempio e aggiungerlo alla tabella seguente, si ottiene:

Parametro Numero di indirizzi IP Come e dove effettuare questa prenotazione
Aggiornamento della versione di AKS Arc e 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 trovi 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 portare il servizio di bilanciamento del carico di terze parti. Assicurarsi che questo IP si trovi nella stessa subnet della rete logica Arc, ma all'esterno del pool IP definito nella rete logica della macchina virtuale Arc.

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 del proxy non è ancora supportata.

Requisiti cross-VLAN per la porta di rete &

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 a Arc Resource Bridge correlati ai servizi Azure Stack HCI si trovano in una rete virtuale 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 Destination Source (Sorgente) Descrizione Note sulla rete VLAN incrociata
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 separati, 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 in questa porta.
6443 Rete logica usata per le macchine virtuali arc del servizio Azure Kubernetes Indirizzi IP nella rete di gestione Obbligatorio per comunicare con le API Kubernetes. Se si usano VLAN separati, 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 in questa porta.
55000 Indirizzi IP nella rete di gestione Rete logica usata per le macchine virtuali arc del servizio Azure Kubernetes Server gRPC di Cloud Agent Se si usano VLAN separati, le macchine virtuali di Azure Kubernetes Arc devono accedere agli indirizzi IP nella rete di gestione usata per l'IP dell'agente cloud e l'IP del cluster in questa porta.
65000 Indirizzi IP nella rete di gestione Rete logica usata per le macchine virtuali arc del servizio Azure Kubernetes Autenticazione gRPC di Cloud Agent Se si usano VLAN separati, le macchine virtuali di Azure Kubernetes Arc devono accedere agli indirizzi IP nella rete di gestione usata per l'IP dell'agente cloud e l'IP del cluster in questa porta.

Eccezioni dell'URL del firewall

Per informazioni sull'elenco consentito dell'URL firewall/proxy di Azure Arc, vedere i requisiti di rete del bridge delle risorse di Azure Arc e i requisiti di rete di Azure Stack HCI 23H2.

Per la distribuzione e l'operazione dei cluster Kubernetes, gli URL seguenti devono essere raggiungibili da tutti i nodi fisici e le vm arc del servizio Azure Kubernetes nella distribuzione. Assicurarsi che questi URL siano consentiti nella configurazione del firewall:

URL Porta Servizio Note
https://mcr.microsoft.com 443 Registro contenitori Microsoft Usato per gli artefatti Microsoft ufficiali, ad esempio immagini del contenitore.
https://*.his.arc.azure.com 443 Servizio di identità di Azure Arc Usato per il controllo di identità e accesso.
https://*.dp.kubernetesconfiguration.azure.com 443 Kubernetes Usato per la configurazione di Azure Arc.
https://*.servicebus.windows.net 443 Connessione del cluster 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 Servizio di notifica Usato per le operazioni di notifica guest.
https://*.dp.prod.appliances.azure.com 443 Servizio piano dati Usato per le operazioni del piano dati per Resource Bridge (appliance).
*.data.mcr.microsoft.com
azurearcfork8s.azurecr.io
linuxgeneva-microsoft.azurecr.io
pipelineagent.azurecr.io
ecpacr.azurecr.io
443 Scaricare l'agente Usato per scaricare immagini e agenti.
*.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
443 Metriche e monitoraggio dell'integrità Usato per metriche e monitoraggio del traffico di telemetria.
*.blob.core.windows.net
*.dl.delivery.mp.microsoft.com
*.do.dsp.mp.microsoft.com
443 TCP Usato per scaricare immagini di Resource Bridge (appliance).
https://azurearcfork8sdev.azurecr.io 443 Kubernetes Usato per scaricare le immagini del contenitore di Azure Arc per Kubernetes.
https://adhs.events.data.microsoft.com 443 Telemetria ADHS è un servizio di telemetria in esecuzione all'interno del sistema operativo appliance/mariner. Usato periodicamente per inviare i dati di diagnostica necessari a Microsoft dai nodi del piano di controllo. Usato quando i dati di telemetria vengono disattivati dal mariner, ovvero qualsiasi piano di controllo Kubernetes.
https://v20.events.data.microsoft.com 443 Telemetria Usato periodicamente per inviare i dati di diagnostica necessari a Microsoft dall'host di Windows Server.
gcr.io 443 Registro contenitori Google Usato per gli artefatti ufficiali di Kubernetes, ad esempio immagini di base del contenitore.
pypi.org 443 Pacchetto Python Convalidare le versioni di Kubernetes e Python.
*.pypi.org 443 Pacchetto Python Convalidare le versioni di Kubernetes e Python.
https://hybridaks.azurecr.io 443 Immagine del contenitore Obbligatorio per accedere all'immagine dell'operatore HybridAKS.
aka.ms 443 az extensions Obbligatorio per scaricare le estensioni dell'interfaccia della riga di comando di Azure, ad esempio aksarc e connectedk8s.
*.login.microsoft.com 443 Azure Obbligatorio per recuperare e aggiornare i token di Azure Resource Manager.
sts.windows.net 443 Azure Arc Per lo scenario basato su connessione cluster e percorso personalizzato.
hybridaksstorage.z13.web.core.windows.net 443 Azure Stack HCI Sito Web statico AKSHCI ospitato in Archiviazione di Azure.
raw.githubusercontent.com 443 GitHub Usato per GitHub.
www.microsoft.com 80 Sito Web ufficiale Microsoft. Sito Web ufficiale Microsoft.
*.prod.do.dsp.mp.microsoft.com 443 Microsoft Update Download dell'immagine del bridge di risorse (appliance).
files.pythonhosted.org 443 Pacchetto Python Pacchetto Python.

Passaggi successivi

Create reti logiche per i cluster Kubernetes in Azure Stack HCI 23H2