Concetti di base del servizio Azure Kubernetes

Questo articolo descrive i concetti di base del servizio Azure Kubernetes, un servizio Kubernetes gestito utilizzabile per distribuire e gestire applicazioni in contenitori su larga scala in Azure.

Che cos'è Kubernetes?

Kubernetes è una piattaforma di orchestrazione di contenitori open source per automatizzare la distribuzione, il ridimensionamento e la gestione delle applicazioni in contenitori. Per altre informazioni, vedere la documentazione ufficiale di Kubernetes.

Che cos'è il servizio Azure Kubernetes?

Il servizio Azure Kubernetes è un servizio Kubernetes gestito che semplifica la distribuzione, la gestione e il ridimensionamento delle applicazioni in contenitori con Kubernetes. Per altre informazioni, vedere Che cos'è il servizio Azure Kubernetes?

Componenti del cluster

Un cluster del servizio Azure Kubernetes è suddiviso in due componenti principali:

  • Piano di controllo: Il piano di controllo offre i servizi Kubernetes di base e l'orchestrazione dei carichi di lavoro dell'applicazione.
  • Nodi: I nodi sono le macchine virtuali sottostanti che eseguono le applicazioni.

Screenshot dei componenti del piano di controllo e dei nodi Kubernetes

Piano di controllo

Il piano di controllo gestito di Azure è costituito da diversi componenti che consentono di gestire il cluster:

Componente Descrizione
kube-apiserver Il server API (kube-apiserver) espone l'API Kubernetes per abilitare le richieste al cluster dall'interno e dall'esterno del cluster.
etcd L’etcd è un archivio chiave-valore a disponibilità elevata che consente di mantenere lo stato del cluster e della configurazione Kubernetes.
kube-scheduler L'utilità di pianificazione (kube-scheduler) consente di prendere decisioni di pianificazione, di controllare i nuovi pod senza nodo assegnato e di selezionare un nodo per l'esecuzione.
kube-controller-manager Il gestore controller (kube-controller-manager) esegue processi controller, ad esempio la notazione e la risposta quando i nodi vengono disattivati.
cloud-controller-manager Il gestore controller cloud (cloud-controller-manager) incorpora la logica di controllo specifica del cloud per eseguire controller specifici del provider di servizi cloud.

Nodi

Ogni cluster del servizio Azure Kubernetes ha almeno un nodo, ovvero una macchina virtuale di Azure che esegue i componenti del nodo Kubernetes. I componenti seguenti vengono eseguiti in ogni nodo:

Componente Descrizione
kubelet Il kubelet garantisce che i contenitori siano in esecuzione in un pod.
kube-proxy Il kube-proxy è un proxy di rete che gestisce le regole della rete nei nodi.
container runtime Il runtime del contenitore gestisce l'esecuzione e il ciclo di vita dei contenitori.

Screenshot della macchina virtuale di Azure e risorse di supporto per un nodo di Kubernetes

Configurazione nodi

Dimensioni e immagine della macchina virtuale

Le dimensioni delle macchine virtuali di Azure per i nodi definiscono CPU, memoria, dimensioni e tipo di risorsa di archiviazione disponibile, ad esempio unità SSD ad alte prestazioni o HDD standard. Le dimensioni delle macchine virtuali scelte dipendono dai requisiti del carico di lavoro e dal numero di pod che si prevede di eseguire in ogni nodo. Per altre informazioni, vedere Dimensioni delle macchine virtuali supportate nel servizio Azure Kubernetes.

Nel servizio Azure Kubernetes l'immagine della macchina virtuale per i nodi del cluster si basa su Ubuntu Linux, Azure Linux o Windows Server 2022. Quando si crea un cluster AKS o si riduce il numero di nodi, la piattaforma Azure crea e configura automaticamente il numero di macchine virtuali richiesto. I nodi dell'agente vengono fatturati come macchine virtuali standard, quindi vengono applicati automaticamente eventuali sconti sulle dimensioni delle macchine virtuali, incluse le prenotazioni di Azure.

Dischi del sistema operativo

Le dimensioni predefinite del disco del sistema operativo sono usate solo per nuovi cluster o pool di nodi quando i dischi del sistema operativo temporanei non sono supportati e non viene specificata una dimensione predefinita del disco del sistema operativo. Per altre informazioni, vedere Dimensioni predefinite del disco del sistema operativo e dischi temporanei del sistema operativo.

Prenotazioni di risorse

Il servizio Azure Kubernetes usa le risorse del nodo per facilitare la funzione del nodo nell’ambito del cluster. Questo utilizzo può causare una discrepanza tra le risorse totali del nodo e le risorse allocabili nel servizio Azure Kubernetes. Per mantenere le prestazioni e le funzionalità del nodo, il servizio Azure Kubernetes riserva due tipi di risorse, CPU e memoria, in ogni nodo. Per altre informazioni, vedere Prenotazioni di risorse nel servizio Azure Kubernetes.

Sistema operativo

