Configura un repository di grafici Helm v3 in Amazon S3 - Prontuario AWS

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à.

Configura un repository di grafici Helm v3 in Amazon S3

Creato da Abhishek Sharma (AWS)

Ambiente: PoC o pilota

Tecnologie: DevOps; Contenitori e microservizi; Modernizzazione

Carico di lavoro: tutti gli altri carichi di lavoro

Servizi AWS: Amazon S3

Riepilogo

Questo modello ti aiuta a gestire i grafici Helm v3 in modo efficiente integrando il repository Helm v3 in Amazon Simple Storage Service (Amazon S3) sul cloud Amazon Web Services (AWS). Per utilizzare questo modello, devi avere familiarità con Kubernetes e con Helm, che è un gestore di pacchetti Kubernetes. L'utilizzo degli archivi Helm per archiviare i grafici e le versioni delle carte di controllo può migliorare il tempo medio di ripristino (MTTR) durante le interruzioni. 

Questo modello utilizza AWS CodeCommit per la creazione di repository Helm e utilizza un bucket 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 AWS attivo

  • Python versione 2.7.12 o successiva

  • pip

  • Un cloud privato virtuale (VPC) con sottoreti e un'istanza Amazon Elastic Compute Cloud (Amazon EC2) Elastic Compute Cloud (Amazon EC2) 

  • Git installato sull'istanza EC2

  • 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

  • CodeCommit Repository AWS

  • Interfaccia a riga di comando di AWS (CLI AWS)

Versioni del prodotto

  • Elmo v3

  • Python versione 2.7.12 o successiva

Architettura

Stack tecnologico Target

  • Amazon S3

  • AWS CodeCommit

  • Helm

  • Kubectl

  • Python e pip

  • Git

  • plugin helm-s3

Architettura Target

Repository Helm in CodeCommit, istanza EC2 con Helm, Git e helm-s3, grafici Helm in Amazon S3.

