Azure Kubernetes: cos'è, pricing e best practice per l'uso

Azure Kubernetes Service (AKS) è una soluzione di orchestrazione di container offerta da Microsoft Azure, progettata per semplificare la gestione, il deployment e l'operatività di applicazioni containerizzate su larga scala. AKS integra la potenza di Kubernetes, uno dei sistemi open-source più diffusi per l'orchestrazione di container, con la flessibilità e la sicurezza della piattaforma cloud di Azure. Con AKS, le aziende possono concentrarsi sulla creazione di valore aggiunto attraverso le loro applicazioni, lasciando ad Azure il compito di gestire l'infrastruttura sottostante.

Cosa troverai in questo articolo

  • Cos'è Azure Kubernetes?
  • Azure Kubernetes Service: caratteristiche e architettura
  • Azure Kubernetes: best practice per la sicurezza
  • Azure Kubernetes Pricing: pay-as-you-go, Reserved Instances e Saving Plans
Azure Kubernetes: cos'è, pricing e best practice per l'uso

Cos'è Azure Kubernetes?

Nel mondo del software development, non è inusuale che spuntino novità che possono radicalmente cambiare il modo di sviluppare e distribuire il proprio codice e le proprie applicazioni. Quando i container sono apparsi per la prima volta sulla scena hanno rivoluzionato il deployment del software e Kubernetes è diventato la piattaforma di orchestrazione di riferimento per gestire applicazioni containerizzate.

Tuttavia, Kubernetes, per quanto estremamente utile, può diventare complesso da gestire e mantenere, a livelli che non è troppo esagerato definire frustranti alle volte.

Ma niente paura, Microsoft ha la soluzione che fa al caso nostro.

Azure Kubernetes Service (AKS) è un servizio gestito di orchestrazione dei container basato sul sistema open source Kubernetes, disponibile nel cloud pubblico di Microsoft Azure. AKS offre tuti i vantaggi di Kubernetes e allo stesso tempo aiuta a ridurre le difficoltà di gestire ambienti di orchestrazione, consentendo alle organizzazioni di concentrarsi su funzionalità critiche come il deployment, la scalabilità e la gestione di container (e applicazioni basate su container) in maniera più efficace.

Come? Vediamolo nelle prossime sezioni.

Che cos’è Kubernetes?

Kubernetes (comunemente chiamato K8s) è stato originariamente progettato da Google ed è ora mantenuto dalla Cloud Native Computing Foundation. È stato annunciato per la prima volta a metà del 2014 e la sua versione 1.0 è stata rilasciata il 21 luglio 2015.

Kubernetes è diventato sin dalla sua prima uscita la piattaforma più popolare per l'orchestrazione di container e la gestione dei carichi di lavoro containerizzati.

Ma cos’è un container?

Altro non è che un'unità leggera e portatile di software che include tutto il necessario per eseguire un'applicazione: il codice, le librerie, le dipendenze e i runtime necessari. I container permettono di isolare l'applicazione dal sistema operativo sottostante, assicurando che questa funzioni in modo coerente su qualsiasi ambiente, sia esso di sviluppo, testing o produzione.

Kubernetes si occupa di avviare i container, assicurarli che rimangano attivi, distribuirli su diversi computer nel modo più efficiente, e scalare (aumentare o diminuire) il numero di container in base alle necessità dell'applicazione (una serie di attività che prendono il nome di “orchestrazione”) e viene ormai ampiamente utilizzato perché semplifica molto il lavoro dei software engineer nell’organizzazione e pianificazione delle applicazioni su più macchine.

La piattaforma è estensibile e altamente configurabile, il che significa che i cluster Kubernetes possono essere personalizzati con diverse configurazioni ed add-on per soddisfare le esigenze di diversi ambienti di lavoro.

Kubernetes offre numerose funzionalità per eseguire carichi di lavoro containerizzati, tra cui modelli di deployment, orchestrazione dello storage, service discovery, bilanciamento del carico, rollout e rollback automatici, e auto-riparazione dei container.

