7.7. Exécuter des commandes à distance dans un service Red Hat OpenShift sur le conteneur AWS


Le CLI permet d’exécuter des commandes à distance dans un service OpenShift Red Hat sur le conteneur AWS.

7.7.1. Exécution de commandes distantes dans des conteneurs

La prise en charge de l’exécution de la commande de conteneur à distance est intégrée dans le CLI.

Procédure

Exécuter une commande dans un conteneur:

$ oc exec <pod> [-c <container>] -- <command> [<arg_1> ... <arg_n>]
Copy to Clipboard Toggle word wrap

À titre d’exemple:

$ oc exec mypod date
Copy to Clipboard Toggle word wrap

Exemple de sortie

Thu Apr  9 02:21:53 UTC 2015
Copy to Clipboard Toggle word wrap

Important

À des fins de sécurité, la commande oc exec ne fonctionne pas lors de l’accès aux conteneurs privilégiés, sauf lorsque la commande est exécutée par un utilisateur cluster-admin.

Les clients initient l’exécution d’une commande distante dans un conteneur en envoyant une demande au serveur API Kubernetes:

/proxy/nodes/<node_name>/exec/<namespace>/<pod>/<container>?command=<command>
Copy to Clipboard Toggle word wrap

Dans l’URL ci-dessus:

  • &lt;node_name&gt; est le FQDN du nœud.
  • &lt;namespace&gt; est le projet du pod cible.
  • &lt;pod&gt; est le nom du pod cible.
  • &lt;container&gt; est le nom du conteneur cible.
  • &lt;command&gt; est la commande souhaitée à exécuter.

À titre d’exemple:

/proxy/nodes/node123.openshift.com/exec/myns/mypod/mycontainer?command=date
Copy to Clipboard Toggle word wrap

En outre, le client peut ajouter des paramètres à la demande pour indiquer si:

  • le client doit envoyer une entrée à la commande du conteneur distant (stdin).
  • le terminal du client est un TTY.
  • la commande du conteneur distant doit envoyer la sortie de stdout au client.
  • la commande du conteneur distant doit envoyer la sortie de stderr au client.

Après avoir envoyé une requête exec au serveur API, le client met à niveau la connexion vers celui qui prend en charge les flux multiplexés; l’implémentation actuelle utilise HTTP/2.

Le client crée un flux chacun pour stdin, stdout et stderr. Afin de distinguer entre les flux, le client définit l’en-tête streamType sur le flux sur l’un de stdin, stdout ou stderr.

Le client ferme tous les flux, la connexion mise à niveau et la connexion sous-jacente lorsqu’elle est terminée avec la demande d’exécution de commande à distance.

Retour au début
Red Hat logoGithubredditYoutubeTwitter

Apprendre

Essayez, achetez et vendez

Communautés

À propos de la documentation Red Hat

Nous aidons les utilisateurs de Red Hat à innover et à atteindre leurs objectifs grâce à nos produits et services avec un contenu auquel ils peuvent faire confiance. Découvrez nos récentes mises à jour.

Rendre l’open source plus inclusif

Red Hat s'engage à remplacer le langage problématique dans notre code, notre documentation et nos propriétés Web. Pour plus de détails, consultez le Blog Red Hat.

À propos de Red Hat

Nous proposons des solutions renforcées qui facilitent le travail des entreprises sur plusieurs plates-formes et environnements, du centre de données central à la périphérie du réseau.

Theme

© 2025 Red Hat