Passa al contenuto principale

Kubernetes su AWS

Gestione e orchestrazione di container open source

Panoramica

Kubernetes è un software open source che permette di implementare e gestire applicazioni containerizzate su vasta scala. Kubernetes gestisce i cluster di istanze di calcolo Amazon Elastic Compute Cloud (EC2) ed esegue container su tali istanze con processi di implementazione, manutenzione e dimensionamento delle risorse. Utilizzando Kubernetes, è possibile eseguire qualsiasi tipo di applicazione in container utilizzando gli stessi strumenti in locale e nel cloud.

AWS semplifica l’esecuzione di Kubernetes nel cloud con un’infrastruttura di macchine virtuali scalabili e ad alta disponibilità, le integrazioni con servizi creati dalla community e Amazon Elastic Kubernetes Service (EKS), un servizio gestito con conformità certificata a Kubernetes.

Missing alt text value

Come funziona Kubernetes

Kubernetes gestisce un cluster di istanze di elaborazione, su cui pianifica l’esecuzione di container in base alle risorse di elaborazione disponibili e alle risorse richieste in ciascun container. I container vengono eseguiti in raggruppamenti logici chiamati pod; è possibile eseguire e ridimensionare uno o più container insieme come un solo pod.

Il software di piano di controllo di Kubernetes stabilisce quando e dove eseguire i pod, gestisce l'instradamento del traffico e ricalibra i pod in base a utilizzo o altri parametri personalizzabili. Kubernetes avvia automaticamente i pod in un cluster in base ai loro requisiti, riavviandoli automaticamente quando si verificano errori (nei pod o nelle istanze). Ciascun pod riceve un indirizzo IP e un singolo nome DNS, che Kubernetes impiega per connettere i servizi tra loro e con il traffico esterno.

Perché usare Kubernetes

Kubernetes è un progetto open source; può essere utilizzato per eseguire ovunque applicazioni containerizzate, senza dover modificare gli strumenti operativi. Kubernetes è sostenuto da un'ampia community di volontari e viene migliorato in modo costante. Inoltre, molti altri progetti open source e fornitori costruiscono e sostengono software compatibili con Kubernetes, utilizzabili per migliorare ed estendere l'architettura delle applicazioni.

    Kubernetes permette di definire complesse applicazioni containerizzate e di eseguirle su vasta scala su un cluster di server.

    Con Kubernetes le applicazioni containerizzate possono essere trasferite in modo ottimizzato da macchine di sviluppo locali a implementazioni di produzione nel cloud utilizzando gli stessi strumenti operativi.

    È possibile eseguire cluster Kubernetes a disponibilità e scalabilità elevate in AWS mantenendo compatibilità completa con le distribuzioni on-premises.

    Dal momento che si tratta di un progetto open source, l’aggiunta di nuove funzionalità a Kubernetes è semplice. Esiste una vasta community di sviluppatori e imprese che costruiscono estensioni, integrazioni e plugin che estendono le funzionalità del servizio.

Esecuzione di Kubernetes in AWS

Con AWS, eseguire Kubernetes è semplice. È possibile scegliere di gestire manualmente l'infrastruttura del servizio utilizzando Amazon EC2, oppure di automatizzare provisioning e gestione con Amazon EKS. In entrambi i casi, si ottengono integrazioni potenti e sostenute dalla community per servizi AWS come cloud privato virtuale di Amazon (VPC) e AWS Identity and Access Management (IAM), il rilevamento servizi, nonché la sicurezza, la scalabilità e l'alta disponibilità di AWS.

Prendi in considerazione l’utilizzo di Amazon EC2

Se desideri gestire completamente la tua distribuzione Kubernetes. Provisioning ed esecuzione di Kubernetes su diversi tipi di istanze.

Ulteriori informazioni

Prendi in considerazione l'utilizzo di Amazon EKS

Se desideri eseguire Kubernetes senza dover allocare o gestire istanze master ed etcd.

Ulteriori informazioni

Prendi in considerazione l'utilizzo di Amazon ECR

Se desideri memorizzare, crittografare e gestire immagini di container per velocizzarne la distribuzione.

Ulteriori informazioni

Domande frequenti su Kubernetes

Apri tutto

    Un cluster Kubernetes è un raggruppamento logico di istanze di elaborazione di EC2 eseguite in container. Un cluster consiste di un piano di controllo (le istanze che controllano come, quando e dove eseguire i container) e un piano dati (le istanze in cui sono eseguiti i container). È necessario definire un cluster prima di poter eseguire container o servizi con Kubernetes.

    Un nodo Kubernetes è un’istanza di elaborazione singola (una macchina virtuale) che fa parte di un cluster Kubernetes. Si suddividono in due tipi: master e worker. I nodi master offrono hosting per server API Kubernetes e controllano come, quando e dove eseguire i container. I nodi worker sono le istanze di elaborazione in cui sono eseguiti i container e nelle quali elaborano dati.

    Un pod Kubernetes è il modo in cui Kubernetes esegue i container sulle istanze di elaborazione; include container e specifiche di esecuzione, rete e storage. Un pod può essere un container singolo o diversi container in funzione all'unisono. Per chi in genere esegue solo singoli container, un pod può essere descritto come un container in esecuzione.

    etcd è uno store chiave-valore distribuito che permette di memorizzare e condividere dati su un cluster distribuito di macchine. Kubernetes impiega etcd per memorizzare i dati sul cluster e condividerli sul piano di controllo.

    Con AWS, eseguire Kubernetes è semplice. Anzi, secondo la Cloud Native Computing Federation (CNCF), la maggior parte dei clienti che esegue Kubernetes nel cloud usa AWS; la maggior parte delle distribuzioni Kubernetes sono eseguite in AWS. AWS collabora con la community di Kubernetes, a cui contribuisce attivamente, per semplificare l'esecuzione di questo servizio sulla propria infrastruttura.

    AWS offre Amazon Elastic Kubernetes Service (EKS), un servizio gestito che semplifica l’uso di Kubernetes in AWS, eliminando la necessità di installare e gestire il piano di controllo Kubernetes.

    Le modalità di utilizzo di Kubernetes in AWS sono due: è possibile eseguirlo manualmente su istanze di macchine virtuali Amazon EC2, oppure avvalersi del servizio Amazon EKS. Per maggiori dettagli su come eseguire Kubernetes manualmente in EC2, consulta il nostro workshop su Github. Per ulteriori informazioni, su come utilizzare Amazon EKS, consulta la pagina del prodotto.