Considerazioni ACK per EKS - Amazon EKS

Contribuisci a migliorare questa pagina

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

Per contribuire a questa guida per l'utente, scegli il GitHub link Modifica questa pagina nel riquadro destro di ogni pagina.

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

Considerazioni ACK per EKS

Questo argomento tratta importanti considerazioni sull'utilizzo di EKS Capability for ACK, tra cui la configurazione IAM, i modelli multi-account e l'integrazione con altre funzionalità EKS.

Modelli di configurazione IAM

La funzionalità ACK utilizza un IAM Capability Role con AWS cui eseguire l'autenticazione. Scegli il modello IAM giusto in base alle tue esigenze.

Semplice: ruolo a capacità singola

Per casi di sviluppo, test o semplici casi d'uso, concedi tutte le autorizzazioni necessarie direttamente al Capability Role.

Quando usare:

  • Guida introduttiva a ACK

  • Implementazioni con account singolo

  • Tutte le risorse sono gestite da un unico team

  • Ambienti di sviluppo e test

Esempio: aggiungi le autorizzazioni S3 e RDS al tuo Capability Role con condizioni di etichettatura delle risorse:

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": ["s3:*"], "Resource": "*", "Condition": { "StringEquals": { "aws:RequestedRegion": ["us-west-2", "us-east-1"] } } }, { "Effect": "Allow", "Action": ["rds:*"], "Resource": "*", "Condition": { "StringEquals": { "aws:RequestedRegion": ["us-west-2", "us-east-1"] }, } } ] }

Questo esempio limita le operazioni S3 e RDS a regioni specifiche e richiede che le risorse RDS abbiano un tag. ManagedBy: ACK

Produzione: IAM Role Selectors

Per gli ambienti di produzione, utilizza IAM Role Selectors per implementare l'accesso con privilegi minimi e l'isolamento a livello di namespace.

Quando usare:

  • Ambienti di produzione

  • Cluster con più team

  • Gestione delle risorse su più account

  • Requisiti di sicurezza con privilegi minimi

  • Servizi diversi richiedono autorizzazioni diverse

Vantaggi:

  • Ogni namespace ottiene solo le autorizzazioni necessarie

  • Isolamento del team: il team A non può utilizzare le autorizzazioni del team B

  • Controllo e conformità più semplici

  • Necessario per la gestione delle risorse tra account

Per una configurazione dettagliata di IAM Role Selector, consulta. Configurare le autorizzazioni ACK

Integrazione con altre funzionalità EKS

GitOps con Argo CD

Usa il CD EKS Capability for Argo per distribuire risorse ACK dai repository Git, abilitando GitOps flussi di lavoro per la gestione dell'infrastruttura.

Considerazioni:

  • Archivia le risorse ACK insieme ai manifesti delle applicazioni per end-to-end GitOps

  • Organizza per ambiente, servizio o tipo di risorsa in base alla struttura del tuo team

  • Usa la sincronizzazione automatica di Argo CD per una riconciliazione continua

  • Abilita la potatura per rimuovere automaticamente le risorse eliminate

  • Prendi in considerazione hub-and-spoke i modelli per la gestione dell'infrastruttura multicluster

GitOps fornisce audit trail, funzionalità di rollback e gestione dichiarativa dell'infrastruttura. Per ulteriori informazioni su Argo CD, vedere. Lavorare con Argo CD

Composizione delle risorse con kro

Usa EKS Capability for kro (Kube Resource Orchestrator) per comporre più risorse ACK in astrazioni di livello superiore e personalizzate. APIs

Quando usare kro con ACK:

  • Crea modelli riutilizzabili per stack di infrastruttura comuni (database + backup + monitoraggio)

  • Crea piattaforme self-service semplificate per i team applicativi APIs

  • Gestisci le dipendenze delle risorse e passa i valori tra le risorse (funzione ARN a Lambda del bucket S3)

  • Standardizza le configurazioni dell'infrastruttura tra i team

  • Riduci la complessità nascondendo i dettagli di implementazione dietro risorse personalizzate

Modelli di esempio:

  • Stack di applicazioni: bucket S3+coda SQS+configurazione delle notifiche

  • Configurazione del database: istanza RDS + gruppo di parametri + gruppo di sicurezza + segreti

  • Rete: VPC + sottoreti + tabelle di routing + gruppi di sicurezza

kro gestisce l'ordinamento delle dipendenze, la propagazione dello stato e la gestione del ciclo di vita per le risorse composte. Per ulteriori informazioni su kro, consulta. concetti kro

Organizzazione delle risorse

Organizza le risorse ACK utilizzando i namespace e i tag delle AWS risorse Kubernetes per migliorare la gestione, il controllo degli accessi e il monitoraggio dei costi.

Organizzazione dei namespace

Usa gli spazi dei nomi Kubernetes per separare logicamente le risorse ACK per ambiente (produzione, gestione temporanea, sviluppo), team (piattaforma, dati, ML) o applicazione.

Vantaggi:

  • RBAC con ambito namespace per il controllo degli accessi

  • Imposta le regioni predefinite per namespace utilizzando le annotazioni

  • Gestione e pulizia delle risorse più semplici

  • Separazione logica in linea con la struttura organizzativa

Aggiunta di tag alle risorse

EKS applica automaticamente i tag alle AWS risorse gestite da ACK, inclusa la risorsa di funzionalità ARN. Aggiungi tag aggiuntivi per l'allocazione dei costi, il monitoraggio della proprietà e per scopi organizzativi.

