6.7. Exécuter des commandes à distance dans un conteneur OpenShift Container Platform


Vous pouvez utiliser le CLI pour exécuter des commandes à distance dans un conteneur OpenShift Container Platform.

6.7.1. Exécuter des commandes à distance dans des conteneurs

La prise en charge de l'exécution à distance des commandes de conteneurs est intégrée à la CLI.

Procédure

Pour exécuter une commande dans un conteneur :

$ oc exec <pod> [-c <container>] <command> [<arg_1> ... <arg_n>]

Par exemple :

$ oc exec mypod date

Exemple de sortie

Thu Apr  9 02:21:53 UTC 2015

Important

Pour des raisons de sécurité, la commande oc exec ne fonctionne pas lors de l'accès à des conteneurs privilégiés, sauf si la commande est exécutée par un utilisateur cluster-admin.

6.7.2. Protocole pour initier une commande à distance à partir d'un client

Les clients lancent l'exécution d'une commande à distance dans un conteneur en envoyant une demande au serveur API de Kubernetes :

/proxy/nodes/<node_name>/exec/<namespace>/<pod>/<container>?command=<command>

Dans l'URL ci-dessus :

  • <node_name> est le FQDN du nœud.
  • <namespace> est le projet du pod cible.
  • <pod> est le nom du module cible.
  • <container> est le nom du conteneur cible.
  • <command> est la commande à exécuter.

Par exemple :

/proxy/nodes/node123.openshift.com/exec/myns/mypod/mycontainer?command=date

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

  • le client doit envoyer des données à la commande du conteneur distant (stdin).
  • le terminal du client est un ATS.
  • 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 demande exec au serveur API, le client met à niveau la connexion pour qu'elle prenne en charge les flux multiplexés ; la mise en œuvre actuelle utilise HTTP/2.

Le client crée un flux pour stdin, stdout et stderr. Pour distinguer les flux, le client définit l'en-tête streamType du flux sur l'une des valeurs suivantes : stdin, stdout ou stderr.

Le client ferme tous les flux, la connexion améliorée et la connexion sous-jacente lorsqu'il a terminé la demande d'exécution de la commande à distance.

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.

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

© 2024 Red Hat, Inc.