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.
Si applica a: ✔️ Servizio Azure Kubernetes Standard automatico ✔️ Servizio Azure Kubernetes standard
Un cluster Servizio Azure Kubernetes (AKS) configurato con API Server VNet Integration proietta l'endpoint del server API direttamente in una subnet delegata nella rete virtuale in cui viene 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.
Per la maggior parte dei carichi di lavoro di produzione, AKS Automatic è l'esperienza AKS predefinita consigliata. AKS Automatic è idoneo all'uso in produzione per impostazione predefinita e include l'integrazione della rete virtuale (VNet) del server API come funzionalità di sicurezza del cluster preconfigurata. In AKS Standard l'integrazione rete virtuale del server API è facoltativa e la si abilita durante la creazione del cluster o aggiornando un cluster esistente.
Per altre informazioni sul servizio Azure Kubernetes automatico, vedere Che cos'è Servizio Azure Kubernetes (AKS) automatico?
Integrazione rete virtuale del server API nel servizio Azure Kubernetes automatico e nel servizio Azure Kubernetes standard
L'integrazione VNet del server API è disponibile in entrambe le modalità del cluster AKS, ma la configurazione varia:
- AKS Automatic: l'integrazione del server API con la rete virtuale è preconfigurata.
- AKS Standard: l'integrazione VNet del server API è facoltativa e deve essere abilitata esplicitamente.
Per la maggior parte degli scenari di produzione, inizia con AKS Automatic per usare configurazioni predefinite pronte per la produzione e ridurre il sovraccarico operativo.
Connettività del server API
Il piano di controllo o il server API si trova in una sottoscrizione Azure gestita da AKS. Il cluster o il pool di nodi si trova nella tua 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.
Prerequisiti
- È necessario aver installato interfaccia della riga di comando di Azure versione 2.73.0 o successiva. È possibile controllare la versione usando il
az --versioncomando . - Se usi una rete virtuale personalizzata, consulta i prerequisiti della rete virtuale.
Limitazioni
Le seguenti limitazioni si applicano all'integrazione del server API con la VNet, sia che sia preconfigurata in AKS Automatic sia che sia abilitata esplicitamente in AKS Standard:
- L'integrazione VNet del server API non supporta la crittografia della rete virtuale. I cluster distribuiti su SKU di nodo AKS v3 o precedenti (che non supportano la Crittografia VNet) sono consentiti, ma il traffico non è crittografato. I cluster distribuiti in v4 o versioni successive di SKU del nodo del servizio Azure Kubernetes (che supportano la crittografia della rete virtuale) vengono bloccati perché le reti virtuali crittografate non sono compatibili con l'integrazione della rete virtuale del server dell'API. Per ulteriori informazioni, vedi SKU di VM supportate da AKS.
- Per usare la rete dual-stack, il cluster richiede Kubernetes versione 1.26.3 o successiva, il plug-in di rete
azuree la modalitàoverlaydel plug-in di rete. Per ulteriori informazioni, vedere cluster CNI di Azure con rete a doppio stack.
Availability
- L'integrazione VNet del server API è disponibile in tutte le regioni del cloud pubblico GA, ad eccezione di QatarCentral.
Creare un cluster con integrazione rete virtuale del server API
AKS Automatico (impostazione predefinita consigliata per la produzione)
In AKS Automatic, l'integrazione della rete virtuale (VNet) del server API è preconfigurata. Non è necessario alcun flag esplicito --enable-apiserver-vnet-integration.
Creare un cluster del servizio Azure Kubernetes automatico seguendo l'avvio rapido:
AKS Standard: rete virtuale gestita
È possibile configurare i cluster Standard di AKS con l'integrazione della rete virtuale del server API in modalità VNet gestita come cluster pubblici o privati.
Note
L'integrazione rete virtuale del server API non è disponibile in qatarcentral.
Creare un gruppo di risorse
Creare un gruppo di risorse usando il comando az group create.
az group create --location <location> --name <resource-group>
Distribuire un cluster pubblico
Distribuire un cluster nel servizio Azure Kubernetes standard pubblico con l'integrazione rete virtuale del server API per una rete virtuale gestita usando il comando az aks create con il flag --enable-apiserver-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
Distribuisci un cluster AKS Standard privato con l'integrazione della rete virtuale del server API per una rete virtuale gestita usando il comando az aks create con i flag --enable-apiserver-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
AKS Standard: rete virtuale personalizzata
Quando si usa una rete virtuale bring-your-own, è necessario creare e delegare una subnet del server API a Microsoft.ContainerService/managedClusters. Questa delega concede al servizio AKS le autorizzazioni per iniettare i pod del server API e il bilanciatore 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. La dimensione minima supportata della subnet del server API è /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 AKS riserva almeno nove indirizzi IP nello spazio di indirizzamento della subnet. L'esaurimento degli indirizzi IP può impedire il ridimensionamento del server API e causare un'interruzione del server API.
Note
L'integrazione rete virtuale del server API non è disponibile in qatarcentral.
Creare un gruppo di risorse
Creare un gruppo di risorse usando il comando az group create.
az group create --location <location> --name <resource-group>
Crea 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/16Creare 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/28Creare 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-apiserver-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-apiserver-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 AKS Standard esistente all'integrazione della rete virtuale del server API
Avviso
L'integrazione della rete virtuale del server API è una funzionalità unidirezionale e sensibile alla capacità. Quando si abilita l'integrazione rete virtuale del server API in un cluster standard del servizio Azure Kubernetes esistente, si applicano le limitazioni seguenti:
-
Riavvio manuale obbligatorio: dopo aver abilitato l'integrazione rete virtuale del server API usando
az aks update --enable-apiserver-vnet-integration, a causa della transizione delle risorse del piano di controllo, è necessario riavviare immediatamente il cluster per rendere effettiva la modifica. Questo riavvio non è automatizzato. Il ritardo del riavvio aumenta il rischio di mancata disponibilità della capacità, che può impedire l'avvio del server API. Il riavvio del cluster garantisce anche che tutti i nodi si riconnettano in modo affidabile al nuovo endpoint server API. - La capacità viene convalidata, ma non riservata: il servizio Azure Kubernetes convalida la capacità a livello di area quando si abilita la funzionalità in un cluster esistente, ma questa convalida non riserva capacità. Se si ritarda il riavvio e la capacità non è più disponibile nel frattempo, il cluster potrebbe non essere avviato dopo un arresto o un riavvio. I cluster che hanno abilitato questa funzionalità prima della disponibilità generale (GA) o che non sono ancora stati riavviati dopo l'abilitazione, non subiscono la convalida della capacità.
- Non è possibile disabilitare la funzionalità: una volta abilitata, la funzionalità è permanente. Non è possibile disabilitare l'integrazione rete virtuale del server API.
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 si configura l'indirizzo IP del server API in qualsiasi firewall o regole 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 updatecon 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>Riavviare il cluster usando i comandi [
az aks stop][az-aks-stop] e [az aks start][az-aks-start].az aks stop --name <cluster-name> --resource-group <resource-group> az aks start --name <cluster-name> --resource-group <resource-group>
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.
Note
--disable-private-cluster è attualmente 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 \
--enable-apiserver-vnet-integration \
--apiserver-subnet-id <apiserver-subnet-resource-id>
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 comando az aks get-credentials.
az aks get-credentials --resource-group <resource-group> --name <cluster-name>
Esporre il server API tramite collegamento privato
È possibile esporre l'endpoint server API di un cluster privato con Integrazione rete virtuale del server API usando collegamento privato di Azure. I passaggi seguenti illustrano come creare un servizio collegamento privato (PLS) nella rete virtuale del cluster e connetterlo da un'altra rete virtuale o sottoscrizione usando un endpoint privato.
Note
L'integrazione rete virtuale del server API non è disponibile in qatarcentral.
Creare un cluster privato per l'integrazione VNet del server API
Crea un cluster AKS privato con Integrazione VNet del server API utilizzando il comando az aks create con i flag --enable-apiserver-vnet-integration e --enable-private-cluster.
az aks create --name <cluster-name> \
--resource-group <resource-group> \
--location <location> \
--enable-private-cluster \
--enable-apiserver-vnet-integration
Per altre indicazioni su come configurare collegamento privato con Integrazione rete virtuale del server API, vedere collegamento privato con Integrazione rete virtuale del server API.
Regole di sicurezza del gruppo di sicurezza di rete (NSG)
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:
| Destination | Source (Sorgente) | Protocollo | Porto | Uso |
|---|---|---|---|---|
| CIDR subnet APIServer | Subnet del cluster | TCP | 443 e 4443 | Obbligatorio per abilitare la comunicazione tra i nodi e il server API. |
| CIDR subnet APIServer | 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 il Azure Load Balancer e il CIDR della subnet del server API. |
Contenuti correlati
- Creare un cluster automatico di AKS
- Per le procedure consigliate associate, vedere Procedure consigliate per la connettività di rete e la sicurezza nel servizio Azure Kubernetes.
- Per indicazioni su come configurare collegamento privato con l'integrazione della rete virtuale del server API, vedere collegamento privato con Integrazione rete virtuale del server API.