Sai che aiutiamo i nostri clienti nella gestione dei loro tenant Azure?

Abbiamo creato il team Infra&Security, verticale sul cloud Azure, per rispondere alle esigenze dei clienti che ci coinvolgono nelle decisioni tecniche e strategiche. Oltre a configurare e gestire il loro tenant, ci occupiamo di:

  • ottimizzare i costi delle risorse
  • implementare procedure di scaling e high availability
  • creare deployment applicativi tramite le pipeline di DevOps
  • monitoring
  • e soprattutto security!

Con Dev4Side, hai un partner affidabile in grado di supportarti sull'intero ecosistema applicativo di Microsoft.

Azure Kubernetes Service: caratteristiche e architettura

Data la natura complessa dei componenti sopra elencati, eseguire e gestire un cluster Kubernetes su larga scala richiede sforzo ed esperienza. Oltre ai componenti infrastrutturali sottostanti (come server, storage e networking), tutti i componenti caratteristici di Kubernetes devono essere resi operativi, protetti, mantenuti, scalati e aggiornati quando necessario.

Gestire un cluster Kubernetes personalizzato potrebbe richiedere l'impiego di un team dedicato di ingegneri per tutte le attività operative. Questo è ideale se il proprio core business riguarda la creazione di strumenti per l'ecosistema Kubernetes o se si ha una necessità specifica che obbliga a gestire i propri cluster. Tuttavia, nella maggior parte degli altri casi, è meglio delegare questi compiti di gestione del cluster a un servizio dedicato. Ed è qui che entra in gioco Azure Kubernetes.

AKS è un servizio gestito che consente alle organizzazioni e ai loro team di semplificare il deployment, la scalabilità e la gestione dei cluster Kubernetes, permettendo loro di distribuire rapidamente app cloud-native nell'ambiente scelto, come il cloud Azure, i data center e il perimetro della rete. Aiuta a gestire il carico di lavoro associato all'utilizzo di Kubernetes, riducendo la complessità delle operazioni di deployment e gestione in Kubernetes. AKS è progettato per le organizzazioni che desiderano costruire applicazioni scalabili utilizzando Docker e Kubernetes all'interno dell'architettura di Azure.

Come servizio gestito fornito da Microsoft, AKS configura automaticamente tutti i nodi Kubernetes che controllano e gestiscono i nodi di lavoro durante il deployment. Si occupa anche di altri compiti, tra cui governance, scalabilità del cluster, connessioni ai servizi di monitoraggio e configurazione delle funzionalità avanzate di rete. Gli utenti possono monitorare un cluster direttamente o visualizzare tutti i cluster tramite Azure Monitor.

I principali vantaggi di AKS sono la flessibilità, l'automazione e la riduzione del carico di gestione e aiuta anche ad accelerare lo sviluppo e il deployment di app cloud-native. Fornisce configurazioni predefinite di cluster per Kubernetes, pipeline integrate per il passaggio del codice al cloud e meccanismi di sicurezza che facilitano operazioni come:

  • Avviare cluster Kubernetes gestiti
  • Sviluppare e fare debug di applicazioni basate su microservizi
  • Semplificare il runtime e la portabilità
  • Impostare una strategia di deployment per i test
  • Rilevare i guasti

Le configurazioni dei nodi AKS possono essere personalizzate per adattare le impostazioni del sistema operativo (OS) o i parametri del kubelet, a seconda del carico di lavoro. Inoltre, i nodi possono essere scalati verso l'alto o verso il basso per adattarsi alle fluttuazioni delle richieste di risorse. Per una potenza di elaborazione aggiuntiva, ad esempio per eseguire carichi di lavoro ad alta intensità di risorse, AKS supporta pool di nodi abilitati per unità di elaborazione grafica (GPU).

Ancora, gli utenti possono definire pool di nodi personalizzati per supportare applicazioni con diverse esigenze di calcolo o archiviazione e creare tag personalizzati per modificare le risorse.