Tag consigliati:

  • Ambiente (produzione, messa in scena, sviluppo)

  • Proprietà del team o del reparto

  • Centro di costo per l'allocazione della fatturazione

  • Nome dell'applicazione o del servizio

  • ManagedBy: ACK (per identificare le risorse gestite da ACK)

Migrazione da altri strumenti Infrastructure-as-code

Molte organizzazioni stanno trovando valore nella standardizzazione su Kubernetes oltre all'orchestrazione dei carichi di lavoro. La migrazione dell'infrastruttura e della gestione AWS delle risorse verso ACK consente di standardizzare la gestione dell'infrastruttura utilizzando Kubernetes insieme ai carichi di lavoro delle applicazioni. APIs

Vantaggi della standardizzazione su Kubernetes per l'infrastruttura:

  • Un'unica fonte di verità: gestisci sia le applicazioni che l'infrastruttura in Kubernetes, abilitando una pratica end-to-end GitOps

  • Strumenti unificati: i team utilizzano le risorse e gli strumenti Kubernetes anziché apprendere più strumenti e framework

  • Riconciliazione coerente: ACK riconcilia continuamente le AWS risorse come fa Kubernetes per i carichi di lavoro, rilevando e correggendo le deviazioni rispetto agli strumenti imperativi

  • Composizioni native: con kro e ACK insieme, puoi fare riferimento alle risorse direttamente nelle applicazioni e nei manifesti delle risorse, passando stringhe di connessione e tra AWS le risorse ARNs

  • Operazioni semplificate: un unico piano di controllo per le implementazioni, i rollback e l'osservabilità sull'intero sistema

ACK supporta l'adozione AWS delle risorse esistenti senza ricrearle, abilitando la migrazione senza tempi di inattività da Terraform o da CloudFormation risorse esterne al cluster.

Adotta una risorsa esistente:

apiVersion: s3.services.k8s.aws/v1alpha1 kind: Bucket metadata: name: existing-bucket annotations: services.k8s.aws/adoption-policy: "adopt-or-create" spec: name: my-existing-bucket-name

Una volta adottata, la risorsa viene gestita da ACK e può essere aggiornata tramite i manifesti di Kubernetes. È possibile migrare in modo incrementale, adottando le risorse necessarie e mantenendo gli strumenti IaC esistenti per altre risorse.

ACK supporta anche risorse di sola lettura. Per le risorse gestite da altri team o strumenti a cui desideri fare riferimento ma non modificare, combina l'adozione con la politica di retain eliminazione e concedi solo le autorizzazioni IAM di lettura. Ciò consente alle applicazioni di scoprire l'infrastruttura condivisa (ruoli IAMVPCs, chiavi KMS) tramite APIs Kubernetes senza rischiare modifiche.

Per ulteriori informazioni sull'adozione delle risorse, consulta. Concetti ACK

Politiche di eliminazione

Le politiche di eliminazione controllano cosa succede alle AWS risorse quando elimini la risorsa Kubernetes corrispondente. Scegli la politica giusta in base al ciclo di vita delle risorse e ai tuoi requisiti operativi.

Elimina (impostazione predefinita)

La AWS risorsa viene eliminata quando elimini la risorsa Kubernetes. Ciò mantiene la coerenza tra il cluster e AWS garantisce che le risorse non si accumulino.

Quando usare delete:

  • Ambienti di sviluppo e test in cui la pulizia è importante

  • Risorse temporanee legate al ciclo di vita delle applicazioni (database di test, bucket temporanei)

  • Risorse che non dovrebbero durare più a lungo dell'applicazione (code SQS, cluster) ElastiCache

  • Ottimizzazione dei costi: ripulisci automaticamente le risorse inutilizzate

  • Ambienti gestiti GitOps in cui la rimozione delle risorse da Git dovrebbe eliminare l'infrastruttura

La politica di eliminazione predefinita è in linea con il modello dichiarativo di Kubernetes: ciò che è contenuto nel cluster corrisponde a ciò che esiste in. AWS

Mantenimento

La AWS risorsa viene conservata quando elimini la risorsa Kubernetes. Ciò protegge i dati critici e consente alle risorse di sopravvivere più a lungo della loro rappresentazione in Kubernetes.

Quando usare Retain:

  • Database di produzione con dati critici che devono sopravvivere alle modifiche dei cluster

  • Bucket di storage a lungo termine con requisiti di conformità o di controllo

  • Risorse condivise utilizzate da più applicazioni o team

  • Risorse in fase di migrazione verso diversi strumenti di gestione

  • Scenari di disaster recovery in cui si desidera preservare l'infrastruttura

  • Risorse con dipendenze complesse che richiedono uno smantellamento accurato

apiVersion: rds.services.k8s.aws/v1alpha1 kind: DBInstance metadata: name: production-db annotations: services.k8s.aws/deletion-policy: "retain" spec: dbInstanceIdentifier: prod-db # ... configuration
Importante

Le risorse conservate continuano a comportare AWS costi e devono essere eliminate manualmente quando non sono più necessarie. AWS Utilizza l'etichettatura delle risorse per tenere traccia delle risorse conservate per la pulizia.

Per ulteriori informazioni sulle politiche di eliminazione, vedere. Concetti ACK

Documentazione upstream

Per informazioni dettagliate sull'uso di ACK:

Fasi successive