

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

# Création d'une fonctionnalité Kro
<a name="create-kro-capability"></a>

Cette rubrique explique comment créer une fonctionnalité Kro sur votre cluster Amazon EKS.

## Conditions préalables
<a name="_prerequisites"></a>

Avant de créer une fonctionnalité Kro, assurez-vous de disposer des éléments suivants :
+ Un cluster Amazon EKS existant exécutant une version de Kubernetes prise en charge (toutes les versions du support standard et étendu sont prises en charge)
+ Autorisations IAM suffisantes pour créer des ressources de capacités sur les clusters EKS
+ (Pour CLI/ekSCTL) L'outil CLI approprié est installé et configuré

**Note**  
Contrairement à ACK et Argo CD, kro n'a pas besoin d'autorisations IAM supplémentaires au-delà de la politique de confiance. kro fonctionne entièrement au sein de votre cluster et n'effectue pas d'appels d'API. AWS Cependant, vous devez tout de même fournir un rôle de capacité IAM avec la politique de confiance appropriée. Pour plus d'informations sur la configuration des autorisations RBAC de Kubernetes pour kro, consultez. [Configurer les autorisations Kro](kro-permissions.md)

## Choisissez votre outil
<a name="_choose_your_tool"></a>

Vous pouvez créer une fonctionnalité kro à l'aide de la AWS Management Console AWS CLI ou de eksctl :
+  [Création d'une fonctionnalité Kro à l'aide de la console](kro-create-console.md)- Utilisez la console pour une expérience guidée
+  [Création d'une fonctionnalité Kro à l'aide de la CLI AWS](kro-create-cli.md)- Utilisez la AWS CLI pour la création de scripts et l'automatisation
+  [Création d'une capacité kro à l'aide de eksctl](kro-create-eksctl.md)- Utilisez eksctl pour une expérience native de Kubernetes

## Que se passe-t-il lorsque vous créez une capacité Kro
<a name="_what_happens_when_you_create_a_kro_capability"></a>

Lorsque vous créez une fonctionnalité Kro :

1. EKS crée le service Kro Capability et le configure pour surveiller et gérer les ressources de votre cluster

1. Des définitions de ressources personnalisées (CRDs) sont installées dans votre cluster

1. Une entrée d'accès est automatiquement créée pour votre rôle de capacité IAM, `AmazonEKSKROPolicy` qui accorde les autorisations de gestion ResourceGraphDefinitions et de gestion de leurs instances (voir[Considérations relatives à la sécurité relatives aux fonctionnalités EKS](capabilities-security.md))

1. La fonctionnalité assume le rôle de capacité IAM que vous fournissez (utilisé uniquement pour la relation de confiance)

1. kro commence à surveiller les `ResourceGraphDefinition` ressources et leurs instances

1. L'état de capacité passe de `CREATING` à `ACTIVE` 

Une fois actif, vous pouvez créer ResourceGraphDefinitions pour définir des paramètres personnalisés APIs et créer des instances de ceux-ci APIs.

**Note**  
L'entrée d'accès créée automatiquement inclut celle `AmazonEKSKROPolicy` qui accorde à Kro les autorisations de gestion ResourceGraphDefinitions et leurs instances. Pour permettre à kro de créer les ressources Kubernetes sous-jacentes définies dans vos fichiers ResourceGraphDefinitions (telles que les déploiements, les services ou les ressources ACK), vous devez configurer des politiques d'entrée d'accès supplémentaires. Pour en savoir plus sur les entrées d'accès et sur la façon de configurer des autorisations supplémentaires, consultez [Configurer les autorisations Kro](kro-permissions.md) et[Considérations relatives à la sécurité relatives aux fonctionnalités EKS](capabilities-security.md).

## Étapes suivantes
<a name="_next_steps"></a>

Après avoir créé la fonctionnalité Kro :
+  [concepts kro](kro-concepts.md)- Comprendre les concepts Kro et la composition des ressources
+  [concepts kro](kro-concepts.md)- En savoir plus sur SimpleSchema les expressions CEL et les modèles de composition des ressources

# Création d'une fonctionnalité Kro à l'aide de la console
<a name="kro-create-console"></a>

Cette rubrique décrit comment créer une fonctionnalité kro (Kube Resource Orchestrator) à l'aide du. AWS Management Console

## Création de la fonctionnalité Kro
<a name="_create_the_kro_capability"></a>

1. Ouvrez la console Amazon EKS à l'adresse https://console.aws.amazon.com/eks/ home\$1/clusters.

1. Sélectionnez le nom de votre cluster pour ouvrir la page détaillée du cluster.

1. Choisissez l'onglet **Fonctionnalités**.

1. Dans le volet de navigation de gauche, choisissez **kro (Kube Resource Orchestrator**).

1. Choisissez **Create Kro Capability.**

1. Pour le **rôle de capacité IAM** :
   + Si vous possédez déjà un rôle de capacité IAM, sélectionnez-le dans le menu déroulant
   + Si vous devez créer un rôle, choisissez **Create kro** role 

     Cela ouvre la console IAM dans un nouvel onglet avec une politique de confiance préremplie. Le rôle ne nécessite aucune autorisation IAM supplémentaire puisque kro fonctionne entièrement au sein de votre cluster.

     Après avoir créé le rôle, retournez à la console EKS et le rôle sera automatiquement sélectionné.
**Note**  
Contrairement à ACK et Argo CD, kro n'a pas besoin d'autorisations IAM supplémentaires au-delà de la politique de confiance. kro fonctionne entièrement au sein de votre cluster et n'effectue pas d'appels d'API. AWS 

1. Choisissez **Créer**.

Le processus de création de capacités commence.

## Vérifiez que la fonctionnalité est active
<a name="_verify_the_capability_is_active"></a>

1. Dans l'onglet **Capabilities**, consultez l'état des capacités Kro.

1. Attendez que le statut passe de `CREATING` à`ACTIVE`.

1. Une fois active, la fonctionnalité est prête à être utilisée.

Pour plus d'informations sur l'état des fonctionnalités et le dépannage, consultez[Utilisation des ressources en matière de capacités](working-with-capabilities.md).

## Accorder des autorisations pour gérer les ressources Kubernetes
<a name="_grant_permissions_to_manage_kubernetes_resources"></a>

Lorsque vous créez une fonctionnalité kro, une entrée d'accès EKS est automatiquement créée avec le`AmazonEKSKROPolicy`, ce qui permet à kro de gérer ses ResourceGraphDefinitions instances. Cependant, aucune autorisation n'est accordée par défaut pour créer les ressources Kubernetes sous-jacentes (telles que les déploiements, les services ConfigMaps, etc.) définies dans votre. ResourceGraphDefinitions

Cette conception intentionnelle suit le principe du moindre privilège : différents nécessitent des autorisations différentes ResourceGraphDefinitions . Vous devez configurer explicitement les autorisations dont Kro a besoin en fonction des ressources que vous ResourceGraphDefinitions allez gérer.

Pour une mise en route rapide, des environnements de test ou de développement, utilisez `AmazonEKSClusterAdminPolicy` :

1. Dans la console EKS, accédez à l'onglet **Accès** de votre cluster.