AKS si integra con Azure Container Registry per creare e gestire immagini di container e artefatti correlati (anche se prima deve essere stabilito un meccanismo di autenticazione). Inoltre, poiché AKS supporta Azure Disks, gli utenti possono creare dinamicamente volumi persistenti in AKS per l'uso con i pod Kubernetes.

Per comprendere meglio il funzionamento di Azure Kubernetes andiamo adesso a vedere più da vicino i singoli componenti che caratterizzano la sua architettura e come operano all’interno del quadro generale di Kubernetes.

Azure Kubernetes Cluster e Control Plane

In Kubernetes, un "cluster" è un insieme di nodi (server fisici o virtuali) che lavorano insieme per eseguire applicazioni containerizzate. Il cluster rappresenta l'infrastruttura di base su cui Kubernetes gestisce il ciclo di vita delle applicazioni.

Il piano di controllo (Control Plane) di AKS funge da cervello del cluster Kubernetes, gestendo il suo stato, pianificando i carichi di lavoro e assicurando che la configurazione desiderata venga mantenuta. Il piano di controllo di AKS è completamente gestito da Microsoft, il che significa che gli amministratori IT non devono preoccuparsi di gestire o mantenere questi componenti da soli e possono concentrarsi esclusivamente sul deployment e sulla gestione delle loro applicazioni.

Relazione tra il control plane e i nodi nell'architettura Kubernetes di AKS

Node Pools

I node pools sono essenzialmente gruppi di macchine virtuali (VM) responsabili dell'hosting dei container. In un tipico cluster AKS, ci sono almeno due node pool: un System Node Pool e un Application Node Pool. Sebbene sia possibile eseguire i container dei carichi di lavoro delle applicazioni solo nel system node pool, non è una pratica comune.

System Node Pool

Il system node pool è un node pool speciale all'interno del cluster AKS che viene automaticamente creato quando si configura un cluster AKS. È dedicato all'hosting dei servizi a livello di sistema essenziali per il funzionamento del cluster Kubernetes stesso. Questi componenti di sistema includono metrics-server, CoreDNS e altri componenti critici necessari per la gestione del cluster e la rete.

Nota bene: Il piano di controllo non viene eseguito nel system node pool. Sia il piano di controllo che il system node pool sono componenti essenziali di un cluster AKS, ma svolgono funzioni diverse e operano indipendentemente l'uno dall'altro. Il piano di controllo è gestito da Azure, mentre il system node pool è gestito dal cluster Kubernetes stesso per supportare le sue operazioni interne.

Application Node Pool

Gli application node pools in AKS servono principalmente a ospitare i propri pod applicativi. Sebbene sia tecnicamente possibile ospitare applicazioni direttamente nei system node pool, questa non è la pratica comune. Tipicamente, si crea almeno un application node pool separato e, se necessario, è possibile averne più di uno. Ad esempio, potresti avere un node pool ottimizzato per eseguire carichi di lavoro a bassa domanda e un altro dedicato a compiti più intensivi, dotato di GPU.

In AKS, ogni node pool è composto da un insieme identico di macchine virtuali che possono essere scalate orizzontalmente verso l'alto o verso il basso. Ad esempio, un node pool potrebbe includere VM B2s, mentre un altro potrebbe utilizzare VM NV12s_v3 con GPU. Tuttavia, è importante notare che non è possibile mescolare e abbinare diverse specifiche di VM all'interno dello stesso node pool.

Node

Un nodo in AKS è essenzialmente una macchina virtuale (VM) che opera all'interno di un node pool. Ogni nodo ha lo scopo di eseguire uno o più pod, che sono le unità fondamentali di deployment in Kubernetes. Queste macchine virtuali sono gestite da Azure, che fornisce provisioning automatico e consente di personalizzare gli attributi di scalabilità orizzontale secondo le tue necessità.

Definendo i parametri di scalabilità del Node Pool, puoi garantire che il proprio cluster AKS regoli dinamicamente il numero di nodi (VM) per soddisfare in modo efficiente le varie esigenze dei carichi di lavoro.

Pod

