Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Questo articolo illustra come distribuire un cluster del servizio Azure Kubernetes basato su collegamento privato. Se si è interessati a creare un cluster del servizio Azure Kubernetes senza collegamento privato o tunnel necessario, vedere Creare un cluster del servizio Azure Kubernetes con l'integrazione della rete virtuale del server API.
Panoramica dei cluster privati in AKS
In un cluster privato, il piano di controllo o il server API dispone di indirizzi IP interni definiti nel documento RFC1918 - Allocazione indirizzi per Internet privato . Usando un cluster privato è possibile garantire che il traffico di rete tra il server API e i pool di nodi rimanga solo sulla rete privata.
Il piano di controllo o il server API si trova in un gruppo di risorse di Azure gestito dal servizio Azure Kubernetes e il cluster o il pool di nodi si trova nel gruppo di risorse. Il server e il cluster o il pool di nodi possono comunicare tra loro tramite il servizio Collegamento privato di Azure nella rete virtuale del server API e un endpoint privato esposto nella subnet del cluster AKS.
Quando si crea un cluster del servizio Azure Kubernetes privato, il servizio Azure Kubernetes crea nomi di dominio privati e pubblici completi (FQDN) con le zone DNS corrispondenti per impostazione predefinita. Per informazioni dettagliate su opzioni di configurazione DNS, vedere Configurare una zona DNS privata, una sottozone DNS privata o un sottodominio personalizzato.
Aree di disponibilità
I cluster privati sono disponibili in regioni pubbliche, Azure Government e Microsoft Azure gestito da 21Vianet dove AKS è supportato.
Importante
Tutte le funzionalità di Microsoft Defender for Cloud verranno ritirati ufficialmente nell'area di Azure in Cina il 18 agosto 2026. A causa di questo prossimo ritiro, i clienti di Azure in Cina non sono più in grado di eseguire l'onboarding di nuove sottoscrizioni al servizio. Una nuova sottoscrizione è una sottoscrizione che non è già stata eseguita per il servizio Microsoft Defender for Cloud prima del 18 agosto 2025, la data dell'annuncio di ritiro. Per altre informazioni sul ritiro, vedere Annuncio relativo alla deprecazione di Microsoft Defender for Cloud in Microsoft Azure gestito da 21Vianet.
I clienti devono collaborare con i rappresentanti dell'account per Microsoft Azure gestito da 21Vianet per valutare l'impatto di questo ritiro sulle proprie operazioni.
Prerequisiti per i cluster AKS privati
- Interfaccia della riga di comando di Azure versione 2.28.0 o successiva. Eseguire
az --versionper trovare la versione ed eseguireaz upgradeper aggiornare la versione. Se è necessario installare o aggiornare, vedere Installare l'interfaccia della riga di comando di Azure. - Se si usa Azure Resource Manager (ARM) o l'API REST di Azure, la versione dell'API di Azure Kubernetes Service deve essere 2021-05-01 o successiva.
- Per usare un server DNS personalizzato, aggiungere l'indirizzo IP pubblico di Azure 168.63.129.16 come server DNS upstream nel server DNS personalizzato e assicurarsi di aggiungere questo indirizzo IP pubblico come primo server DNS. Per altre informazioni sull'indirizzo IP di Azure, vedere Che cos'è l'indirizzo IP 168.63.129.16?
- La zona DNS del cluster deve essere quella inoltrata alla versione 168.63.129.16. Altre informazioni sui nomi di zona sono disponibili nella configurazione della zona DNS dei servizi di Azure.
- I cluster del servizio Azure Kubernetes esistenti abilitati per l'integrazione rete virtuale del server API possono avere la modalità cluster privato abilitata. Per altre informazioni, vedere Abilitare o disabilitare la modalità cluster privato in un cluster esistente con integrazione rete virtuale del server API.
Importante
A partire dal 30 novembre 2025, il servizio Azure Kubernetes non supporta più o fornisce aggiornamenti della sicurezza per Azure Linux 2.0. L'immagine del nodo Linux 2.0 di Azure è bloccata alla versione 202512.06.0. A partire dal 31 marzo 2026, le immagini dei nodi verranno rimosse e non sarà possibile ridimensionare i pool di nodi. Eseguire la migrazione a una versione di Linux di Azure supportata aggiornando i pool di nodi a una versione di Kubernetes supportata o eseguendo la migrazione ad osSku AzureLinux3. Per altre informazioni, vedere [Ritiro] Pool di nodi di Azure Linux 2.0 nel servizio Azure Kubernetes.
Limitazioni e considerazioni per i cluster AKS privati
- Non è possibile applicare intervalli IP autorizzati all'endpoint del server API privato, ma si applicano solo al server API pubblico.
- Le limitazioni del servizio Collegamento privato di Azure si applicano ai cluster privati.
- Non è disponibile alcun supporto per gli agenti ospitati da Microsoft In Azure DevOps con cluster privati. Considera l'uso di agenti autogestiti.
- Se è necessario abilitare Registro Azure Container per l'uso con un cluster del servizio Azure Kubernetes privato, configurare un collegamento privato per il registro container nella rete virtuale (VNet) del cluster o configurare il peering tra la rete virtuale del registro contenitori e la rete virtuale del cluster privato.
- L'eliminazione o la modifica dell'endpoint privato nella subnet del cliente causa l'interruzione del funzionamento del cluster.
- Il servizio Collegamento privato di Azure è supportato solo in Azure Load Balancer Standard. Azure Load Balancer di base non è supportato.
Hub e spoke con DNS personalizzato per i cluster privati Azure Kubernetes Service (AKS)
Le architetture hub-spoke vengono comunemente usate per distribuire le reti in Azure. In molte di queste distribuzioni, le impostazioni DNS nelle reti virtuali spoke sono configurate in modo da fare riferimento a un server d'inoltro DNS centrale per consentire la risoluzione DNS locale e basata su Azure.
Quando si distribuiscono cluster privati di Azure Kubernetes Service (AKS) nelle architetture hub-spoke con DNS personalizzato, tenere a mente le seguenti considerazioni:
Quando viene creato un cluster privato, un endpoint privato (1) e una zona DNS privata (2) vengono creati nel gruppo di risorse gestito dal cluster per impostazione predefinita. Il cluster usa un record
Anella zona privata per risolvere l'indirizzo IP dell'endpoint privato per la comunicazione con il server API.La zona DNS privata è collegata solo alla rete virtuale a cui sono collegati i nodi del cluster (3), il che significa che l'endpoint privato può essere risolto solo dagli host in tale rete virtuale collegata. Negli scenari in cui non è configurato alcun DNS personalizzato sulla rete virtuale (predefinito), funziona senza problemi poiché gli host puntano a 168.63.129.16 per il DNS, che risolve i record nella zona DNS privata grazie al collegamento.
Se si mantiene il comportamento predefinito della zona DNS privata, AKS tenta di collegare la zona direttamente alla rete virtuale Spoke che ospita il cluster anche quando la zona è già collegata a una rete virtuale Hub.
Nelle reti virtuali spoke che usano server DNS personalizzati, questa azione può non riuscire se l'identità gestita del cluster non dispone di Collaboratore di rete nella rete virtuale spoke.
Per evitare l'errore, scegliere una delle configurazioni supportate seguenti:
-
Zona DNS privata personalizzata: specificare una zona privata creata in modo preliminare e impostarne
privateDNSZone/--private-dns-zonel'ID risorsa. Collegare quella zona alla rete virtuale appropriata, ad esempio alla rete virtuale dell'hub, e impostarepublicDNSsufalse/ usare--disable-public-fqdn. -
Solo DNS pubblico: disabilitare la creazione della zona privata impostando
privateDNSZone/--private-dns-zonesunonee lasciarepublicDNSil valore predefinito (true) / non usare--disable-public-fqdn.
-
Zona DNS privata personalizzata: specificare una zona privata creata in modo preliminare e impostarne
Se stai utilizzando una tabella di route BYO (Bring Your Own) con kubenet e DNS BYO con cluster privati, la creazione del cluster non riesce. Dopo che la creazione del cluster non è riuscita, è necessario associare l'oggetto
RouteTablenel gruppo di risorse del nodo alla subnet.
Quando si utilizza un DNS personalizzato con cluster AKS privati, tenere a mente le seguenti limitazioni:
- L'impostazione su
privateDNSZone/--private-dns-zonenoneepublicDNS: false/--disable-public-fqdncontemporaneamente non è supportata. - L'inoltro condizionale non supporta i sottodomini.
Creare un cluster AKS privato con la rete di base di default
Creare un gruppo di risorse usando il comando
az group create. È anche possibile usare un gruppo di risorse esistente per il cluster del servizio Azure Kubernetes.az group create \ --name <private-cluster-resource-group> \ --location <location>Creare un cluster privato con la rete di base predefinita usando il comando
az aks createcon il flag--enable-private-cluster.Parametri chiave in questo comando:
-
--enable-private-cluster: abilita la modalità cluster privato.
az aks create \ --name <private-cluster-name> \ --resource-group <private-cluster-resource-group> \ --load-balancer-sku standard \ --enable-private-cluster \ --generate-ssh-keys-
Creare un cluster AKS privato con rete avanzata
Creare un gruppo di risorse usando il comando
az group create. È anche possibile usare un gruppo di risorse esistente per il cluster del servizio Azure Kubernetes.az group create \ --name <private-cluster-resource-group> \ --location <location>Creare un cluster privato con funzionalità di rete avanzate usando il
az aks createcomando .Parametri chiave in questo comando:
-
--enable-private-cluster: abilita la modalità cluster privato. -
--network-plugin azure: specifica il plug-in di rete CNI di Azure. -
--vnet-subnet-id: ID risorsa di una subnet esistente in una rete virtuale. -
--dns-service-ip: indirizzo IP disponibile all'interno dell'intervallo di indirizzi del servizio Kubernetes da usare per il servizio DNS del cluster. -
--service-cidr: intervallo IP di notazione CIDR da cui assegnare indirizzi IP del cluster di servizi.
az aks create \ --resource-group <private-cluster-resource-group> \ --name <private-cluster-name> \ --load-balancer-sku standard \ --enable-private-cluster \ --network-plugin azure \ --vnet-subnet-id <subnet-id> \ --dns-service-ip 10.2.0.10 \ --service-cidr 10.2.0.0/24 --generate-ssh-keys-
Usare domini personalizzati con cluster privati di AKS
Per configurare domini personalizzati che possono essere risolti internamente, vedere Usare domini personalizzati.
Disabilitare un FQDN pubblico in un cluster del servizio Azure Kubernetes privato
Disabilitare un FQDN pubblico in un nuovo cluster
Disabilitare un FQDN pubblico durante la creazione di un cluster del servizio Azure Kubernetes privato usando il comando
az aks createcon il flag--disable-public-fqdn.az aks create \ --name <private-cluster-name> \ --resource-group <private-cluster-resource-group> \ --load-balancer-sku standard \ --enable-private-cluster \ --assign-identity <resource-id> \ --private-dns-zone <private-dns-zone-mode> \ --disable-public-fqdn \ --generate-ssh-keys
Disabilitare un FQDN pubblico in un cluster esistente
Disabilitare un FQDN pubblico in un cluster del servizio Azure Kubernetes esistente usando il comando
az aks updatecon il flag--disable-public-fqdn.az aks update \ --name <private-cluster-name> \ --resource-group <private-cluster-resource-group> \ --disable-public-fqdn
Configurare una zona DNS privata, una sottozone DNS privata o un sottodominio personalizzato per un cluster del servizio Azure Kubernetes privato
È possibile configurare le impostazioni DNS private per un cluster AKS privato utilizzando l'interfaccia della riga di comando di Azure (con il parametro --private-dns-zone) o un modello di Azure Resource Manager (ARM) (con la proprietà privateDNSZone). La tabella seguente illustra le opzioni disponibili per il --private-dns-zone parametro/ privateDNSZone proprietà:
| Impostazione | Description |
|---|---|
system |
Valore predefinito durante la configurazione di una zona DNS privata. Se si omette --private-dns-zone / privateDNSZone, AKS crea una zona DNS privata nel gruppo di risorse del nodo. |
none |
Se si imposta --private-dns-zone / privateDNSZone su none, il servizio Azure Kubernetes non crea una zona DNS privata. |
<custom-private-dns-zone-resource-id> |
Per usare questo parametro, è necessario creare una zona DNS privata nel formato seguente per il cloud globale di Azure: privatelink.<region>.azmk8s.io o <subzone>.privatelink.<region>.azmk8s.io. Per un uso futuro è necessario l'ID risorsa della zona DNS privata. È necessaria anche un'identità assegnata dall'utente o un principale del servizio con i ruoli Collaboratore zona DNS privata e Collaboratore rete. Per i cluster che usano l'integrazione della rete virtuale del server API, una zona DNS privata supporta il formato di denominazione di private.<region>.azmk8s.io o <subzone>.private.<region>.azmk8s.io.
Non è possibile modificare o eliminare questa risorsa dopo la creazione del cluster, perché può causare problemi di prestazioni e errori di aggiornamento del cluster. È possibile usare --fqdn-subdomain <subdomain> con <custom-private-dns-zone-resource-id> solo per fornire funzionalità di sottodominio a privatelink.<region>.azmk8s.io. Se si specifica una sottozone, è previsto un limite di 32 caratteri per il <subzone> nome. |
Quando si configura il DNS privato per un cluster del servizio Azure Kubernetes privato, tenere presenti le considerazioni seguenti:
- Se la zona DNS privata si trova in una sottoscrizione diversa rispetto al cluster del servizio Azure Kubernetes, è necessario registrare il provider di Azure
Microsoft.ContainerServicesin entrambe le sottoscrizioni. - Se il cluster del servizio Azure Kubernetes è configurato con un'entità servizio Active Directory, il servizio Azure Kubernetes non supporta l'uso di un'identità gestita assegnata dal sistema con una zona DNS privata personalizzata. Il cluster deve usare l'autenticazione dell'identità gestita assegnata dall'utente.
Creare un cluster del servizio Azure Kubernetes privato con una zona DNS privata
Creare un cluster AKS privato con una zona DNS privata utilizzando il comando
az aks create.Parametri chiave in questo comando:
-
--enable-private-cluster: abilita la modalità cluster privato. -
--private-dns-zone [system|none]: configura la zona DNS privata per il cluster. Il valore predefinito èsystem. -
--assign-identity <resource-id>: ID risorsa di un'identità gestita assegnata dall'utente con i ruoli Collaboratore zona DNS privato e Collaboratore rete .
az aks create \ --name <private-cluster-name> \ --resource-group <private-cluster-resource-group> \ --load-balancer-sku standard \ --enable-private-cluster \ --assign-identity <resource-id> \ --private-dns-zone [system|none] \ --generate-ssh-keys-
Creare un cluster del servizio Azure Kubernetes privato con una zona DNS privata personalizzata o una sottozona DNS privata
Creare un cluster privato di Azure Kubernetes Service (AKS) con una zona DNS privata personalizzata o un sottodominio utilizzando il comando
az aks create.Parametri chiave in questo comando:
-
--enable-private-cluster: abilita la modalità cluster privato. -
--private-dns-zone <custom-private-dns-zone-resource-id>|<custom-private-dns-subzone-resource-id>: ID risorsa di una zona DNS privata o di una sottozone creata in modo preliminare nel formato seguente per il cloud globale di Azure:privatelink.<region>.azmk8s.ioo<subzone>.privatelink.<region>.azmk8s.io. -
--assign-identity <resource-id>: ID risorsa di un'identità gestita assegnata dall'utente con i ruoli Collaboratore zona DNS privato e Collaboratore rete .
# The custom private DNS zone name should be in the following format: "<subzone>.privatelink.<region>.azmk8s.io" az aks create \ --name <private-cluster-name> \ --resource-group <private-cluster-resource-group> \ --load-balancer-sku standard \ --enable-private-cluster \ --assign-identity <resource-id> \ --private-dns-zone [<custom-private-dns-zone-resource-id>|<custom-private-dns-subzone-resource-id>] \ --generate-ssh-keys-
Creare un cluster del servizio Azure Kubernetes privato con una zona DNS privata personalizzata e un sottodominio personalizzato
Crea un cluster privato di AKS con una zona DNS privata personalizzata e un sottodominio usando il comando
az aks create.Parametri chiave in questo comando:
-
--enable-private-cluster: abilita la modalità cluster privato. -
--private-dns-zone <custom-private-dns-zone-resource-id>: ID risorsa di una zona DNS privata creata in modo preliminare nel formato seguente per il cloud globale di Azure:privatelink.<region>.azmk8s.io. -
--fqdn-subdomain <subdomain>Il sottodominio da usare per il FQDN del cluster all'interno della zona DNS privata personalizzata. -
--assign-identity <resource-id>: ID risorsa di un'identità gestita assegnata dall'utente con i ruoli Collaboratore zona DNS privato e Collaboratore rete .
# The custom private DNS zone name should be in one of the following formats: "privatelink.<region>.azmk8s.io" or "<subzone>.privatelink.<region>.azmk8s.io" az aks create \ --name <private-cluster-name> \ --resource-group <private-cluster-resource-group> \ --load-balancer-sku standard \ --enable-private-cluster \ --assign-identity <resource-id> \ --private-dns-zone <custom-private-dns-zone-resource-id> \ --fqdn-subdomain <subdomain> \ --generate-ssh-keys-
Aggiornare un cluster AKS privato esistente da una zona DNS privata a una pubblica
È possibile eseguire l'aggiornamento solo da byo (bring your own) o system a none. Non sono supportate altre combinazioni di valori di aggiornamento.
Avviso
Quando si aggiorna un cluster privato da byo o system a none, i nodi dell'agente cambiano per usare un FQDN pubblico. In un cluster AKS che usa i set di scalabilità di macchine virtuali di Azure, si esegue un aggiornamento dell'immagine del nodo per aggiornare i nodi con il FQDN pubblico.
Aggiornare un cluster privato da
byoosystemanoneusando ilaz aks updatecomando con il--private-dns-zoneparametro impostato sunone.az aks update \ --name <private-cluster-name> \ --resource-group <private-cluster-resource-group> \ --private-dns-zone none
Configurare kubectl per connettersi a un cluster AKS privato
Per gestire un cluster Kubernetes, usare il client da riga di comando kubernetes kubectl.
kubectl è già installato se si usa Azure Cloud Shell. Per installare kubectl in locale, usare il comando az aks install-cli.
Configurare
kubectlper connettersi al cluster Kubernetes usando il comandoaz aks get-credentials. Questo comando scarica le credenziali e configura l'interfaccia della riga di comando di Kubernetes per usarli.az aks get-credentials --resource-group <private-cluster-resource-group> --name <private-cluster-name>Verificare la connessione al cluster usando il comando
kubectl get. Questo comando restituisce un elenco dei nodi del cluster.kubectl get nodesIl comando restituisce un output simile all'output di esempio seguente:
NAME STATUS ROLES AGE VERSION aks-nodepool1-12345678-vmss000000 Ready agent 3h6m v1.15.11 aks-nodepool1-12345678-vmss000001 Ready agent 3h6m v1.15.11 aks-nodepool1-12345678-vmss000002 Ready agent 3h6m v1.15.11