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.
Potrebbe non essere necessario eseguire continuamente i carichi di lavoro del servizio Azure Kubernetes. Ad esempio, potrebbe essere disponibile un cluster di sviluppo usato solo durante l'orario di ufficio. Ciò significa che ci sono momenti in cui il cluster potrebbe essere inattivo, che non esegue altro che i componenti di sistema. È possibile ridurre il footprint del cluster ridimensionando tutti i pool di nodi User a 0, ma è ancora necessario che il Systempool esegua i componenti di sistema mentre il cluster è in esecuzione.
Per ottimizzare meglio i costi durante questi periodi, è possibile disattivare o arrestare il cluster. Questa azione arresta il piano di controllo e i nodi dell'agente, consentendo di risparmiare su tutti i costi di calcolo, mantenendo comunque tutti gli oggetti ad eccezione dei pod autonomi. Lo stato del cluster viene archiviato per quando viene avviato di nuovo, consentendo di riprendere la posizione in cui è stato interrotto.
Attenzione
L'arresto del cluster dealloca il piano di controllo e rilascia la capacità. Nelle aree che riscontrano vincoli di capacità, i clienti potrebbero non essere in grado di avviare un cluster arrestato. Non è consigliabile arrestare carichi di lavoro cruciali per questo motivo.
Nota
Le operazioni di avvio di AKS ripristinano tutti gli oggetti da ETCD, ad eccezione dei pod autonomi con lo stesso nome e con la stessa età. cioè che l'età di un pod continuerà a essere calcolata dal tempo di creazione originale. Questo numero continua ad aumentare nel tempo, indipendentemente dal fatto che il cluster sia in uno stato arrestato o meno.
Operazioni preliminari
Questo articolo presuppone che sia presente un cluster AKS esistente. Se hai bisogno di un cluster AKS, puoi crearne uno usando Azure CLI, Azure PowerShell o il portale di Azure.
Informazioni sulla funzionalità di arresto/avvio del cluster
Quando si usa la funzionalità di arresto/avvio del cluster, si applicano le condizioni seguenti:
- Questa funzionalità è supportata solo per i cluster supportati dal set di scalabilità di macchine virtuali.
- Non è possibile arrestare i cluster che usano la funzionalità di Node Autoprovisioning (NAP).
- Lo stato del cluster di un cluster AKS arrestato viene mantenuto per un massimo di 12 mesi. Se il cluster è fermo per più di 12 mesi, non sarà possibile ripristinare lo stato. Per ulteriori informazioni, consultare i criteri di supporto di AKS.
- È possibile eseguire solo operazioni di avvio o eliminazione su un cluster AKS arrestato. Per eseguire altre operazioni, ad esempio il ridimensionamento o l'aggiornamento, è prima necessario avviare il cluster.
- Se sono stati configurati PrivateEndpoints collegati a cluster privati, è necessario eliminarli e ricrearli all'avvio di un cluster AKS arrestato.
- Poiché il processo di arresto svuota tutti i nodi, tutti i pod autonomi (ad esempio i pod non gestiti da un oggetto Deployment, StatefulSet, DaemonSet, Job e così via) verranno eliminati.
- Quando si avvia il backup del cluster, è previsto il comportamento seguente:
- L'indirizzo IP del server API può cambiare.
- Se si usa il ridimensionamento automatico del cluster, quando si avvia il cluster il numero di nodi corrente potrebbe non essere compreso tra i valori di intervallo minimo e massimo impostati. Il cluster inizia con il numero di nodi necessari per eseguire i carichi di lavoro, che non sono influenzati dalle impostazioni dell'utilità di scalabilità automatica. Quando il cluster esegue operazioni di ridimensionamento, i valori minimo e massimo incideranno sul numero di nodi corrente e il cluster alla fine verrà attivato e rimarrà nell'intervallo desiderato fino a quando non viene arrestato.
Arrestare un cluster del servizio Azure Kubernetes
Attenzione
Se il tuo cluster ha un ValidatingWebhookConfiguration o MutatingWebhookConfiguration la cui configurazione può essere applicata alle risorse con ambito cluster gestite da AKS durante le operazioni di arresto/avvio (come nodi, lease o clusterroles), l'operazione di arresto potrebbe essere rifiutata con un ValidationError. Sono inclusi i webhook con regole wildcard (*) in apiGroups o resources. Per risolvere il problema, limitare le regole del webhook solo alle risorse necessarie (evitare caratteri jolly), definire l'ambito del webhook alle risorse con spazio dei nomi usando scope: Namespaced, namespaceSelector, impostare failurePolicy su Ignore o rimuovere il webhook prima dell'arresto.
Usare il comando
az aks stopper arrestare un cluster AKS in esecuzione, inclusi i nodi e il piano di controllo. L'esempio seguente arresta un cluster denominato myAKSCluster:az aks stop --name myAKSCluster --resource-group myResourceGroupVerificare che il cluster sia stato arrestato usando il comando
az aks showe confermando chepowerStatecompaia comeStopped.az aks show --name myAKSCluster --resource-group myResourceGroupL'output dovrebbe essere simile all'output di esempio condensato seguente:
{ [...] "nodeResourceGroup": "MC_myResourceGroup_myAKSCluster_westus2", "powerState":{ "code":"Stopped" }, "privateFqdn": null, "provisioningState": "Succeeded", "resourceGroup": "myResourceGroup", [...] }Se
provisioningStatecompare comeStopping, il cluster non è ancora arrestato completamente.
Importante
Se si usano budget di interruzione dei pod, l'operazione di arresto può richiedere più tempo, perché il processo di svuotamento richiederà più tempo per il completamento.
Avviare un cluster di Azure Kubernetes Service
Attenzione
Dopo aver utilizzato la funzionalità di avvio/arresto nel servizio Azure Kubernetes, è essenziale attendere 15-30 minuti prima di riavviare il cluster del servizio Azure Kubernetes. Questo periodo di attesa è necessario perché l'arresto completo dei servizi pertinenti richiede alcuni minuti. Il tentativo di riavviare il cluster durante questo processo può interrompere il processo di arresto e potenzialmente causare problemi con il cluster o i relativi carichi di lavoro.
Usare il comando
az aks startper avviare un cluster AKS arrestato. Il cluster si riavvia con lo stato del piano di controllo precedente e il numero di nodi agente. L'esempio seguente avvia un cluster denominato myAKSCluster:az aks start --name myAKSCluster --resource-group myResourceGroupVerificare che il cluster abbia iniziato a usare il comando
az aks showe confermare chepowerStatemostriRunning.az aks show --name myAKSCluster --resource-group myResourceGroupL'output dovrebbe essere simile all'output di esempio condensato seguente:
{ [...] "nodeResourceGroup": "MC_myResourceGroup_myAKSCluster_westus2", "powerState":{ "code":"Running" }, "privateFqdn": null, "provisioningState": "Succeeded", "resourceGroup": "myResourceGroup", [...] }Se il
provisioningStatemostraStarting, il cluster non è ancora stato avviato completamente.
Passaggi successivi
- Per informazioni su come ridimensionare i pool
Usera 0, vedere Ridimensionare i pool diUsera 0. - Per informazioni su come risparmiare sui costi usando istanze spot, vedere Aggiungere un pool di nodi spot al servizio Azure Kubernetes.
- Per altre informazioni sui criteri di supporto del servizio Azure Kubernetes, vedere Criteri di supporto del servizio Azure Kubernetes.