I pod sono le unità fondamentali in Kubernetes responsabili dell'incapsulamento dei container.

In Kubernetes, un pod rappresenta una singola istanza della tua applicazione, con ogni pod che di solito ha una corrispondenza uno a uno con un container. Tuttavia, in scenari avanzati, un pod può contenere più container strettamente accoppiati, noti come container sidecar. I container sidecar lavorano insieme al container principale, estendendone la funzionalità e fornendo servizi aggiuntivi.

Namespace

Oltre ai componenti principali, è degno di menzione anche il concetto di namespace in Kubernetes.

Un namespace consente di suddividere il cluster AKS in più cluster virtuali. Anche se non offre un isolamento completo, i namespace forniscono un livello di isolamento logico che può essere utile in determinati scenari. Questo permette di definire limiti di utilizzo delle risorse, gestire il controllo degli accessi e separare diversi team di progetto o ambienti come staging o sviluppo all'interno dello stesso cluster AKS, senza la necessità di configurare cluster separati da zero.

Azure Kubernetes: best practice per la sicurezza

Per distribuire i propri carichi di lavoro in modo sicuro nei cluster AKS, ci sono alcune pratiche di sicurezza imprescindibili da adottare per garantire il massimo della sicurezza. Esaminiamole più da vicino insieme ai passaggi concreti che possono essere intrapresi per mitigare i rischi.

Integrazione con Microsoft Entra ID per la gestione degli accessi e delle identità

I cluster AKS possono essere integrati con Microsoft Entra ID (precedentemente noto come Azure AD), il servizio di identità gestito da Azure per l'autenticazione e l'autorizzazione. Puoi creare Kubernetes Roles, ClusterRoles, RoleBindings e ClusterRoleBindings e integrarli con gli utenti e i gruppi di Microsoft Entra ID per definire le autorizzazioni di accesso.

AKS è anche pienamente interoperabile con il controllo degli accessi basato sui ruoli di Kubernetes (RBAC). Abbiamo la possibilità di creare un ruolo in Kubernetes RBAC e quindi creare un binding del ruolo per associarlo a un utente o gruppo di Azure Entra ID. Utilizzare ruoli e binding aiuta nella separazione logica e nel controllo degli accessi alle risorse.

Per l'accesso alle risorse del cluster AKS si può utilizzare Azure RBAC e sfruttare il principio del minimo privilegio per fornire un accesso controllato alle risorse AKS incluse nella propria sottoscrizione. L'accesso all'API di Kubernetes può essere controllato tramite il tradizionale Kubernetes RBAC oppure integrandolo con Azure RBAC per una gestione e un controllo degli accessi unificati.

Per accedere a qualsiasi risorsa di Azure dai servizi distribuiti in AKS viene utilizzato Microsoft Entra Workload ID. Le managed identity gestite attraverso Entra sono infatti il metodo consigliato per autorizzare l'accesso da un cluster AKS ad altri servizi Azure ed è possibile utilizzare un'identità gestita per autorizzare l'accesso da un cluster AKS a qualsiasi servizio che supporti l'autorizzazione tramite Microsoft Entra, senza la necessità di gestire credenziali o includerle nel codice.

Usare l'ID del carico di lavoro Microsoft Entra con il servizio Azure Kubernetes

Configurare la sicurezza del cluster

Il server API di Kubernetes gestisce le richieste di servizio per tutte le attività all'interno di un cluster e, pertanto, dovrebbe sempre essere protetto secondo il principio del minimo privilegio. Questo è particolarmente importante nelle distribuzioni multi-tenant. La migliore pratica per la gestione centralizzata è utilizzare le funzionalità di gestione delle identità aziendali di Microsoft Entra ID.

Per gli ambienti in cui non si desidera esporre l'API di Kubernetes a Internet, si può distribuire un cluster AKS privato, dove il piano di controllo utilizza un indirizzo IP interno. Tutto il traffico tra il server API e i node pool di AKS rimarrà all'interno di una VNet privata. Si può controllare l'accesso al piano di controllo tramite opzioni come VM bastion, peering di reti virtuali, VPN ed endpoint privati. Oltre a queste misure, si può anche optare di gestire la propria rete attraverso un load balancer.

