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à.
Tutorial: distribuzione su Amazon EKS con CodePipeline
Questo tutorial ti aiuta a creare un'azione di distribuzione CodePipeline che distribuisca il codice in un cluster che hai configurato in Amazon EKS.
L'azione EKS supporta cluster EKS pubblici e privati. I cluster privati sono il tipo consigliato da EKS; tuttavia, entrambi i tipi sono supportati.
Nota
Come parte della creazione di una pipeline nella console, un bucket di artefatti S3 verrà utilizzato da for artifacts. CodePipeline (Questo è diverso dal bucket utilizzato per un'azione sorgente S3.) Se il bucket di artefatti S3 si trova in un account diverso dall'account della pipeline, assicurati che il bucket di artefatti S3 sia di proprietà di persone sicure e affidabili. Account AWS
Nota
Questa azione utilizza il calcolo gestito per eseguire comandi in un ambiente di CodePipeline compilazione. CodeBuild L'esecuzione dell'azione dei comandi comporterà costi separati in. AWS CodeBuild
Nota
L'azione di EKS distribuzione è disponibile solo per le pipeline di tipo V2.
Prerequisiti
Per utilizzare questo tutorial per creare la pipeline di distribuzione continua, è necessario disporre di alcune risorse. Ecco di cosa hai bisogno prima di iniziare:
Nota
Tutte queste risorse devono essere create all'interno della stessa regione. AWS
-
Un repository di controllo del codice sorgente (utilizzato da questo tutorial GitHub) in cui aggiungere un
deployment.yamlfile di esempio. -
È necessario utilizzare un ruolo di CodePipeline servizio esistente che aggiornerai con le autorizzazioni per questa azione utilizzando Passaggio 3: aggiorna la politica del ruolo del servizio in IAM CodePipeline di seguito. Le autorizzazioni necessarie si basano sul tipo di cluster creato. Per ulteriori informazioni, consulta Ruolo del servizio, policy, autorizzazioni.
-
Un'immagine funzionante e un tag del repository che hai inviato a ECR o al tuo repository di immagini.
Dopo aver soddisfatto questi prerequisiti, puoi procedere con il tutorial e creare la pipeline di distribuzione continua.
Fase 1: (Facoltativo) Creare un cluster in Amazon EKS
Puoi scegliere di creare un cluster EKS con un endpoint pubblico o privato.
Nei passaggi seguenti, crei un cluster pubblico o privato in EKS. Questo passaggio è facoltativo se hai già creato il cluster.
Crea un cluster pubblico in Amazon EKS
In questo passaggio, crei un cluster in EKS.
Crea un cluster pubblico
-
Apri la console EKS, quindi scegli Crea cluster.
-
In Nome, assegna un nome al cluster. Scegli Avanti.
-
Scegli Crea.
Crea un cluster privato in Amazon EKS
Se scegli di creare un cluster con un endpoint privato, assicurati di collegare solo le sottoreti private e assicurati che abbiano una connessione Internet.
Segui i cinque passaggi secondari successivi per creare un cluster con un endpoint privato.
Crea un VPC nella console
-
Apri la console VPC, quindi scegli Crea VPC.
-
In Impostazioni VPC, scegli VPC e altro.
-
Scegli di creare una sottorete pubblica e 4 sottoreti private. Seleziona Crea VPC.
-
Nella pagina delle sottoreti, scegli Privato.
Determina le sottoreti private nel tuo VPC
-
Accedi al tuo VPC e scegli l'ID VPC per aprire la pagina dei dettagli del VPC.
-
Nella pagina dei dettagli del VPC, scegli la scheda Mappa delle risorse.
-
Visualizza il diagramma e annota le tue sottoreti private. Le sottoreti vengono visualizzate con etichette che indicano lo stato pubblico o privato e ogni sottorete è mappata su una tabella di routing.
Nota che un cluster privato avrà tutte le sottoreti private.
-
Crea una sottorete pubblica per ospitare il gateway NAT. È possibile allegare un solo gateway Internet a un VPC alla volta.
Crea un gateway NAT nella sottorete pubblica
-
Nella sottorete pubblica, create un gateway NAT. Accedi alla console VPC, quindi scegli i gateway Internet. Scegliere Crea gateway Internet.
-
In Nome, inserisci un nome per il tuo gateway Internet. Scegliere Crea gateway Internet.
Aggiorna la tabella di routing per la sottorete privata per indirizzare il traffico verso il gateway NAT.
Aggiungi il gateway NAT alle tabelle di routing per le tue sottoreti private
-
Accedi alla console VPC, quindi scegli Subnet.
-
Per ogni sottorete privata, sceglila e quindi scegli la tabella di routing per quella sottorete nella pagina dei dettagli. Scegli Modifica tabella di percorso.
-
Aggiorna la tabella di routing per la sottorete privata per indirizzare il traffico Internet verso il gateway NAT. Seleziona Aggiungi route. Scegli il gateway NAT tra le opzioni da aggiungere. Scegli il gateway Internet che hai creato.
-
Per la sottorete pubblica, crea una tabella di routing personalizzata. Verifica che l'elenco di controllo dell'accesso alla rete (ACL) per la tua sottorete pubblica consenta il traffico in entrata dalla sottorete privata.
-
Scegli Save changes (Salva modifiche).
In questo passaggio, crei un cluster in EKS.
Crea un cluster privato
-
Apri la console EKS, quindi scegli Crea cluster.
-
In Nome, assegna un nome al cluster. Scegli Avanti.
-
Specifica il tuo VPC e altre informazioni di configurazione. Scegli Crea.
Il tuo cluster EKS può essere pubblico o privato. Questo passaggio è per i cluster che hanno SOLO un endpoint privato. Assicurati che il tuo cluster sia privato.
Passaggio 2: configura il tuo cluster privato in Amazon EKS
Questo passaggio è applicabile solo se hai creato un cluster privato. Questo passaggio è per i cluster che hanno SOLO un endpoint privato.
Configura il tuo cluster
-
Collega sottoreti private solo nel cluster EKS nella scheda Rete. Collega le sottoreti private acquisite nella sezione Determina le sottoreti private nel tuo VPC in basso. Fase 1: (Facoltativo) Creare un cluster in Amazon EKS
-
Assicurati che le sottoreti private abbiano accesso a Internet poiché CodePipeline archivia e recupera gli artefatti dal bucket di artefatti S3 per la tua pipeline.
Passaggio 3: aggiorna la politica del ruolo del servizio in IAM CodePipeline
In questo passaggio, aggiornerai un ruolo di CodePipeline servizio esistentecp-service-role, ad esempio con le autorizzazioni necessarie CodePipeline per connettersi al cluster. Se non disponi di un ruolo esistente, creane uno nuovo.
Aggiorna il tuo ruolo di CodePipeline servizio con i seguenti passaggi.
Per aggiornare la politica relativa CodePipeline al ruolo di servizio
-
Aprire la console IAM all'indirizzo https://console.aws.amazon.com/iam/
. -
Dal pannello di controllo della console, scegli Roles (Ruoli).
-
Cerca il tuo ruolo CodePipeline di servizio, ad esempio
cp-service-role. -
Aggiungi una nuova politica in linea.
-
Nell'editor delle politiche, inserisci quanto segue.
-
Per un cluster pubblico, aggiungi le seguenti autorizzazioni.
-
Per un cluster privato, aggiungi le seguenti autorizzazioni. I cluster privati richiederanno autorizzazioni aggiuntive per il tuo VPC, se applicabili.
-
-
Scegli Aggiorna policy.
Fase 4: Creare una voce di accesso per il ruolo di servizio CodePipeline
In questo passaggio, crei una voce di accesso sul tuo cluster che aggiungerà il ruolo di CodePipeline servizio aggiornato nel passaggio 3, insieme a una politica di accesso gestito.
-
Apri la console EKS e accedi al tuo cluster.
-
Scegliere la scheda Accesso.
-
Sotto le voci di accesso IAM, scegli Crea voce di accesso.
-
Nell'ARN principale di IAM, inserisci il ruolo che hai appena aggiornato per l'azione, ad esempio
cp-service-role. Scegli Avanti. -
Nella pagina Step 2: Aggiungi policy di accesso, in Nome policy, scegli la policy gestita per l'accesso, ad esempio
AmazonEKSClusterAdminPolicy. Scegli Aggiungi policy. Scegli Avanti.Nota
Questa è la politica utilizzata dall' CodePipeline azione per parlare con Kubernetes. Come best practice, per limitare le autorizzazioni nella tua policy con privilegi minimi anziché in quella amministrativa, allega invece una policy personalizzata.
-
Nella pagina di revisione, scegli Crea.
Passaggio 5: crea un repository di sorgenti e aggiungi i file di configurazione del grafico Helm
In questo passaggio, crei un file di configurazione appropriato per la tua azione (file manifest di Kubernetes o diagramma di Helm) e memorizzi il file di configurazione nel tuo repository di origine. Usa il file appropriato per la tua configurazione. Per ulteriori informazioni, consulta https://kubernetes.io/docs/reference/kubectl/quick-reference/
-
Per Kubernetes, usa un file manifest.
-
Per Helm, usa un grafico Helm.
-
Crea o usa un repository esistente GitHub .
-
Crea una nuova struttura nel tuo repository per i tuoi file grafici Helm, come mostrato nell'esempio seguente.
mychart |-- Chart.yaml |-- charts |-- templates | |-- NOTES.txt | |-- _helpers.tpl | |-- deployment.yaml | |-- ingress.yaml | `-- service.yaml `-- values.yaml -
Aggiungete il file al livello principale del vostro repository.
Passaggio 6: creazione della pipeline
Usa la CodePipeline procedura guidata per creare le fasi della pipeline e connettere il tuo repository di origine.
Creazione della pipeline
Apri la console all' CodePipeline indirizzo. https://console.aws.amazon.com/codepipeline/
-
Nella pagina Welcome (Benvenuto), pagina Getting started (Nozioni di base) o pagina Pipelines (Pipeline), scegliere Create pipeline (Crea pipeline).
-
Nella pagina Passaggio 1: scegli l'opzione di creazione, in Opzioni di creazione, scegli l'opzione Crea pipeline personalizzata. Scegli Avanti.
-
Nel passaggio 2: scegli le impostazioni della pipeline, in Nome della pipeline, inserisci.
MyEKSPipeline -
CodePipeline fornisce pipeline di tipo V1 e V2, che si differenziano per caratteristiche e prezzo. Il tipo V2 è l’unico tipo che puoi scegliere nella console. Per ulteriori informazioni, consulta tipi di pipeline. Per informazioni sui prezzi di CodePipeline, vedi Prezzi. https://aws.amazon.com/codepipeline/pricing/
-
In Ruolo di servizio, scegli il ruolo del servizio che hai aggiornato nel passaggio 3.
-
Lasciare i valori predefiniti delle impostazioni in Advanced settings (Impostazioni avanzate), quindi scegliere Next (Successivo).
-
Nella pagina Step 3: Add source stage, in Source provider, scegli di creare una connessione al tuo GitHub repository.
-
Nella pagina Passaggio 4: Aggiungi fase di compilazione, scegli Ignora.
-
Nella pagina Passaggio 5: Aggiungi fase di distribuzione, scegli Amazon EKS.
-
In Tipo di configurazione Deploy, scegli Helm.
-
Nella posizione del grafico di Helm, inserisci il nome della release, ad esempio.
my-releasePer la posizione del grafico di Helm, inserisci il percorso dei file del grafico di Helm, ad esempio.mychart -
Scegli Avanti.
-
-
Nella pagina Step 6: Review (Fase 6: esamina), esamina la configurazione della pipeline, quindi seleziona Create pipeline (Crea pipeline) per creare la pipeline.
-
Una volta eseguita correttamente la pipeline, scegli Visualizza dettagli per visualizzare i log dell'azione e visualizzare l'output dell'azione.