Kubernetes su AWS

Gestione e orchestrazione di container open source

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.

Kubernetes

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.

Esecuzione di applicazioni su vasta scala

ESECUZIONE DI APPLICAZIONI SU VASTA SCALA

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

Trasferimenti ottimizzati delle applicazioni

TRASFERIMENTI OTTIMIZZATI DELLE APPLICAZIONI

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.

Esecuzione ovunque

ESECUZIONE OVUNQUE

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

Aggiungi nuove funzionalità

AGGIUNGI NUOVE FUNZIONALITÀ

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 comunità ai servizi AWS come Amazon Virtual Private Cloud (VPC), AWS Identity and Access Management (IAM), e la scoperta dei servizi, nonché la sicurezza, la scalabilità e l'alta disponibilità di AWS.

SE OCCORRE...
VALUTA L'UTILIZZO DI
Gestione completa della distribuzione Kubernetes. Provisioning ed esecuzione di Kubernetes su diversi tipi di istanze. "Amazon EC2"
Eseguire Kubernetes senza dover allocare o gestire istanze master ed etcd.
Amazon EKS
Memorizzare, crittografare e gestire immagini di container per velocizzarne la distribuzione.
Amazon ECR

 

Collaborazione di AWS con la community di Kubernetes

AWS collabora attivamente con la community di Kubernetes, offrendo contributi al codice di base di Kubernetes, per consentire ai suoi utenti di sfruttare al massimo i servizi e le funzionalità di AWS.

Plugin CNI

Plugin CNI

Reti di pod in Kubernetes con interfacce di rete elastiche in AWS.

CDK8S

CDK8s

Cdk8s consente di definire le applicazioni Kubernetes utilizzando il codice.

DNS esterni

DNS esterni

Configura Route 53 Service Discovery per ingressi e servizi Kubernetes.

Karpenter

Karpenter

Nodi Just-In-Time per qualsiasi cluster Kubernetes.

Kubernetes

SIG AWS

Gruppi di interesse speciali gestiti dalla community per approfondire le integrazioni di AWS all'API Kubernetes.

TorchServe

TorchServe

Un framework di model-serving PyTorch per distribuire modelli di machine learning addestrati.

DOMANDE FREQUENTI SU KUBERNETES

D: Cos'è un cluster Kubernetes?

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.

D: Cos’è un nodo 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.

D: Cos'è un pod Kubernetes?

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.

D: Cos'è etcd?

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.

D: AWS supporta Kubernetes?

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.

D: In che modo è possibile usare Kubernetes in AWS?

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.

Ulteriori informazioni su Kubernetes in AWS

Visita la pagina di Amazon Elastic Kubernetes Service

Scopri di più sui container in AWS

Visita la pagina sui container
Tutto pronto per cominciare?
Crea un account AWS
Hai altre domande?
Contattaci