Per quanto riguarda la sicurezza del cluster, una delle migliori pratiche più importanti è assicurarsi che il cluster AKS utilizzi l'ultima versione stabile di Kubernetes. Poiché Kubernetes non si aggiorna automaticamente, è consigliabile implementare una politica di governance per testare la compatibilità dell'ultima versione con i propri carichi di lavoro in un ambiente di sviluppo prima di distribuirla in produzione.

Dato che più container verranno distribuiti in un cluster, è anche importante limitare il tipo di attività che i container possono eseguire, in particolare attraverso l'accesso privilegiato di root. Si può implementare l'accesso privilegiato di root impostando il flag allowPrivilegeEscalation su “false” nel manifest del pod.

Inoltre, è possibile utilizzare i moduli di sicurezza del kernel Linux chiamati AppArmor e seccomp (secure computing) per implementare restrizioni di accesso a livello di file system e processo per i container.

Implementare la sicurezza dei pod e la protezione delle credenziali

Per garantire un accesso sicuro dei pod alle risorse è importante specificare le impostazioni del contesto di sicurezza dei pod e assegnare il minimo delle autorizzazioni necessarie per eseguire il pod come un utente o gruppo diverso da root. Questo limiterà l'accesso ai processi e ai servizi sottostanti del nodo.

Si può utilizzare la funzionalità di workload identity di Microsoft Entra ID per facilitare l'accesso sicuro ad altre risorse Azure dai pod AKS, utilizzando un meccanismo di proiezione del token dell'account di servizio ed è, a dire il vero, la soluzione raccomandata dalla stessa Microsoft dopo la deprecazione del servizio di pod-management identity.

Un'altra preoccupazione importante da considerare è il rischio di esporre le credenziali nel proprio codice. La migliore pratica raccomandata è utilizzare Azure Key Vault per memorizzare e recuperare le chiavi e le credenziali utilizzate dalle applicazioni.

Implementare l'isolamento dei namespace

Le funzionalità di isolamento native di Kubernetes possono essere utilizzate per isolare team e cluster e fornire accesso con il minimo privilegio alle risorse richieste dagli utenti e dalle applicazioni. I namespace offrono un isolamento logico per risorse e carichi di lavoro e aiutano a raggiungere una maggiore densità di pod.

Quando è necessario supportare un'architettura multi-tenant, si dovrebbe utilizzare Kubernetes RBAC per implementare il principio del minimo privilegio e prevenire infiltrazioni. In presenza di carichi di lavoro ostili, è preferibile utilizzare cluster fisicamente isolati per garantire la massima sicurezza.

Le best practice attuali di Microsoft includono anche l'utilizzo di Confidential Computing per AKS (AKS-CoCo) e Confidential Containers per workload che richiedono il massimo isolamento. Questi approcci moderni offrono protezione a livello hardware per carichi di lavoro sensibili.

Questi ultimi, basati su Kata Confidential Containers e sulla crittografia hardware per cifrare la memoria dei container, offrono un insieme di funzionalità e capacità per proteggere ulteriormente i carichi di lavoro container standard, impedendo che i dati in memoria durante l'elaborazione siano in chiaro, in formato leggibile.

Nei cluster AKS, l'ammissione alla sicurezza dei pod è attivata per impostazione predefinita. (L'ammissione alla sicurezza dei pod utilizza etichette per applicare la politica di sicurezza per i pod distribuiti in un namespace.) Per distribuzioni a singolo cluster, l'ammissione alla sicurezza dei pod è disponibile di default; tuttavia, per stabilire una politica di livello aziendale e una gestione centralizzata, è necessario configurare le politiche di Azure.

Integrare Azure Key Vault per la gestione dei segreti

