View a markdown version of this page

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 su che si trova 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.

Schemi di configurazione IAM

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

Semplice: ruolo con capacità singola

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

Quando usare:

  • Guida introduttiva a ACK

  • Single-account implementazioni

  • Tutte le risorse gestite da un 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"], "aws:ResourceTag/ManagedBy": "ACK" } } } ] }

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 i selettori di ruolo IAM per implementare l'accesso con privilegi minimi e l'isolamento a livello di namespace.

Quando usare:

  • Ambienti di produzione

  • Multi-team cluster

  • Multi-account gestione delle risorse

  • Least-privilege requisiti di sicurezza

  • 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 più 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 i flussi di GitOps lavoro per la gestione dell'infrastruttura.

Considerazioni:

  • Archivia le risorse ACK insieme ai manifesti delle applicazioni per un uso completo 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 l'eliminazione per rimuovere automaticamente le risorse eliminate

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

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 API personalizzate.

Quando usare kro con ACK:

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

  • Crea piattaforme self-service con API semplificate per i team applicativi

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

  • Standardizza le configurazioni dell'infrastruttura tra i team

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

Schemi 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 delle risorse composte. Per saperne di più su kro, vedi. concetti kro

Organizzazione delle risorse

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

Organizzazione dei namespace

Usa i namespace Kubernetes per separare logicamente le risorse ACK per ambiente (produzione, staging, sviluppo), team (piattaforma, dati, ml) o applicazione.

Vantaggi:

  • Namespace-scoped RBAC per il controllo degli accessi

  • Imposta le regioni predefinite per namespace utilizzando le annotazioni

  • Gestione e pulizia delle risorse più semplici

  • Separazione logica allineata alla struttura organizzativa

Aggiunta di tag alle risorse

La funzionalità EKS ACK applica automaticamente i tag predefiniti a tutte le AWS risorse che crea. Questi tag sono diversi dagli ACK autogestiti e forniscono una migliore tracciabilità.

Tag predefiniti applicati dalla funzionalità:

Tag Key Description

eks:controller-version

La versione del controller ACK

eks:kubernetes-namespace

Lo spazio dei nomi Kubernetes della risorsa ACK

eks:kubernetes-resource-name

Il nome della risorsa Kubernetes

eks:kubernetes-api-group

Il gruppo di API Kubernetes (ad esempio,) s3.services.k8s.aws

eks:eks-capability-arn

L'ARN della funzionalità EKS ACK

Nota

Self-managed ACK utilizza diversi tag predefiniti: services.k8s.aws/controller-version eservices.k8s.aws/namespace. I tag della funzionalità utilizzano il eks: prefisso per garantire la coerenza con le altre funzionalità EKS.

Tag aggiuntivi consigliati:

Aggiungi tag personalizzati per l'allocazione dei costi, il monitoraggio della proprietà e per scopi organizzativi:

  • 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

Migrazione da altri Infrastructure-as-code strumenti

Molte organizzazioni stanno trovando valore nella standardizzazione su Kubernetes al di là dell'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 le API Kubernetes insieme ai carichi di lavoro delle applicazioni.

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 di 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 la deriva rispetto agli strumenti imperativi

  • Composizioni native: unendo kro e ACK, è possibile fare riferimento alle risorse direttamente nei manifesti delle applicazioni e delle risorse, passando stringhe di connessione e ARN tra AWS le risorse

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

ACK supporta l'adozione AWS delle risorse esistenti senza ricrearle, consentendo una 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 è gestita da ACK e può essere aggiornata tramite i manifesti di Kubernetes. È possibile eseguire la migrazione 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 vuoi 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 (VPC, ruoli IAM, chiavi KMS) tramite le API 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 si elimina la risorsa Kubernetes corrispondente. Scegli la policy giusta in base al ciclo di vita delle risorse e ai tuoi requisiti operativi.

Elimina (impostazione predefinita)

La AWS risorsa viene eliminata quando si elimina la risorsa Kubernetes. Ciò mantiene la coerenza tra il cluster e AWS, assicurando 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: ripulisce 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 è nel cluster corrisponde a ciò che esiste in. AWS

Mantenimento

La AWS risorsa viene conservata quando si elimina la risorsa Kubernetes. Ciò protegge i dati critici e consente alle risorse di sopravvivere alla loro rappresentazione Kubernetes.

Quando usare keep:

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

  • Long-term bucket di archiviazione con requisiti di conformità o di audit

  • 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 un'attenta disattivazione

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 Usa 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, consulta le seguenti pagine del sito Web ACK:

  • Per creare e gestire le risorse, consulta la guida all'uso di ACK.

  • Per una documentazione completa sulle API per tutti i servizi, consulta il riferimento all'API ACK.

  • Per una documentazione utente completa, consulta la documentazione ACK.

Fasi successive