Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.
Distribuisci risorse e pacchetti Kubernetes utilizzando Amazon EKS e un repository di grafici Helm in Amazon S3
Creato da Sagar Panigrahi (AWS)
Ambiente: PoC o pilota | Tecnologie: contenitori e microservizi; DevOps | Servizi AWS: Amazon EKS |
Riepilogo
Questo modello ti aiuta a gestire le applicazioni Kubernetes in modo efficiente, indipendentemente dalla loro complessità. Il modello integra Helm nelle pipeline esistenti di integrazione continua e distribuzione continua (CI/CD) per distribuire le applicazioni in un cluster Kubernetes. Helm è un gestore di pacchetti Kubernetes che ti aiuta a gestire le applicazioni Kubernetes. I grafici Helm aiutano a definire, installare e aggiornare applicazioni Kubernetes complesse. I grafici possono essere modificati in versioni e archiviati negli archivi Helm, il che migliora il tempo medio di ripristino (MTTR) durante le interruzioni.
Questo modello utilizza Amazon Elastic Kubernetes Service (Amazon EKS) per il cluster Kubernetes. Utilizza Amazon Simple Storage Service (Amazon S3) come repository di grafici Helm, in modo che i grafici possano essere gestiti centralmente e accessibili dagli sviluppatori di tutta l'organizzazione.
Prerequisiti e limitazioni
Prerequisiti
Un account Amazon Web Services (AWS) attivo con un cloud privato virtuale (VPC)
Un cluster Amazon EKS
Nodi di lavoro configurati all'interno del cluster Amazon EKS e pronti a gestire carichi di lavoro
Kubectl per configurare il file Amazon EKS kubeconfig per il cluster di destinazione nel computer client
Accesso ad AWS Identity and Access Management (IAM) per creare il bucket S3
Accesso IAM (programmatico o di ruolo) ad Amazon S3 dal computer client
Gestione del codice sorgente e pipeline CI/CD
Limitazioni
Al momento non è disponibile alcun supporto per l'aggiornamento, l'eliminazione o la gestione delle definizioni di risorse personalizzate (CRD).
Se si utilizza una risorsa che fa riferimento a un CRD, il CRD deve essere installato separatamente (al di fuori del grafico).
Versioni del prodotto
Helm v3.6.3
Architettura
Stack tecnologico Target
Amazon EKS
Amazon VPC
Amazon S3
Gestione del codice sorgente
Helm
Kubectl
Architettura Target
![Client Helm e Kubectl distribuiscono un repository di grafici Helm in Amazon S3 per cluster Amazon EKS.](images/pattern-img/d3f993e6-4d96-4cb9-a075-c4debe431fd7/images/2f09f7bb-440a-4c4b-b29f-08d136d1ada4.png)
Automazione e scalabilità
AWS CloudFormation può essere utilizzato per automatizzare la creazione dell'infrastruttura. Per ulteriori informazioni, consulta Creazione di risorse Amazon EKS con AWS CloudFormation nella documentazione di Amazon EKS.
Helm deve essere incorporato nel tuo strumento di automazione CI/CD esistente per automatizzare il packaging e il controllo delle versioni dei grafici Helm (al di fuori dell'ambito di questo schema).
GitVersion Oppure è possibile utilizzare i numeri di build Jenkins per automatizzare il controllo delle versioni dei grafici.
Strumenti
Strumenti
Amazon EKS — Amazon Elastic Kubernetes Service (Amazon EKS) è un servizio gestito per eseguire Kubernetes su AWS senza dover installare o mantenere il proprio piano di controllo Kubernetes. Kubernetes è un sistema open source per automatizzare l'implementazione, il dimensionamento e la gestione di applicazioni containerizzate.
Helm — Helm
è un gestore di pacchetti per Kubernetes che ti aiuta a installare e gestire applicazioni sul tuo cluster Kubernetes. Amazon S3 — Amazon Simple Storage Service (Amazon S3) è uno storage per Internet. È possibile utilizzare Amazon S3 per memorizzare e recuperare qualsiasi volume di dati, in qualunque momento e da qualunque luogo tramite il Web.
Kubectl — Kubectl
è un'utilità da riga di comando per l'esecuzione di comandi su cluster Kubernetes.
Codice
Il codice di esempio è allegato.
Epiche
Attività | Descrizione | Competenze richieste |
---|---|---|
Installa il client Helm. | Per scaricare e installare il client Helm sul sistema locale, utilizzare il seguente comando.
| DevOps ingegnere |
Convalida l'installazione di Helm. | Per verificare che Helm sia in grado di comunicare con il server API Kubernetes all'interno del cluster Amazon EKS, esegui. | DevOps ingegnere |
Attività | Descrizione | Competenze richieste |
---|---|---|
Crea un grafico Helm per NGINX. | Per creare un diagramma Helm denominato | DevOps ingegnere |
Esamina la struttura del grafico. | Per rivedere la struttura del grafico, esegui il comando tree | DevOps ingegnere |
Disattiva la creazione dell'account di servizio nel grafico. | Nella | DevOps ingegnere |
Convalida (lint) il grafico modificato per eventuali errori sintattici. | Per convalidare il grafico per eventuali errori sintattici prima di installarlo nel cluster di destinazione, esegui. | DevOps ingegnere |
Installa il grafico per distribuire le risorse Kubernetes. | Per eseguire l'installazione di Helm chart, usa il comando seguente.
Il | DevOps ingegnere |
Esamina le risorse nel cluster Amazon EKS. | Per esaminare le risorse che sono state create come parte del grafico Helm nel
| DevOps ingegnere |
Attività | Descrizione | Competenze richieste |
---|---|---|
Modifica e aggiorna la versione. | Per modificare il grafico, in
| DevOps ingegnere |
Consulta la cronologia della versione di Helm. | Per elencare tutte le revisioni di una versione specifica che sono state installate utilizzando Helm, esegui il comando seguente.
| DevOps ingegnere |
Esamina i dettagli per una revisione specifica. | Prima di passare o ripristinare una versione funzionante e per un ulteriore livello di convalida prima di installare una revisione, visualizza quali valori sono stati passati a ciascuna delle revisioni utilizzando il comando seguente.
| DevOps ingegnere |
Torna a una versione precedente. | Per tornare a una revisione precedente, usa il seguente comando.
Questo esempio sta tornando alla revisione numero 1. | DevOps ingegnere |
Attività | Descrizione | Competenze richieste |
---|---|---|
Crea un bucket S3 per i grafici Helm. | Crea un bucket S3 unico. Nel bucket, crea una cartella chiamata. | Amministratore cloud |
Installa il plug-in Helm per Amazon S3. | Per installare il plugin helm-s3 sul tuo computer client, usa il seguente comando.
Nota: il supporto per Helm V3 è disponibile con la versione del plugin 0.9.0 e successive. | DevOps ingegnere |
Inizializza il repository Amazon S3 Helm. | Per inizializzare la cartella di destinazione come repository Helm, usa il seguente comando.
Il comando crea un | DevOps ingegnere |
Aggiungi il repository Amazon S3 a Helm. | Per aggiungere il repository nel computer client, usa il seguente comando.
Questo comando aggiunge un alias al repository di destinazione nel computer client Helm. | DevOps ingegnere |
Controlla l'elenco dei repository. | Per visualizzare l'elenco dei repository nel computer client Helm, esegui. | DevOps ingegnere |
Attività | Descrizione | Competenze richieste |
---|---|---|
Creazione pacchetto del grafico. | Per impacchettare il | DevOps ingegnere |
Archivia il pacchetto nel repository Amazon S3 Helm. | Per caricare il pacchetto nel repository Helm in Amazon S3, esegui il comando seguente, utilizzando il nome corretto del file.
| DevOps ingegnere |
Cerca la carta Helm. | Per confermare che il grafico sia visualizzato sia localmente che nel repository Helm in Amazon S3, esegui il comando seguente.
| DevOps ingegnere |
Attività | Descrizione | Competenze richieste |
---|---|---|
Modifica e impacchetta il grafico. | In Il controllo delle versioni viene idealmente aggiornato tramite l'automazione utilizzando strumenti come GitVersion o Jenkins build Numbers in una pipeline CI/CD. L'automazione del numero di versione non rientra nell'ambito di questo schema. | DevOps ingegnere |
Invia la nuova versione al repository Helm in Amazon S3. | Per inviare il nuovo pacchetto con la versione 0.1.1 al repository
| DevOps ingegnere |
Attività | Descrizione | Competenze richieste |
---|---|---|
Cerca tutte le versioni del grafico my-nginx. | Per visualizzare tutte le versioni disponibili di un grafico, esegui il seguente comando con il flag.
Senza il flag, per impostazione predefinita Helm visualizza l'ultima versione caricata di un grafico. | DevOps ingegnere |
Installa un grafico dal repository Amazon S3 Helm. | I risultati della ricerca dell'attività precedente mostrano le diverse versioni del grafico.
| DevOps ingegnere |