Il servizio Azure Kubernetes supporta Ubuntu 22.04 e Azure Linux 2.0 come sistema operativo del nodo per i pool di nodi Linux. Per i pool di nodi Windows, il servizio Azure Kubernetes supporta Windows Server 2022 come sistema operativo predefinito. Windows Server 2019 verrà ritirato quando la versione 1.32 di Kubernetes raggiungerà fine della sua durata e non sarà supportato da versioni future. Se è necessario aggiornare la versione del sistema operativo Windows, vedere Eseguire l'aggiornamento da Windows Server 2019 a Windows Server 2022. Per altre informazioni sull'uso di Windows Server nel servizio Azure Kubernetes, vedere Considerazioni sui contenitori di Windows nel servizio Azure Kubernetes.

Runtime del contenitore

Il runtime del contenitore è un software che esegue i contenitori e gestisce le immagini del contenitore in un nodo. Il runtime consente di estrapolare le chiamate di sistema o le funzionalità specifiche del sistema operativo per eseguire contenitori in Linux o Windows. Per pool di nodi Linux, containerd viene usato in Kubernetes versione 1.19 e successive. Per pool di nodi di Windows Server 2019 e 2022, containerd è generalmente disponibile ed è l'unica opzione di runtime in Kubernetes versione 1.23 e successive.

Pod

Un pod è un gruppo di uno o più contenitori che condividono le stesse risorse di rete e di archiviazione e una specifica per l'esecuzione dei contenitori. I pod hanno in genere un mapping 1:1 con un contenitore, ma è possibile eseguire più contenitori in un singolo pod.

Pool di nodi

Nel servizio Azure Kubernetes i nodi della stessa configurazione sono raggruppati in pool di nodi. Questi pool di nodi contengono i set di scalabilità di macchine virtuali sottostanti e le macchine virtuali che eseguono le applicazioni. Quando si crea un cluster del servizio Azure Kubernetes, si definisce il numero iniziale di nodi e le relative dimensioni (SKU), che crea un pool di nodi di sistema. I pool di nodi di sistema vengono usati principalmente per l'hosting di pod di sistema critici, tra cui CoreDNS e konnectivity. Per supportare applicazioni con esigenze di calcolo o archiviazione diverse, è possibile creare pool di nodi utente. I pool di nodi utente servono allo scopo principale di ospitare i pod dell'applicazione.

Per altre informazioni, vedere Creare pool di nodi nel servizio Azure Kubernetes e Gestire i pool di nodi nel servizio Azure Kubernetes.

Gruppo di risorse del nodo

Quando si crea un cluster del servizio Azure Kubernetes in un gruppo di risorse di Azure, il provider di risorse del servizio Azure Kubernetes crea automaticamente un secondo gruppo di risorse denominato gruppo di risorse del nodo. Questo gruppo di risorse contiene tutte le risorse dell'infrastruttura associate al cluster, incluse le macchine virtuali, i set di scalabilità di macchine virtuali e l'archiviazione.

Per ulteriori informazioni, vedi le seguenti risorse:

Namespaces (Spazi dei nomi)

Le risorse di Kubernetes, ad esempio pod e distribuzioni, vengono raggruppate logicamente in spazi dei nomi per dividere un cluster del servizio Azure Kubernetes e limitare la creazione, la visualizzazione o la gestione dell'accesso alle risorse.

Gli spazi dei nomi seguenti vengono creati per impostazione predefinita in un cluster del servizio Azure Kubernetes:

Spazio dei nomi Descrizione
default Lo spazio dei nomi predefinito consente di iniziare a usare le risorse del cluster senza creare un nuovo spazio dei nomi.
kube-node-lease Lo spazio dei nomi kube-node-lease consente ai nodi di comunicare la disponibilità al piano di controllo.
kube-public Lo spazio dei nomi kube-public solitamente non viene usato, ma può essere usato per rendere visibili le risorse dell'intero cluster da parte di qualsiasi utente.
kube-system Lo spazio dei nomi kube-system viene usato da Kubernetes per gestire le risorse del cluster, ad esempio coredns, konnectivity-agent e metrics-server.

Screenshot degli spazi dei nomi di Kubernetes per dividere in modo logico risorse e applicazioni

Modalità cluster

Nel servizio Azure Kubernetes è possibile creare un cluster con la modalità Automatica (anteprima) o Standard. Il servizio Azure Kubernetes in modalità Automatica offre un'esperienza completamente gestita, gestendo la configurazione del cluster, inclusi nodi, scalabilità, sicurezza e altre impostazioni preconfigurate. Il servizio Azure Kubernetes in modalità Standard offre un maggiore controllo sulla configurazione del cluster, inclusa la possibilità di gestire pool di nodi, ridimensionamento e altre impostazioni.

Per altre informazioni, vedere Confronto tra le funzionalità Automatiche e Standard del servizio Azure Kubernetes.

Piani tariffari

Il servizio Azure Kubernetes offre tre piani tariffari per la gestione dei cluster: Gratuito, Standard e Premium. Il piano tariffario scelto determina le funzionalità disponibili per la gestione del cluster.

Per altre informazioni, vedere Piani tariffari per la gestione dei cluster del servizio Azure Kubernetes.

Versioni di Kubernetes supportate

Per altre informazioni, vedere Versioni Kubernetes supportate nel servizio Azure Kubernetes.

Passaggi successivi

Per informazioni sui concetti di base del servizio Azure Kubernetes, consultare le risorse seguenti: