Composizione delle risorse con kro (Kube Resource Orchestrator) - 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à.

Composizione delle risorse con kro (Kube Resource Orchestrator)

kro (Kube Resource Orchestrator) è un progetto open source nativo di Kubernetes che consente di definire Kubernetes personalizzati utilizzando una configurazione semplice e diretta. APIs Con kro, puoi configurare facilmente nuove funzionalità personalizzate che creano un gruppo di oggetti Kubernetes e le operazioni logiche tra di essi. APIs

Con EKS Capabilities, kro è completamente gestito da AWS, eliminando la necessità di installare, mantenere e scalare i controller kro sui cluster.

Come funziona kro

kro introduce una Custom Resource Definition (CRD) chiamata ResourceGraphDefinition (RGD) che consente la creazione semplice e semplificata di Kubernetes personalizzati. APIs Quando crei un fileResourceGraphDefinition, kro utilizza estensioni Kubernetes native per crearne e gestirne di nuove nel tuo cluster. APIs A partire da questa specifica di singola risorsa, kro creerà e registrerà per te un nuovo CRD in base alle tue specifiche e si adatterà per gestire le tue risorse personalizzate appena definite.

RGDs può includere più risorse e kro determinerà le interdipendenze e l'ordine delle risorse, quindi non è necessario. È possibile utilizzare una sintassi semplice per inserire la configurazione da una risorsa all'altra, semplificando notevolmente le composizioni ed eliminando la necessità di operatori «collanti» nel cluster. Con kro, le tue risorse personalizzate possono includere risorse Kubernetes native e qualsiasi definizione di risorsa personalizzata () installata nel cluster. CRDs

kro supporta un singolo tipo di risorsa principale:

  • ResourceGraphDefinition (RGD): definisce una risorsa personalizzata Kubernetes, incapsulando una o più risorse Kubernetes native o personalizzate sottostanti

Oltre a questa risorsa, kro creerà e gestirà il ciclo di vita delle risorse personalizzate create con essa, nonché tutte le risorse che le costituiscono.

kro si integra perfettamente con AWS Controllers for Kubernetes (ACK), consentendoti di comporre risorse per il carico di lavoro con risorse per creare astrazioni di livello superiore. AWS Ciò consente di creare i propri elementi costitutivi del cloud, semplificando la gestione delle risorse e abilitando modelli riutilizzabili con impostazioni di configurazione predefinite e immutabili basate sugli standard organizzativi.

Vantaggi di kro

kro consente ai team della piattaforma di creare Kubernetes personalizzati APIs che compongono più risorse in astrazioni di livello superiore. Ciò semplifica la gestione delle risorse consentendo agli sviluppatori di implementare applicazioni complesse utilizzando risorse personalizzate semplici, standardizzate e con versioni diverse. Definisci modelli riutilizzabili per combinazioni di risorse comuni, consentendo una creazione coerente di risorse in tutta l'organizzazione.

kro utilizza il Common Expression Language (CEL) in Kubernetes per trasferire valori tra le risorse e incorporare la logica condizionale, offrendo flessibilità nella composizione delle risorse. Puoi comporre sia le risorse Kubernetes che le AWS risorse gestite da ACK in modo unificato e personalizzato, abilitando definizioni complete di applicazioni e infrastrutture. APIs

kro supporta la configurazione dichiarativa tramite i manifesti di Kubernetes, abilitando i GitOps flussi di lavoro e l'infrastruttura come pratiche di codice che si integrano perfettamente con i processi di sviluppo esistenti. Come parte di EKS Managed Capabilities, kro è completamente gestito da AWS, eliminando la necessità di installare, configurare e mantenere i controller kro sui cluster.

Esempio: creazione di un ResourceGraphDefinition

L'esempio seguente mostra una procedura semplice ResourceGraphDefinition che crea un'applicazione Web con una distribuzione e un servizio:

apiVersion: kro.run/v1alpha1 kind: ResourceGraphDefinition metadata: name: web-application spec: schema: apiVersion: v1alpha1 kind: WebApplication spec: name: string replicas: integer | default=3 resources: - id: deployment template: apiVersion: apps/v1 kind: Deployment metadata: name: ${schema.spec.name} spec: replicas: ${schema.spec.replicas} - id: service template: apiVersion: v1 kind: Service metadata: name: ${schema.spec.name}

Quando gli utenti creano istanze della risorsa WebApplication personalizzata, kro crea automaticamente le risorse di distribuzione e servizio corrispondenti, gestendone il ciclo di vita insieme alla risorsa personalizzata.

Integrazione con altre funzionalità gestite da EKS

kro si integra con altre funzionalità gestite da EKS.

  • AWS Controllers for Kubernetes (ACK): usa kro per comporre le risorse ACK in astrazioni di livello superiore, semplificando la gestione delle risorse. AWS

  • Argo CD: utilizza Argo CD per gestire l'implementazione di risorse personalizzate kro su più cluster, abilitando flussi di lavoro per gli elementi costitutivi della piattaforma e gli stack di applicazioni. GitOps

Guida introduttiva a kro

Per iniziare a usare EKS Capability for kro:

  1. Crea una risorsa con funzionalità kro sul tuo cluster EKS tramite la AWS console, la AWS CLI o la tua infrastruttura preferita come strumento di codice.

  2. Crea ResourceGraphDefinitions (RGDs) che definisce le tue composizioni personalizzate APIs e di risorse.

  3. Applica istanze delle tue risorse personalizzate per fornire e gestire Kubernetes e risorse sottostanti. AWS