Un archivio distribuito chiave-valore chiamato etcd viene utilizzato per i segreti in Kubernetes. In AKS, l'archivio etcd è completamente gestito da Azure e i dati sono crittografati a riposo utilizzando la crittografia gestita da Microsoft. Tuttavia, se si desidera un layer di sicurezza aggiuntivo, si può optare anche per chiavi di crittografia gestite dal cliente.

Con il provider Azure Key Vault per Secrets Store CSI Driver, i cluster AKS possono essere integrati con Azure Key Vault come archivio per i segreti tramite un volume Container Storage Interface (CSI). Questo driver supporta la sincronizzazione dei segreti e la rotazione automatica dei contenuti montati.

Microsoft raccomanda l'utilizzo dell'integrazione nativa con Key Vault tramite l'addon "azure-keyvault-secrets-provider", che semplifica notevolmente la configurazione rispetto all'approccio CSI Driver tradizionale e questa feature è ora disponibile anche come add-on integrato.

Abilitare il monitoraggio e il logging completi tramite Azure Monitor

AKS genera metriche e log che è possibile analizzare utilizzando l'integrazione nativa con Azure Monitor.

È importante quindi rivedere regolarmente le informazioni raccolte da Azure Monitor sia sul data plane che sul control plane per rilevare eventuali anomalie, in particolare nei log come AKSAudit, AKSAuditAdmin e AKSControlPlane. Log Analytics facilita l'analisi dettagliata di questi log. Azure Monitor permette di configurare avvisi di sicurezza basati su metriche e log per essere immediatamente informato di eventuali problemi ed è quindi consigliabile farlo per rimanere sempre informati sullo stato dei nostri ambienti Kubernetes.

Azure Kubernetes Pricing: Tier, Reserved Instances e Saving Plans

È giunto il momento di parlare un attimo di costi. AKS ora tre tier di pricing ufficiali per la gestione del cluster: Free, Standard e Premium, ciascuno con diversi livelli di SLA e funzionalità.

I tier Standard e Premium applicano alle risorse di calcolo sottostanti un modello pay-as-you-go, dando quindi modo di pagare solo per le risorse effettivamente utilizzate.

Vediamo nella tabella qui sotto le caratteristiche principali dei due.

Confronto tra AKS Standard e Premium Tier

Categoria Standard Tier Premium Tier
Quando usarlo • Eseguendo carichi di lavoro di produzione o mission-critical e si ha bisogno di alta disponibilità e affidabilità
• Se si ha bisogno di un SLA con garanzia finanziaria
• Se viene creato un AKS Automatic Cluster, viene selezionato automaticamente il tier Standard
• Eseguendo carichi di lavoro di produzione o mission-critical e si ha bisogno del massimo della disponibilità
• Se si ha bisogno di un SLA con garanzia finanziaria
• Per tutti i carichi mission-critical, su larga scala o di produzione che richiedono il supporto di una versione di Kubernetes per due anni
Tipologie di cluster supportate • Carichi di lavoro di tipo enterprise o di produzione
• Cluster fino a 5.000 nodi
• Carichi di lavoro di tipo enterprise o di produzione
• Cluster fino a 5.000 nodi
Prezzi • Pagamento a consumo per le risorse utilizzate
• Prezzi di gestione del cluster per il tier Standard
• Pagamento a consumo per le risorse utilizzate
• Prezzi di gestione del cluster per il tier Premium
Confronto delle funzionalità • SLA di uptime abilitato di default
• Maggiore affidabilità del cluster e disponibilità di risorse
• Supporto fino a 5.000 nodi per cluster
• Include tutte le funzionalità AKS attuali
• Include tutte le funzionalità AKS attuali del tier Standard
• Manutenzione da parte di Microsoft oltre il supporto della community

Per lavori di lunga durata e workload dai requisiti prevedibili è consigliabile l’acquisto di istanze riservate (Reserved Instance), che consente agli utenti di impegnarsi per un periodo di uno o tre anni per le risorse AKS in cambio di un prezzo più basso, arrivando a risparmiare oltre il 72% rispetto al pay-as-you-go.