Automazione e scalabilità

  • Puoi incorporare Helm nel tuo strumento di automazione esistente per l'integrazione continua/distribuzione continua (CI/CD) per automatizzare l'imballaggio e il controllo della versione dei grafici Helm (al di fuori dell'ambito di questo modello).

  • GitVersion oppure è possibile utilizzare i numeri di build Jenkins per automatizzare il controllo della versione dei grafici.

Strumenti

  • Helm — Helm è un gestore di pacchetti per Kubernetes che ti aiuta a installare e gestire le 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.

  • plugin helm-s3: il plug-in helm-s3 supporta l'interazione con Amazon S3. Può essere utilizzato con Helm v2 o Helm v3.

Best practice

< Autore rimuovi queste note: Fornisci un elenco di linee guida e consigli che possono aiutare gli utenti a implementare questo modello in modo più efficace. >

Epiche

AttivitàDescrizioneCompetenze richieste

Installa il client Helm v3.

Per scaricare e installare il client Helm sul tuo sistema locale, esegui il seguente comando: sudo curl https://raw.githubusercontent.com/helm/helm/main/scripts/get-helm-3 | bash

Amministratore cloud, DevOps ingegnere

Convalida l'installazione di Helm.

Per convalidare il client Helm, esegui il seguente comando: helm version --short

Amministratore cloud, ingegnere DevOps
AttivitàDescrizioneCompetenze richieste

Crea un bucket S3 per i grafici Helm.

Crea un bucket S3 unico. Nel bucket, crea una cartella chiamata. stable/myapp L'esempio di questo modello utilizza s3://my-helm-charts/stable/myapp come archivio grafico di destinazione.

Amministratore cloud, DevOps ingegnere

Installa il plug-in helm-s3 per Amazon S3.

Per installare il plugin helm-s3 sul tuo computer client, esegui il seguente comando: helm plugin install https://github.com/hypnoglow/helm-s3.git

Amministratore del cloud, ingegnere DevOps

Inizializza il repository Amazon S3 Helm.

Per inizializzare la cartella di destinazione come repository Helm, usa il seguente comando: helm s3 init s3://my-helm-charts/stable/myapp 

Il comando crea un index.yaml file nella destinazione per tenere traccia di tutte le informazioni del grafico archiviate in quella posizione.

Amministratore cloud, DevOps ingegnere

Verifica il repository Helm appena creato.

Per verificare che il index.yaml file sia stato creato, esegui il seguente comando: aws s3 ls s3://my-helm-charts/stable/myapp/

Amministratore cloud, DevOps ingegnere

Aggiungi il repository Amazon S3 a Helm sul computer client.

Per aggiungere l'alias del repository di destinazione al computer client Helm, usa il seguente comando: helm repo add stable-myapp s3://my-helm-charts/stable/myapp/

Amministratore cloud, ingegnere DevOps
AttivitàDescrizioneCompetenze richieste

Clona le tue carte Helm.

Se nel tuo CodeCommit repository non sono presenti grafici Helm locali, clonali dal repository eseguendo il seguente GitHub comando: git clone <url_of_your_helm_source_code>.git

Amministratore cloud, ingegnere DevOps

Package della tabella Helm locale.

Per impacchettare il grafico che hai creato o clonato, usa il seguente comando: helm package ./my-app  

Ad esempio, questo modello utilizza il my-app grafico. Il comando impacchetta tutto il contenuto della cartella del my-app grafico in un file di archivio, denominato utilizzando il numero di versione menzionato nel Chart.yaml file.

Amministratore cloud, DevOps ingegnere

Archivia il pacchetto locale nel repository Amazon S3 Helm.

Per caricare il pacchetto locale nel repository Helm in Amazon S3, esegui il seguente comando: helm s3 push ./my-app-0.1.0.tgz stable-myapp

Nel comando, my-app è il nome della cartella del grafico, 0.1.0 è la versione del grafico menzionata in ed stable-myapp è l'Chart.yamlalias del repository di destinazione.

Amministratore del cloud, ingegnere DevOps

Cerca la tabella Helm.

Per confermare che il grafico sia visualizzato sia localmente che nel repository Amazon S3 Helm, esegui il seguente comando: helm search repo stable-myapp

Amministratore cloud, ingegnere DevOps
AttivitàDescrizioneCompetenze richieste

Modifica e impacchetta il grafico.

Invalues.yaml, imposta il replicaCount valore su1, quindi impacchetta il grafico, questa volta cambiando la versione Chart.yaml in0.1.1. Il controllo delle versioni si ottiene idealmente attraverso 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. Per impacchettare il grafico, esegui il comando seguente: helm package ./my-app/

Amministratore cloud, DevOps ingegnere

Invia la nuova versione al repository Helm in Amazon S3.

Per inviare il nuovo pacchetto, versione 0.1.1, al repository my-helm-chartsHelm in Amazon S3, esegui il seguente comando: helm s3 push ./my-app-0.1.1.tgz stable-myapp

Amministratore cloud, ingegnere DevOps

Verifica la tabella Helm aggiornata.

Per confermare che il grafico aggiornato sia visualizzato sia localmente che nel repository Amazon S3 Helm, esegui i seguenti comandi.

helm repo update

helm search repo stable-myapp

Amministratore cloud, ingegnere DevOps
AttivitàDescrizioneCompetenze richieste

Cerca tutte le versioni del grafico my-app.

Per visualizzare tutte le versioni disponibili di un grafico, esegui il seguente comando con il --versions flag: helm search repo my-app --versions 

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.

L'installazione automatizzata non rientra nell'ambito di questo schema, ma è possibile installarla manualmente. I risultati della ricerca dell'attività precedente mostrano le diverse versioni del my-app grafico. Per installare la nuova versione (0.1.1) dal repository Amazon S3 Helm, usa il seguente comando: helm upgrade --install my-app-release stable-myapp/my-app --version 0.1.1 --namespace dev

DevOps Ingegnere
AttivitàDescrizioneCompetenze richieste

Rivedi i dettagli di una revisione specifica.

Il rollback automatico non rientra nell'ambito di questo schema, ma è possibile ripristinare manualmente una versione precedente. 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 seguente comando: helm get values --revision=2 my-app-release

DevOps Ingegnere

Torna a una versione precedente.

Il rollback automatico non rientra nell'ambito di questo schema. Per tornare manualmente a una revisione precedente, utilizzate il seguente comando: helm rollback my-app-release 1 

Questo esempio sta tornando alla revisione numero 1.

DevOps Ingegnere

Risorse correlate