7.7. OpenShift Container Platform 컨테이너에서 원격 명령 실행


CLI를 사용하여 OpenShift Container Platform 컨테이너에서 원격 명령을 실행할 수 있습니다.

7.7.1. 컨테이너에서 원격 명령 실행

원격 컨테이너 명령 실행을 위한 지원은 CLI에 빌드됩니다.

프로세스

컨테이너에서 명령을 실행하려면 다음을 수행합니다.

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

예를 들면 다음과 같습니다.

$ oc exec mypod date

출력 예

Thu Apr  9 02:21:53 UTC 2015

중요

보안상의 이유로 cluster-admin 사용자가 명령을 실행하는 경우를 제외하고 권한 있는 컨테이너에 액세스하면 oc exec 명령이 작동하지 않습니다.

7.7.2. 클라이언트에서 원격 명령을 시작하는 프로토콜

클라이언트는 Kubernetes API 서버에 대한 요청을 발행하여 컨테이너에서 원격 명령 실행을 시작합니다.

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

위 URL에서

  • <node_name>은 노드의 FQDN입니다.
  • <namespace>는 대상 Pod의 프로젝트입니다.
  • <pod>는 대상 Pod의 이름입니다.
  • <container>는 대상 컨테이너의 이름입니다.
  • <command>는 실행하기를 원하는 명령입니다.

예를 들면 다음과 같습니다.

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

또한 클라이언트는 요청에 매개변수를 추가하여 다음에 대한 여부를 표시할 수 있습니다.

  • 클라이언트에서 원격 컨테이너의 명령(stdin)에 입력을 보내야 합니다.
  • 클라이언트의 터미널이 TTY입니다.
  • 원격 컨테이너의 명령에서 stdout의 출력을 클라이언트로 보내야 합니다.
  • 원격 컨테이너의 명령에서 stderr의 출력을 클라이언트로 보내야 합니다.

클라이언트는 API 서버로 exec 요청을 보낸 후 다중 스트림을 지원하는 연결로 연결을 업그레이드합니다. 현재 구현에서는 HTTP/2 를 사용합니다.

클라이언트는 stdin, stdout, stderr에 대해 각각 하나의 스트림을 생성합니다. 클라이언트는 스트림을 구분하기 위해 스트림의 streamType 헤더를 stdin, stdout, stderr 중 하나로 설정합니다.

클라이언트는 원격 명령 실행 요청을 완료하면 모든 스트림, 업그레이드된 연결, 기본 연결을 종료합니다.

Red Hat logoGithubRedditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

Red Hat을 사용하는 고객은 신뢰할 수 있는 콘텐츠가 포함된 제품과 서비스를 통해 혁신하고 목표를 달성할 수 있습니다.

보다 포괄적 수용을 위한 오픈 소스 용어 교체

Red Hat은 코드, 문서, 웹 속성에서 문제가 있는 언어를 교체하기 위해 최선을 다하고 있습니다. 자세한 내용은 다음을 참조하세요.Red Hat 블로그.

Red Hat 소개

Red Hat은 기업이 핵심 데이터 센터에서 네트워크 에지에 이르기까지 플랫폼과 환경 전반에서 더 쉽게 작업할 수 있도록 강화된 솔루션을 제공합니다.

© 2024 Red Hat, Inc.