7.7. Exécution de commandes distantes dans un conteneur dédié OpenShift


Le CLI permet d’exécuter des commandes distantes dans un conteneur dédié OpenShift.

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