Ad esempio, gli utenti che sanno in anticipo di quante VM e risorse di storage avranno bisogno nei prossimi tre anni possono acquistare istanze riservate. Tuttavia, questo modello non è adatto per workload con requisiti sconosciuti o variabili, poiché potrebbe vincolare l'utente a pagare per risorse non necessarie.

I piani di risparmio di Azure (Saving Plans), introdotti alla fine del 2022 per una varietà di servizi di calcolo sono previsti anche per Azure Kubernetes Service. Con i Savings Plans, i clienti si impegnano a spendere un importo orario fisso per uno o tre anni. Rispetto al pricing pay-as-you-go, i Savings Plans possono aiutare le organizzazioni a risparmiare fino al 65% sui costi di calcolo.

Un particolare vantaggio dei Saving Plans è che massimizzano la flessibilità consentendo ai clienti di applicare l'impegno su più servizi. In altre parole, quella spesa può essere utilizzata per AKS o per altri tipi di calcolo, come macchine virtuali, Azure SQL Database, Azure Cosmos DB e altri ancora.

Come accennavamo all’inizio di questa sezione AKS offre anche un livello gratuito adatto per test e sviluppo su piccola scala, che include l'accesso a funzionalità di base come monitoraggio e logging. Il livello gratuito è un’opzione senza limiti di durata che però, proprio in virtù delle sue feature ridotte all’osso non è consigliabile come soluzione né sul breve, né sul lungo periodo.

Il livello gratuito è utile per provare o iniziare a utilizzare AKS, ma non è adatto per progetti di grandi dimensioni o a lungo termine. Per questi, gli utenti dovrebbero prendere maggiormente in considerazione le altre opzioni descritte.

Azure offre un accordo sul livello di servizio (SLA) per tutte le opzioni eccetto il free tier, che garantisce il 99,95% di uptime per i cluster in una Zona di Disponibilità e il 99,9% per altri cluster. C’è da precisare che l'uptime SLA è una funzionalità opzionale che deve essere abilitata specificamente nei tier Standard e Premium, e non è automaticamente inclusa.

Per maggiori informazioni sui prezzi vi invitiamo a consultare la pagina ufficiale di Azure Kubernetes sul sito ufficiale di Azure (disponibile qui) e cominciare a fare una stima del costo del servizio attraverso il comodo strumento di calcolo messo a disposizione da Microsoft.

Conclusioni

Kubernetes è stato, sin dalla sua prima apparizione nel 2015, una delle soluzioni più apprezzate per il software deployment da una grande fetta degli sviluppatori di tutto il mondo, ma la sua complessità è sempre risultata un ostacolo non da poco nella sua diffusione.

Questa complessità nella sua gestione amministrativa e operativa può essere però mitigata significativamente da servizi come Azure Kubernetes, che permettono di poterne sfruttare appieno le potenzialità senza doversi preoccupare eccessivamente dell’infrastruttura sottostante, gestita in questo caso da Microsoft sulla sua rinomata piattaforma di Cloud Computing.

Gli esperti IT adesso possono concentrarsi maggiormente sugli aspetti più importanti del loro lavoro di sviluppo e distribuzione, risparmiando tempo e risorse che possono adesso impiegare nella massima raffinazione del loro codice e dei loro progetti.

A questo punto, non resta dunque che invitarvi a provarlo approfittando del free tier messo a disposizione da Azure per scoprire se è la soluzione che fa anche al caso vostro.

FAQ su Azure Kubernetes

Che cos’è Azure Kubernetes Service (AKS)?

Azure Kubernetes Service, noto come AKS, è una piattaforma gestita da Microsoft che semplifica l’utilizzo di Kubernetes per il deployment, la gestione e la scalabilità delle applicazioni containerizzate. È pensato per alleggerire il carico operativo legato all’orchestrazione dei container, offrendo al contempo l’affidabilità e la sicurezza della piattaforma Azure.

Perché usare AKS invece di Kubernetes puro?

