Cloud Assistant vous permet d'exécuter des commandes directement dans des conteneurs Kubernetes sur des instances ECS Linux, sans avoir à vous connecter aux instances ni à utiliser des serveurs de rebond. Spécifiez ContainerId ou ContainerName lors de l'appel de RunCommand ou InvokeCommand.
Prérequis
Les instances sont à l'état Running.
-
Cloud Assistant Agent version 2.2.3.344 ou ultérieure est installé sur les instances.
Consultez la rubrique Installer Cloud Assistant Agent.
Limites
Cloud Assistant prend uniquement en charge les conteneurs Kubernetes gérés par CRI s'exécutant sur Docker, containerd ou CRI-O.
-
Lorsque vous exécutez des commandes dans des conteneurs, CRI impose les limites suivantes.
Limite
Solution de contournement
Seul l'utilisateur par défaut du conteneur peut exécuter des commandes.
-
Lorsque
ContainerIdouContainerNameest spécifié, le paramètreUsernameest ignoré. Les commandes s'exécutent en tant qu'utilisateur par défaut du conteneur. -
Pour changer d'utilisateur, exécutez
sudodans le conteneur. Assurez-vous que l'image du conteneur prend en charge le changement d'utilisateur.
Les commandes s'exécutent uniquement dans le répertoire de travail par défaut.
-
Lorsque
ContainerIdouContainerNameest spécifié, le paramètreWorkingDirest ignoré. -
Pour modifier le répertoire de travail, ajoutez une commande
cdau début du script.
Seuls les scripts shell sont pris en charge. Les lignes shebang telles que
#!/usr/bin/pythonne sont pas reconnues.-
Lorsque
ContainerIdouContainerNameest spécifié, les scripts s'exécutent avec/bin/shdans le conteneur. La directive shebang#!est ignorée. -
Pour exécuter un script non shell, appelez directement l'interpréteur. Par exemple, ajoutez
/usr/bin/python -c 'import sys; print(sys.version_info)'pour appeler l'interpréteur Python.
-
Procédure
-
Obtenez l'ID et le nom d'un conteneur Kubernetes.
-
Exécutez des commandes dans des conteneurs avec Cloud Assistant.
Vous ne pouvez exécuter des commandes dans des conteneurs spécifiques qu'en appelant des opérations API. Lors de l'appel de RunCommand ou de InvokeCommand, spécifiez
ContainerId,ContainerNameou les deux.RemarquePour connaître les limites des commandes Cloud Assistant, consultez les sections « Prérequis » et « Informations générales » de la rubrique Utiliser la fonctionnalité d'exécution immédiate.
Résultat
Appelez DescribeInvocations ou DescribeInvocationResults pour interroger l'état d'exécution ou les résultats. La réponse inclut les valeurs ContainerId et ContainerName.