Composition des ressources avec kro (Kube Resource Orchestrator) - Amazon EKS

Aidez à améliorer cette page

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Pour contribuer à ce guide de l'utilisateur, cliquez sur le GitHub lien Modifier cette page sur qui se trouve dans le volet droit de chaque page.

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Composition des ressources avec kro (Kube Resource Orchestrator)

kro (Kube Resource Orchestrator) est un projet open source natif de Kubernetes qui vous permet de définir des Kubernetes personnalisés à l'aide d'une configuration simple et directe. APIs Avec kro, vous pouvez facilement configurer de nouvelles personnalisations APIs qui créent un groupe d'objets Kubernetes et les opérations logiques entre eux.

Grâce aux fonctionnalités d'EKS, Kro est entièrement géré par AWS, ce qui élimine le besoin d'installer, de maintenir et de dimensionner les contrôleurs Kro sur vos clusters.

Comment fonctionne Kro

kro introduit une définition de ressource personnalisée (CRD) appelée ResourceGraphDefinition (RGD) qui permet de créer des Kubernetes personnalisés de manière simple et rationalisée. APIs Lorsque vous créez unResourceGraphDefinition, kro utilise des extensions Kubernetes natives pour créer et gérer de nouvelles APIs extensions dans votre cluster. À partir de cette spécification de ressource unique, kro créera et enregistrera un nouveau CRD pour vous en fonction de votre spécification et s'adaptera pour gérer vos ressources personnalisées nouvellement définies.

RGDs peut inclure plusieurs ressources, et kro déterminera les interdépendances et l'ordre des ressources, pour que vous n'ayez pas à le faire. Vous pouvez utiliser une syntaxe simple pour injecter de la configuration d'une ressource à l'autre, ce qui simplifie considérablement les compositions et élimine le besoin d'opérateurs de « colle » dans votre cluster. Avec kro, vos ressources personnalisées peuvent inclure des ressources Kubernetes natives ainsi que toutes les définitions de ressources personnalisées (CRDs) installées dans le cluster.

kro prend en charge un seul type de ressource principale :

  • ResourceGraphDefinition (RGD) : définit une ressource personnalisée Kubernetes, encapsulant une ou plusieurs ressources Kubernetes natives ou personnalisées sous-jacentes

En plus de cette ressource, kro créera et gérera le cycle de vie de vos ressources personnalisées créées avec elle, ainsi que de toutes les ressources qui les constituent.

kro s'intègre parfaitement à AWS Controllers for Kubernetes (ACK), ce qui vous permet de composer des ressources de charge de travail avec des ressources pour créer des abstractions de AWS haut niveau. Cela vous permet de créer vos propres éléments constitutifs du cloud, de simplifier la gestion des ressources et d'activer des modèles réutilisables avec des paramètres de configuration par défaut et immuables basés sur les normes de votre organisation.

Les avantages de Kro

kro permet aux équipes de plateforme de créer des Kubernetes personnalisés APIs qui composent plusieurs ressources en abstractions de niveau supérieur. Cela simplifie la gestion des ressources en permettant aux développeurs de déployer des applications complexes à l'aide de ressources personnalisées simples, standardisées et versionnées. Vous définissez des modèles réutilisables pour les combinaisons de ressources communes, ce qui permet une création de ressources cohérente au sein de votre organisation.

kro utilise le langage d'expression commun (CEL) dans Kubernetes pour transmettre des valeurs entre les ressources et intégrer une logique conditionnelle, offrant ainsi une flexibilité dans la composition des ressources. Vous pouvez composer à la fois les ressources Kubernetes et les AWS ressources gérées par ACK de manière personnalisée unifiée APIs, ce qui permet de définir des applications et des infrastructures complètes.

kro prend en charge la configuration déclarative via les manifestes Kubernetes, ce qui permet aux GitOps flux de travail et à l'infrastructure de devenir des pratiques de code qui s'intègrent parfaitement à vos processus de développement existants. Dans le cadre des fonctionnalités gérées par EKS, kro est entièrement géré par AWS, ce qui élimine le besoin d'installer, de configurer et de maintenir des contrôleurs kro sur vos clusters.

Exemple : création d'un ResourceGraphDefinition

L'exemple suivant montre une application simple ResourceGraphDefinition qui crée une application Web avec un déploiement et un service :

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}

Lorsque les utilisateurs créent des instances de la ressource WebApplication personnalisée, kro crée automatiquement les ressources de déploiement et de service correspondantes, en gérant leur cycle de vie ainsi que la ressource personnalisée.

Intégration avec d'autres fonctionnalités gérées par EKS

kro s'intègre aux autres fonctionnalités gérées par EKS.

  • AWS Contrôleurs pour Kubernetes (ACK) : utilisez kro pour composer les ressources ACK en abstractions de niveau supérieur, simplifiant ainsi la gestion des ressources. AWS

  • Argo CD : utilisez Argo CD pour gérer le déploiement de ressources personnalisées Kro sur plusieurs clusters, en activant des GitOps flux de travail pour les éléments constitutifs de votre plate-forme et les piles d'applications.

Débuter avec Kro

Pour commencer à utiliser la fonctionnalité EKS pour Kro :

  1. Créez une ressource de capacité Kro sur votre cluster EKS via la AWS console, la AWS CLI ou votre infrastructure préférée en tant qu'outil de code.

  2. Créez ResourceGraphDefinitions (RGDs) qui définit vos compositions personnalisées APIs et vos compositions de ressources.

  3. Appliquez des instances de vos ressources personnalisées pour provisionner et gérer les Kubernetes et les ressources sous-jacentes. AWS