1. Sous **Entrées d'accès**, recherchez l'entrée correspondant à votre rôle de capacité Kro (il comportera l'ARN du rôle que vous avez créé précédemment).

1. Choisissez l'entrée d'accès pour en ouvrir les détails.

1. Dans la section **Politiques d'accès**, choisissez **Politique d'accès associée**.

1. Sélectionnez `AmazonEKSClusterAdminPolicy` dans la liste des politiques.

1. Pour **Etendue d'accès**, sélectionnez **Cluster**.

1. Choisissez **Associer**.

**Important**  
Il `AmazonEKSClusterAdminPolicy` accorde des autorisations étendues pour créer et gérer toutes les ressources Kubernetes, y compris la possibilité de créer n'importe quel type de ressource dans tous les espaces de noms. C'est pratique pour le développement POCs mais ne doit pas être utilisé en production. Pour la production, créez des politiques RBAC personnalisées qui n'accordent que les autorisations nécessaires pour les ressources spécifiques que vous ResourceGraphDefinitions allez gérer. Pour obtenir des conseils sur la configuration des autorisations de moindre privilège, reportez-vous [Configurer les autorisations Kro](kro-permissions.md) aux sections et. [Considérations relatives à la sécurité relatives aux fonctionnalités EKS](capabilities-security.md)

## Vérifiez que les ressources personnalisées sont disponibles
<a name="_verify_custom_resources_are_available"></a>

Une fois la fonctionnalité activée, vérifiez que les ressources personnalisées kro sont disponibles dans votre cluster.

 **Utilisation de la console** 

1. Accédez à votre cluster dans la console Amazon EKS

1. Choisissez l'onglet **Ressources**

1. Choisissez les **extensions** 

1. Choisissez **CustomResourceDefinitions** 

Vous devriez voir le type de `ResourceGraphDefinition` ressource répertorié.

 **Utilisation de kubectl** 

```
kubectl api-resources | grep kro.run
```

Vous devriez voir le type de `ResourceGraphDefinition` ressource répertorié.

## Étapes suivantes
<a name="_next_steps"></a>
+  [concepts kro](kro-concepts.md)- Comprendre les concepts Kro et la composition des ressources
+  [concepts kro](kro-concepts.md)- En savoir plus sur SimpleSchema les expressions CEL et les modèles de composition
+  [Utilisation des ressources en matière de capacités](working-with-capabilities.md)- Gérez votre ressource Kro Capability

# Création d'une fonctionnalité Kro à l'aide de la CLI AWS
<a name="kro-create-cli"></a>

Cette rubrique décrit comment créer une fonctionnalité kro (Kube Resource Orchestrator) à l'aide de la CLI. AWS 

## Conditions préalables
<a name="_prerequisites"></a>
+  ** AWS CLI** : version `2.12.3` ou ultérieure. Pour vérifier votre version, lancez`aws --version`. Pour plus d'informations, consultez la section [Installation](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-install.html) dans le guide de l'utilisateur de l'interface de ligne de AWS commande.
+  ** `kubectl` ** : outil de ligne de commande pour travailler avec des clusters Kubernetes. Pour de plus amples informations, veuillez consulter [Configuration de `kubectl` et `eksctl`](install-kubectl.md).

## Étape 1 : Création d'un rôle de capacité IAM
<a name="_step_1_create_an_iam_capability_role"></a>

Créez un fichier de politique de confiance :

```
cat > kro-trust-policy.json << 'EOF'
{
  "Version": "2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Principal": {
        "Service": "capabilities.eks.amazonaws.com"
      },
      "Action": [
        "sts:AssumeRole",
        "sts:TagSession"
      ]
    }
  ]
}
EOF
```

Créez le rôle IAM :

```
aws iam create-role \
  --role-name KROCapabilityRole \
  --assume-role-policy-document file://kro-trust-policy.json
```

**Note**  
Contrairement à ACK et Argo CD, kro ne nécessite pas d'autorisations IAM supplémentaires. kro fonctionne entièrement au sein de votre cluster et n'effectue pas d'appels d'API. AWS Le rôle est uniquement nécessaire pour établir une relation de confiance avec le service des capacités EKS.

## Étape 2 : Création de la fonctionnalité Kro
<a name="_step_2_create_the_kro_capability"></a>

Créez la ressource de capacité Kro sur votre cluster. *region-code*Remplacez-le par la AWS région où se trouve votre cluster (par exemple`us-west-2`) et *my-cluster* par le nom de votre cluster.

```
aws eks create-capability \
  --region region-code \
  --cluster-name my-cluster \
  --capability-name my-kro \
  --type KRO \
  --role-arn arn:aws:iam::$(aws sts get-caller-identity --query Account --output text):role/KROCapabilityRole \
  --delete-propagation-policy RETAIN
```

La commande revient immédiatement, mais la fonctionnalité met un certain temps à devenir active car EKS crée l'infrastructure de capacités et les composants requis. EKS installera les définitions de ressources personnalisées Kubernetes associées à cette fonctionnalité dans votre cluster lors de sa création.

**Note**  
Si vous recevez un message d'erreur indiquant que le cluster n'existe pas ou que vous n'êtes pas autorisé, vérifiez :  
Le nom du cluster est correct
Votre AWS CLI est configurée pour la bonne région
Vous disposez des autorisations IAM requises

## Étape 3 : vérifier que la fonctionnalité est active
<a name="_step_3_verify_the_capability_is_active"></a>

Attendez que la fonctionnalité soit activée. Remplacez *region-code* par la AWS région dans laquelle se trouve votre cluster et remplacez *my-cluster* par le nom de votre cluster.

```
aws eks describe-capability \
  --region region-code \
  --cluster-name my-cluster \
  --capability-name my-kro \
  --query 'capability.status' \
  --output text
```

La fonctionnalité est prête lorsque l'état s'affiche`ACTIVE`.

Vous pouvez également consulter les détails complets des fonctionnalités :

```
aws eks describe-capability \
  --region region-code \
  --cluster-name my-cluster \
  --capability-name my-kro
```

## Étape 4 : octroyer des autorisations pour gérer les ressources Kubernetes
<a name="_step_4_grant_permissions_to_manage_kubernetes_resources"></a>

Lorsque vous créez une fonctionnalité kro, une entrée d'accès EKS est automatiquement créée avec le`AmazonEKSKROPolicy`, ce qui permet à kro de gérer ses ResourceGraphDefinitions instances. Cependant, aucune autorisation n'est accordée par défaut pour créer les ressources Kubernetes sous-jacentes (telles que les déploiements, les services ConfigMaps, etc.) définies dans votre. ResourceGraphDefinitions

Cette conception intentionnelle suit le principe du moindre privilège : différents nécessitent des autorisations différentes ResourceGraphDefinitions . Par exemple :\$1 A ResourceGraphDefinition qui crée uniquement ConfigMaps et Secrets a besoin d'autorisations différentes de celles qui créent des déploiements et des services \$1 A ResourceGraphDefinition qui crée des ressources ACK a besoin d'autorisations pour ces ressources personnalisées spécifiques \$1 Certains ResourceGraphDefinitions peuvent uniquement lire les ressources existantes sans en créer de nouvelles

Vous devez configurer explicitement les autorisations dont Kro a besoin en fonction des ressources que vous ResourceGraphDefinitions allez gérer.

### Configuration rapide
<a name="_quick_setup"></a>

Pour démarrer rapidement, tester ou développer des environnements, utilisez `AmazonEKSClusterAdminPolicy` :

Obtenez l'ARN du rôle de capacité :

```
CAPABILITY_ROLE_ARN=$(aws eks describe-capability \
  --region region-code \
  --cluster-name my-cluster \
  --capability-name my-kro \
  --query 'capability.roleArn' \
  --output text)
```

Associez la politique d'administration du cluster :

```
aws eks associate-access-policy \
  --region region-code \
  --cluster-name my-cluster \
  --principal-arn $CAPABILITY_ROLE_ARN \
  --policy-arn arn:aws:eks::aws:cluster-access-policy/AmazonEKSClusterAdminPolicy \
  --access-scope type=cluster
```

**Important**  
Il `AmazonEKSClusterAdminPolicy` accorde des autorisations étendues pour créer et gérer toutes les ressources Kubernetes, y compris la possibilité de créer n'importe quel type de ressource dans tous les espaces de noms. C'est pratique pour le développement POCs mais ne doit pas être utilisé en production. Pour la production, créez des politiques RBAC personnalisées qui n'accordent que les autorisations nécessaires pour les ressources spécifiques que vous ResourceGraphDefinitions allez gérer. Pour obtenir des conseils sur la configuration des autorisations de moindre privilège, reportez-vous [Configurer les autorisations Kro](kro-permissions.md) aux sections et. [Considérations relatives à la sécurité relatives aux fonctionnalités EKS](capabilities-security.md)

## Étape 5 : vérifier que les ressources personnalisées sont disponibles
<a name="_step_5_verify_custom_resources_are_available"></a>

Une fois la fonctionnalité activée, vérifiez que les ressources personnalisées kro sont disponibles dans votre cluster :

```
kubectl api-resources | grep kro.run
```

Vous devriez voir le type de `ResourceGraphDefinition` ressource répertorié.

## Étapes suivantes
<a name="_next_steps"></a>
+  [concepts kro](kro-concepts.md)- Comprendre les concepts Kro et la composition des ressources
+  [concepts kro](kro-concepts.md)- En savoir plus sur SimpleSchema les expressions CEL et les modèles de composition
+  [Utilisation des ressources en matière de capacités](working-with-capabilities.md)- Gérez votre ressource Kro Capability

# Création d'une capacité kro à l'aide de eksctl
<a name="kro-create-eksctl"></a>

Cette rubrique décrit comment créer une fonctionnalité kro (Kube Resource Orchestrator) à l'aide de eksctl.

**Note**  
Les étapes suivantes nécessitent la version eksctl `0.220.0` ou une version ultérieure. Pour vérifier votre version, lancez`eksctl version`.

## Étape 1 : Création d'un rôle de capacité IAM
<a name="_step_1_create_an_iam_capability_role"></a>

Créez un fichier de politique de confiance :

```
cat > kro-trust-policy.json << 'EOF'
{
  "Version": "2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Principal": {
        "Service": "capabilities.eks.amazonaws.com"
      },
      "Action": [
        "sts:AssumeRole",
        "sts:TagSession"
      ]
    }
  ]
}
EOF
```

Créez le rôle IAM :

```
aws iam create-role \
  --role-name KROCapabilityRole \
  --assume-role-policy-document file://kro-trust-policy.json
```

**Note**  
Contrairement à ACK et Argo CD, kro n'a pas besoin d'autorisations IAM supplémentaires au-delà de la politique de confiance. kro fonctionne entièrement au sein de votre cluster et n'effectue pas d'appels d'API. AWS 

## Étape 2 : Création de la fonctionnalité Kro
<a name="_step_2_create_the_kro_capability"></a>

Créez la capacité kro à l'aide de eksctl. Remplacez *region-code* par la AWS région dans laquelle se trouve votre cluster et remplacez *my-cluster* par le nom de votre cluster.

```
eksctl create capability \
  --region region-code \
  --cluster my-cluster \
  --name my-kro \
  --type KRO \
  --role-arn arn:aws:iam::[.replaceable]111122223333:role/KROCapabilityRole
```

La commande revient immédiatement, mais la fonctionnalité met un certain temps à devenir active.

## Étape 3 : vérifier que la fonctionnalité est active
<a name="_step_3_verify_the_capability_is_active"></a>

Vérifiez l'état des capacités. Remplacez *region-code* par la AWS région dans laquelle se trouve votre cluster et remplacez *my-cluster* par le nom de votre cluster.

```
eksctl get capability \
  --region region-code \
  --cluster my-cluster \
  --name my-kro
```

La fonctionnalité est prête lorsque l'état s'affiche`ACTIVE`.

## Étape 4 : accorder des autorisations pour gérer les ressources Kubernetes
<a name="_step_4_grant_permissions_to_manage_kubernetes_resources"></a>

Par défaut, kro peut uniquement créer ResourceGraphDefinitions et gérer leurs instances. Pour permettre à kro de créer et de gérer les ressources Kubernetes sous-jacentes définies dans votre fichier ResourceGraphDefinitions, associez la politique d'`AmazonEKSClusterAdminPolicy`accès à l'entrée d'accès de la fonctionnalité.

Obtenez l'ARN du rôle de capacité :

```
CAPABILITY_ROLE_ARN=$(aws eks describe-capability \
  --region region-code \
  --cluster my-cluster \
  --name my-kro \
  --query 'capability.roleArn' \
  --output text)
```

Associez la politique d'administration du cluster :

```
aws eks associate-access-policy \
  --region region-code \
  --cluster my-cluster \
  --principal-arn $CAPABILITY_ROLE_ARN \
  --policy-arn arn:aws:eks::aws:cluster-access-policy/AmazonEKSClusterAdminPolicy \
  --access-scope type=cluster
```

**Important**  
Il `AmazonEKSClusterAdminPolicy` accorde des autorisations étendues pour créer et gérer toutes les ressources Kubernetes et vise à rationaliser le démarrage. Pour une utilisation en production, créez des politiques RBAC plus restrictives qui n'accordent que les autorisations nécessaires pour les ressources spécifiques que vous ResourceGraphDefinitions allez gérer. Pour obtenir des conseils sur la configuration des autorisations de moindre privilège, reportez-vous [Configurer les autorisations Kro](kro-permissions.md) aux sections et. [Considérations relatives à la sécurité relatives aux fonctionnalités EKS](capabilities-security.md)

## Étape 5 : vérifier que les ressources personnalisées sont disponibles
<a name="_step_5_verify_custom_resources_are_available"></a>

Une fois la fonctionnalité activée, vérifiez que les ressources personnalisées kro sont disponibles dans votre cluster :

```
kubectl api-resources | grep kro.run
```

Vous devriez voir le type de `ResourceGraphDefinition` ressource répertorié.

## Étapes suivantes
<a name="_next_steps"></a>
+  [concepts kro](kro-concepts.md)- Comprendre les concepts Kro et la composition des ressources
+  [concepts kro](kro-concepts.md)- En savoir plus sur SimpleSchema les expressions CEL et les modèles de composition
+  [Utilisation des ressources en matière de capacités](working-with-capabilities.md)- Gérez votre ressource Kro Capability