Création d'une fonctionnalité Kro à l'aide de la CLI AWS - 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.

Création d'une fonctionnalité Kro à l'aide de la CLI AWS

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

Conditions préalables

  • AWS CLI : version 2.12.3 ou ultérieure. Pour vérifier votre version, lancezaws --version. Pour plus d'informations, consultez la section Installation 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.

Étape 1 : Création d'un rôle de capacité IAM

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

Créez la ressource de capacité Kro sur votre cluster. region-codeRemplacez-le par la AWS région où se trouve votre cluster (par exempleus-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

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'afficheACTIVE.

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

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'AmazonEKSClusterAdminPolicyaccè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-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 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 aux sections et. Considérations relatives à la sécurité relatives aux fonctionnalités EKS

Étape 5 : vérifier que les ressources personnalisées sont disponibles

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