Kubernetes, pur essendo una delle tecnologie più apprezzate per la gestione di container, può diventare difficile da amministrare e richiedere competenze avanzate. AKS nasce per rispondere proprio a questa complessità: si occupa in automatico della configurazione dell’infrastruttura sottostante, lasciando agli sviluppatori e agli amministratori il compito di concentrarsi sull'applicazione e non sulla gestione del cluster.

Quali sono i vantaggi principali di AKS?

AKS consente di sviluppare, testare, distribuire e scalare le applicazioni in modo più efficiente. Automatizza attività come il provisioning dei nodi, la gestione del control plane e l'integrazione con servizi Azure come Container Registry, Monitor e Key Vault. Inoltre, è possibile adattare l’infrastruttura alle esigenze delle proprie applicazioni, anche utilizzando risorse ad alte prestazioni come nodi con GPU.

Cos’è un node pool in AKS?

Un node pool è un insieme di macchine virtuali configurate per eseguire i container all’interno del cluster Kubernetes. I node pool si dividono in due categorie principali: quelli di sistema, destinati a supportare i componenti essenziali del cluster, e quelli applicativi, destinati all’esecuzione dei carichi di lavoro. Ogni pool può essere personalizzato in base alle esigenze di calcolo, memoria e tipo di carico da gestire.

AKS è adatto per ambienti di produzione?

Sì, AKS è stato progettato proprio per supportare carichi di lavoro critici, anche su larga scala. I piani Standard e Premium garantiscono livelli di servizio (SLA) elevati, con disponibilità fino al 99,95%, e includono tutte le funzionalità necessarie per gestire ambienti enterprise.

Esiste una versione gratuita di AKS?

Esiste un livello gratuito di AKS, adatto principalmente a scopi di test e sviluppo. Non ha una scadenza temporale, ma non è indicato per l’uso in ambienti di produzione a causa della limitata disponibilità di funzionalità. È ideale per valutare la piattaforma prima di passare a un piano più avanzato.

Come funziona la sicurezza in AKS?

AKS integra diversi livelli di sicurezza. È possibile collegare i cluster a Microsoft Entra ID per la gestione delle identità e degli accessi, utilizzare il controllo degli accessi RBAC di Kubernetes per definire ruoli e permessi, implementare meccanismi di isolamento tramite namespace e configurare restrizioni sui pod per impedire comportamenti rischiosi. Inoltre, si possono usare strumenti avanzati come Key Vault per proteggere le credenziali e Confidential Containers per rafforzare l’isolamento dei carichi sensibili.

AKS supporta il monitoraggio e il logging?

Sì, AKS è completamente integrato con Azure Monitor. Questo consente di raccogliere e analizzare log e metriche sia del piano dati che del piano di controllo. È possibile configurare avvisi in tempo reale e diagnosticare anomalie, sfruttando la piattaforma di log analytics integrata in Azure.

Quali sono i costi associati ad AKS?

AKS offre tre livelli di prezzo: Free, Standard e Premium. I piani Standard e Premium prevedono un modello di pagamento basato sul consumo delle risorse, con possibilità di sottoscrivere istanze riservate per uno o tre anni, ottenendo significativi risparmi rispetto al modello a consumo. In alternativa, è possibile attivare un Saving Plan che consente di impegnarsi su una spesa oraria fissa da usare anche su altri servizi Azure, mantenendo maggiore flessibilità rispetto alle risorse prenotate.

AKS è aggiornato automaticamente?

No, le versioni di Kubernetes non si aggiornano automaticamente in AKS. È necessario testare preventivamente le nuove versioni in ambienti di sviluppo e programmare gli aggiornamenti manualmente, idealmente seguendo una policy di governance che assicuri compatibilità e stabilità del sistema.

Scopri perché scegliere il team

Infra & Sec

Il team Infra & Security è verticale sulla gestione ed evoluzione dei tenant Microsoft Azure dei nostri clienti. Oltre a configurare e gestire il tenant, si occupa della creazione dei deployment applicativi tramite le pipelines di DevOps, monitora e gestisce tutti gli aspetti di sicurezza del tenant, supportando i Security Operations Centers (SOC).