Creare un cluster del servizio Azure Kubernetes con Integrazione della rete virtuale del server API (anteprima)
Un cluster del servizio Azure Kubernetes configurato con Integrazione della rete virtuale del server API proietta l'endpoint del server API direttamente in una subnet delegata nella rete virtuale in cui è distribuito il servizio Azure Kubernetes. L'Integrazione della rete virtuale del server API consente la comunicazione di rete tra il server API e i nodi del cluster senza richiedere un collegamento privato o un tunnel. Il server API è disponibile dietro un indirizzo VIP del servizio di bilanciamento del carico interno nella subnet delegata, che i nodi sono configurati a utilizzare. Usando un’Integrazione della rete virtuale del server API è possibile garantire che il traffico di rete tra il server API e i pool di nodi rimanga solo sulla rete privata.
Connettività del server API
Il piano di controllo o il server API si trova in una sottoscrizione di Azure gestita dal servizio Azure Kubernetes. Il cluster o il pool di nodi si trova nella sottoscrizione di Azure. Il server e le macchine virtuali che costituiscono i nodi del cluster possono comunicare tra loro tramite l'indirizzo VIP del server API e gli indirizzi IP pod proiettati nella subnet delegata.
L'Integrazione della rete virtuale del server API è supportata per i cluster pubblici e privati. È possibile aggiungere o rimuovere l'accesso pubblico dopo il provisioning del cluster. A differenza dei cluster non integrati nella rete virtuale, i nodi agente comunicano sempre direttamente con l'indirizzo IP privato dell'IP del servizio di bilanciamento del carico interno del server API senza usare DNS. Tutto il traffico da nodo a server API viene mantenuto nella rete privata e non è necessario alcun tunnel per la connettività del server API al nodo. I client out-of-cluster che devono comunicare con il server API possono farlo normalmente se l'accesso alla rete pubblica è abilitato. Se l'accesso alla rete pubblica è disabilitato, è necessario seguire la stessa metodologia di configurazione DNS privata dei cluster privati standard.
Aree di disponibilità
L’Integrazione della rete virtuale del server API è disponibile in tutte le aree di Azure globali.
Prerequisiti
- Interfaccia della riga di comando di Azure con estensione aks-preview 0.5.97 o versione successiva.
- Se si usa ARM o l'API REST, la versione dell'API del servizio Azure Kubernetes deve essere 2022-04-02-preview o successiva.
Installare l'estensione aks-preview per l'interfaccia della riga di comando di Azure
Importante
Le funzionalità di anteprima del servizio Azure Kubernetes sono disponibili in modalità self-service e opzionale. Le anteprime vengono fornite "così come sono" e "come disponibili" e sono escluse dai contratti di servizio e dalla garanzia limitata. Le anteprime del servizio Azure Kubernetes sono parzialmente coperte dal supporto clienti con la massima diligenza possibile. Di conseguenza, queste funzionalità non sono destinate all'uso in produzione. Per altre informazioni, vedere gli articoli di supporto seguenti:
Installare l'estensione aks-preview usando il comando
az extension add
.az extension add --name aks-preview
Eseguire l'aggiornamento alla versione più recente dell'estensione rilasciata usando il comando
az extension update
.az extension update --name aks-preview
Registrare il flag di funzionalità 'EnableAPIServerVnetIntegrationPreview'
Registrare il flag di funzionalità
EnableAPIServerVnetIntegrationPreview
usando il comandoaz feature register
.az feature register --namespace "Microsoft.ContainerService" --name "EnableAPIServerVnetIntegrationPreview"
Sono necessari alcuni minuti per visualizzare lo stato Registered.
Verificare lo stato della registrazione usando il comando
az feature show
:az feature show --namespace "Microsoft.ContainerService" --name "EnableAPIServerVnetIntegrationPreview"
Quando lo stato diventa Registrato, aggiornare la registrazione del provider di risorse Microsoft.ContainerService usando il comando
az provider register
.az provider register --namespace Microsoft.ContainerService
Creare un cluster del servizio Azure Kubernetes con Integrazione della rete virtuale del server API usando la rete virtuale gestita
È possibile configurare i cluster del servizio Azure Kubernetes con Integrazione della rete virtuale del server API in una rete virtuale gestita o in modalità di rete virtuale bring-your-own. È possibile crearli come cluster pubblici (con accesso al server API disponibile tramite un IP pubblico) o cluster privati (in cui il server API è accessibile solo tramite connettività di rete virtuale privata). È anche possibile alternare uno stato pubblico e privato senza ridistribuire il cluster.
Creare un gruppo di risorse
Creare un gruppo di risorse usando il comando
az group create
.az group create --location westus2 --name <resource-group>
Distribuire un cluster pubblico
Distribuire un cluster del servizio Azure Kubernetes pubblico con l'Integrazione della rete virtuale del server API per la rete virtuale gestita usando il comando
az aks create
con il flag--enable-api-server-vnet-integration
.az aks create --name <cluster-name> \ --resource-group <resource-group> \ --location <location> \ --network-plugin azure \ --enable-apiserver-vnet-integration \ --generate-ssh-keys
Distribuire un cluster privato
Distribuire un cluster del servizio Azure Kubernetes privato con l'Integrazione della rete virtuale del server API per la rete virtuale gestita usando il comando
az aks create
con i flag--enable-api-server-vnet-integration
e--enable-private-cluster
.az aks create --name <cluster-name> \ --resource-group <resource-group> \ --location <location> \ --network-plugin azure \ --enable-private-cluster \ --enable-apiserver-vnet-integration \ --generate-ssh-keys
Creare un cluster del servizio Azure Kubernetes privato con Integrazione della rete virtuale del server API usando la rete virtuale bring-your-own
Quando si usa la rete virtuale bring-your-own, è necessario creare e delegare una subnet del server API a Microsoft.ContainerService/managedClusters
, che concede al servizio Azure Kubernetes le autorizzazioni per inserire i pod del server API e il servizio di bilanciamento del carico interno in tale subnet. Non è possibile usare la subnet per altri carichi di lavoro, ma è possibile usarla per più cluster del servizio Azure Kubernetes che si trovano nella stessa rete virtuale. Le dimensioni minime supportate della subnet del server API sono /28.
L'identità del cluster richiede autorizzazioni sia per la subnet del server API che per la subnet del nodo. La mancanza di autorizzazioni nella subnet del server API può causare un errore di provisioning.
Avviso
Un cluster del servizio Azure Kubernetes riserva almeno 9 IP nello spazio indirizzi della subnet. L'esaurimento degli indirizzi IP può impedire il ridimensionamento del server API e causare un'interruzione del server API.
Creare un gruppo di risorse
- Creare un gruppo di risorse usando il comando
az group create
.
az group create --location <location> --name <resource-group>
Creare una rete virtuale
Creare una rete virtuale usando il comando
az network vnet create
.az network vnet create --name <vnet-name> \ --resource-group <resource-group> \ --location <location> \ --address-prefixes 172.19.0.0/16
Creare una subnet del server API usando il comando
az network vnet subnet create
.az network vnet subnet create --resource-group <resource-group> \ --vnet-name <vnet-name> \ --name <apiserver-subnet-name> \ --delegations Microsoft.ContainerService/managedClusters \ --address-prefixes 172.19.0.0/28
Creare una subnet del cluster usando il comando
az network vnet subnet create
.az network vnet subnet create --resource-group <resource-group> \ --vnet-name <vnet-name> \ --name <cluster-subnet-name> \ --address-prefixes 172.19.1.0/24
Creare un'identità gestita e concedere le autorizzazioni per la rete virtuale
Creare un'identità gestita usando il comando
az identity create
.az identity create --resource-group <resource-group> --name <managed-identity-name> --location <location>
Assegnare il ruolo Collaboratore di rete alla subnet del server API usando il comando
az role assignment create
.az role assignment create --scope <apiserver-subnet-resource-id> \ --role "Network Contributor" \ --assignee <managed-identity-client-id>
Assegnare il ruolo Collaboratore di rete alla subnet del cluster usando il comando
az role assignment create
.az role assignment create --scope <cluster-subnet-resource-id> \ --role "Network Contributor" \ --assignee <managed-identity-client-id>
Distribuire un cluster pubblico
Distribuire un cluster del servizio Azure Kubernetes pubblico con l'Integrazione della rete virtuale del server API usando il comando
az aks create
con il flag--enable-api-server-vnet-integration
.az aks create --name <cluster-name> \ --resource-group <resource-group> \ --location <location> \ --network-plugin azure \ --enable-apiserver-vnet-integration \ --vnet-subnet-id <cluster-subnet-resource-id> \ --apiserver-subnet-id <apiserver-subnet-resource-id> \ --assign-identity <managed-identity-resource-id> \ --generate-ssh-keys
Distribuire un cluster privato
Distribuire un cluster del servizio Azure Kubernetes privato con l'Integrazione della rete virtuale del server API usando il comando
az aks create
con i flag--enable-api-server-vnet-integration
e--enable-private-cluster
.az aks create --name <cluster-name> \ --resource-group <resource-group> \ --location <location> \ --network-plugin azure \ --enable-private-cluster \ --enable-apiserver-vnet-integration \ --vnet-subnet-id <cluster-subnet-resource-id> \ --apiserver-subnet-id <apiserver-subnet-resource-id> \ --assign-identity <managed-identity-resource-id> \ --generate-ssh-keys
Convertire un cluster del servizio Azure Kubernetes esistente in Integrazione della rete virtuale del server API
È possibile convertire i cluster del servizio Azure Kubernetes pubblici/privati esistenti in cluster di Integrazione della rete virtuale del server API fornendo una subnet del server API che soddisfi i requisiti elencati in precedenza. Questi requisiti includono: nella stessa rete virtuale dei nodi del cluster, le autorizzazioni concesse per l'identità del cluster del servizio Azure Kubernetes, non usate da altre risorse come l'endpoint privato, e dimensioni di almeno /28. La conversione del cluster è una migrazione unidirezionale. I cluster non possono avere l’Integrazione della rete virtuale del server API disabilitata dopo che è stata abilitata.
Questo aggiornamento esegue un aggiornamento della versione dell'immagine del nodo in tutti i pool di nodi e riavvia tutti i carichi di lavoro durante l'aggiornamento di un'immagine in sequenza.
Avviso
La conversione di un cluster in Integrazione della rete virtuale del server API comporta una modifica dell'indirizzo IP del server API, anche se il nome host rimane invariato. Se l'indirizzo IP del server API è stato configurato in qualsiasi firewall o regola del gruppo di sicurezza di rete, potrebbe essere necessario aggiornare tali regole.
Aggiornare il cluster all'Integrazione della rete virtuale del server API usando il comando
az aks update
con il flag--enable-apiserver-vnet-integration
.az aks update --name <cluster-name> \ --resource-group <resource-group> \ --enable-apiserver-vnet-integration \ --apiserver-subnet-id <apiserver-subnet-resource-id>
Abilitare o disabilitare la modalità cluster privato in un cluster esistente con Integrazione della rete virtuale del server API
I cluster del servizio Azure Kubernetes configurati con Integrazione della rete virtuale del server API possono avere la modalità di accesso alla rete pubblica/cluster privato abilitata o disabilitata senza ridistribuire il cluster. Il nome host del server API non cambia, ma le voci DNS pubbliche vengono modificate o rimosse, se necessario.
Nota
--disable-private-cluster
è al momento è in anteprima. Per altre informazioni, vedere Livelli di riferimento e di supporto.
Abilitare la modalità cluster privato
Abilitare la modalità cluster privato usando il comando
az aks update
con il flag--enable-private-cluster
.az aks update --name <cluster-name> \ --resource-group <resource-group> \ --enable-private-cluster
Disabilitare la modalità cluster privato
Disabilitare la modalità cluster privato usando il comando
az aks update
con il flag--disable-private-cluster
.az aks update --name <cluster-name> \ --resource-group <resource-group> \ --disable-private-cluster
Connettersi al cluster usando kubectl
Configurare
kubectl
per connettersi al cluster usando il comandoaz aks get-credentials
.az aks get-credentials --resource-group <resource-group> --name <cluster-name>
Regole di sicurezza dei gruppi di sicurezza di rete
Tutto il traffico all'interno della rete virtuale è consentito per impostazione predefinita. Tuttavia, se sono state aggiunte regole del gruppo di sicurezza di rete per limitare il traffico tra subnet diverse, assicurarsi che le regole di sicurezza del gruppo di sicurezza di rete consentano i tipi di comunicazione seguenti:
Destinazione | Origine | Protocollo | Port | Utilizzo |
---|---|---|---|---|
APIServer Subnet CIDR | Cluster Subnet | TCP | 443 e 4443 | Obbligatorio per abilitare la comunicazione tra nodi e il server API. |
APIServer Subnet CIDR | Azure Load Balancer | TCP | 9988 | Obbligatorio per abilitare la comunicazione tra Azure Load Balancer e il server API. È anche possibile abilitare tutte le comunicazioni tra Azure Load Balancer e IL CIDR della subnet del server API. |
Passaggi successivi
Per le procedure consigliate associate, vedere Procedure consigliate per la connettività di rete e la sicurezza nel servizio Azure Kubernetes.
Azure Kubernetes Service