2장. OpenShift CLI(oc)

2.1. OpenShift CLI 시작하기

2.1.1. OpenShift CLI 정보

OpenShift CLI(명령줄 인터페이스) 즉, oc 명령을 사용하면 터미널에서 애플리케이션을 생성하고 OpenShift Container Platform 프로젝트를 관리할 수 있습니다. OpenShift CLI를 사용하기에 적합한 경우는 다음과 같습니다.

  • 직접 프로젝트 소스 코드로 작업하는 경우
  • OpenShift Container Platform 작업 스크립트를 작성하는 경우
  • 대역폭 리소스가 제한되고 웹 콘솔을 사용할 수 없는 상태에서 프로젝트를 관리하는 경우

2.1.2. OpenShift CLI 설치

OpenShift CLI(oc)는 바이너리를 다운로드하거나 RPM을 사용하여 설치할 수 있습니다.

2.1.2.1. 바이너리를 다운로드하여 OpenShift CLI 설치

명령줄 인터페이스를 사용하여 OpenShift Container Platform과 상호 작용하기 위해 OpenShift CLI(oc)를 설치할 수 있습니다. Linux, Windows 또는 macOS에 oc를 설치할 수 있습니다.

중요

이전 버전의 oc를 설치한 경우, OpenShift Container Platform 4.6의 모든 명령을 완료하는 데 해당 버전을 사용할 수 없습니다. 새 버전의 oc를 다운로드하여 설치합니다.

2.1.2.1.1. Linux에서 OpenShift CLI 설치

다음 절차를 사용하여 Linux에서 OpenShift CLI(oc) 바이너리를 설치할 수 있습니다.

프로세스

  1. Red Hat 고객 포털에서 OpenShift Container Platform 다운로드 페이지로 이동합니다.
  2. 버전 드롭다운 메뉴에서 적절한 버전을 선택합니다.
  3. OpenShift v4.6 Linux Client 항목 옆에 있는 Download Now (지금 다운로드)를 클릭하고 파일을 저장합니다.
  4. 아카이브의 압축을 풉니다.

    $ tar xvzf <file>
  5. oc 바이너리를 PATH에 있는 디렉터리에 배치합니다.

    PATH를 확인하려면 다음 명령을 실행합니다.

    $ echo $PATH

OpenShift CLI를 설치한 후 oc 명령을 사용할 수 있습니다.

$ oc <command>
2.1.2.1.2. Windows에서 OpenSfhit CLI 설치

다음 절차에 따라 Windows에 OpenShift CLI(oc) 바이너리를 설치할 수 있습니다.

프로세스

  1. Red Hat 고객 포털에서 OpenShift Container Platform 다운로드 페이지로 이동합니다.
  2. 버전 드롭다운 메뉴에서 적절한 버전을 선택합니다.
  3. OpenShift v4.6 Windows Client 항목 옆에 있는 지금 다운로드를 클릭하고 파일을 저장합니다.
  4. ZIP 프로그램으로 아카이브의 압축을 풉니다.
  5. oc 바이너리를 PATH에 있는 디렉터리로 이동합니다.

    PATH를 확인하려면 명령 프롬프트를 열고 다음 명령을 실행합니다.

    C:\> path

OpenShift CLI를 설치한 후 oc 명령을 사용할 수 있습니다.

C:\> oc <command>
2.1.2.1.3. macOS에 OpenShift CLI 설치

다음 절차에 따라 macOS에서 OpenShift CLI(oc) 바이너리를 설치할 수 있습니다.

프로세스

  1. Red Hat 고객 포털에서 OpenShift Container Platform 다운로드 페이지로 이동합니다.
  2. 버전 드롭다운 메뉴에서 적절한 버전을 선택합니다.
  3. OpenShift v4.6 MacOSX Client 항목 옆에 있는 지금 다운로드를 클릭하고 파일을 저장합니다.
  4. 아카이브의 압축을 해제하고 압축을 풉니다.
  5. oc 바이너리 PATH의 디렉터리로 이동합니다.

    PATH를 확인하려면 터미널을 열고 다음 명령을 실행합니다.

    $ echo $PATH

OpenShift CLI를 설치한 후 oc 명령을 사용할 수 있습니다.

$ oc <command>

2.1.2.2. 웹 콘솔을 사용하여 OpenShift CLI 설치

웹 콘솔에서 OpenShift Container Platform과 상호 작용하기 위해 OpenShift CLI(oc)를 설치할 수 있습니다. Linux, Windows 또는 macOS에 oc를 설치할 수 있습니다.

중요

이전 버전의 oc를 설치한 경우, OpenShift Container Platform 4.6의 모든 명령을 완료하는 데 해당 버전을 사용할 수 없습니다. 새 버전의 oc를 다운로드하여 설치합니다.

2.1.2.2.1. 웹 콘솔을 사용하여 Linux에 OpenShift CLI 설치

다음 절차를 사용하여 Linux에서 OpenShift CLI(oc) 바이너리를 설치할 수 있습니다.

절차

  1. 웹 콘솔에서 ? 를 클릭합니다.

    질문 표시를 클릭합니다.
  2. 명령줄 툴 을 클릭합니다.

    CLI 목록
  3. Linux 플랫폼에 적합한 oc 바이너리를 선택한 다음 Download oc for Linux(Linux 용 oc 다운로드)를 클릭합니다.
  4. 파일을 저장합니다.
  5. 아카이브의 압축을 풉니다.

    $ tar xvzf <file>
  6. oc 바이너리를 PATH에 있는 디렉터리로 이동합니다.

    PATH를 확인하려면 다음 명령을 실행합니다.

    $ echo $PATH

OpenShift CLI를 설치한 후 oc 명령을 사용할 수 있습니다.

$ oc <command>
2.1.2.2.2. 웹 콘솔을 사용하여 Windows에서 OpenShift CLI 설치

다음 절차를 사용하여 Winndows에 OpenShift CLI(oc) 바이너리를 설치할 수 있습니다.

절차

  1. 웹 콘솔에서 ? 를 클릭합니다.

    질문 표시를 클릭합니다.
  2. 명령줄 툴 을 클릭합니다.

    CLI 목록
  3. Windows용 oc 바이너리를 선택한 다음 x86_64용 Windows용 oc 다운로드를 클릭합니다.
  4. 파일을 저장합니다.
  5. ZIP 프로그램으로 아카이브의 압축을 풉니다.
  6. oc 바이너리를 PATH에 있는 디렉터리로 이동합니다.

    PATH를 확인하려면 명령 프롬프트를 열고 다음 명령을 실행합니다.

    C:\> path

OpenShift CLI를 설치한 후 oc 명령을 사용할 수 있습니다.

C:\> oc <command>
2.1.2.2.3. 웹 콘솔을 사용하여 macOS에 OpenShift CLI 설치

다음 절차에 따라 macOS에서 OpenShift CLI(oc) 바이너리를 설치할 수 있습니다.

절차

  1. 웹 콘솔에서 ? 를 클릭합니다.

    질문 표시를 클릭합니다.
  2. 명령줄 툴 을 클릭합니다.

    CLI 목록
  3. macOS용 oc 바이너리를 선택한 다음 x86_64용 Mac용 oc 다운로드를 클릭합니다.
  4. 파일을 저장합니다.
  5. 아카이브의 압축을 해제하고 압축을 풉니다.
  6. oc 바이너리 PATH의 디렉터리로 이동합니다.

    PATH를 확인하려면 터미널을 열고 다음 명령을 실행합니다.

    $ echo $PATH

OpenShift CLI를 설치한 후 oc 명령을 사용할 수 있습니다.

$ oc <command>

2.1.2.3. RPM을 사용하여 OpenShift CLI 설치

RHEL(Red Hat Enterprise Linux)의 경우 Red Hat 계정에 활성 OpenShift Container Platform 서브스크립션이 있으면 OpenShift CLI(oc)를 RPM으로 설치할 수 있습니다.

사전 요구 사항

  • root 또는 sudo 권한이 있어야 합니다.

절차

  1. Red Hat Subscription Manager에 등록합니다.

    # subscription-manager register
  2. 최신 서브스크립션 데이터를 가져옵니다.

    # subscription-manager refresh
  3. 사용 가능한 서브스크립션을 나열하십시오.

    # subscription-manager list --available --matches '*OpenShift*'
  4. 이전 명령의 출력에서 OpenShift Container Platform 서브스크립션의 풀 ID를 찾아서 이 서브스크립션을 등록된 시스템에 연결합니다.

    # subscription-manager attach --pool=<pool_id>
  5. OpenShift Container Platform 4.6에 필요한 리포지토리를 활성화합니다.

    • Red Hat Enterprise Linux 8의 경우:

      # subscription-manager repos --enable="rhocp-4.6-for-rhel-8-x86_64-rpms"
    • Red Hat Enterprise Linux 7의 경우:

      # subscription-manager repos --enable="rhel-7-server-ose-4.6-rpms"
  6. openshift-clients 패키지를 설치합니다.

    # yum install openshift-clients

CLI를 설치한 후 oc 명령을 사용할 수 있습니다.

$ oc <command>

2.1.2.4. Homebrew를 사용하여 OpenShift CLI 설치

macOS의 경우 Homebrew 패키지 관리자를 사용하여 OpenShift CLI(oc)를 설치할 수 있습니다.

사전 요구 사항

  • Homebrew(brew)가 설치되어 있어야 합니다.

절차

  • 다음 명령을 실행하여 openshift-cli 패키지를 설치합니다.

    $ brew install openshift-cli

2.1.3. OpenShift CLI에 로그인

oc CLI에 로그인하면 클러스터에 액세스하여 관리할 수 있습니다.

사전 요구 사항

  • OpenShift Container Platform 클러스터에 대한 액세스 권한이 있어야 합니다.
  • CLI가 설치되어 있어야 합니다.
참고

HTTP 프록시 서버를 통해서만 액세스할 수 있는 클러스터에 액세스하려면 HTTP_PROXY, HTTPS_PROXYNO_PROXY 변수를 설정할 수 있습니다. oc CLI에서는 이러한 환경 변수를 준수하므로 클러스터와의 모든 통신이 HTTP 프록시를 통해 이루어집니다.

인증 헤더는 HTTPS 전송을 사용하는 경우에만 전송됩니다.

절차

  • oc login 명령을 사용하여 CLI에 로그인하고 메시지가 표시되면 필요한 정보를 입력합니다.

    $ oc login

    출력 예

    Server [https://localhost:8443]: https://openshift.example.com:6443 1
    The server uses a certificate signed by an unknown authority.
    You can bypass the certificate check, but any data you send to the server could be intercepted by others.
    Use insecure connections? (y/n): y 2
    
    Authentication required for https://openshift.example.com:6443 (openshift)
    Username: user1 3
    Password: 4
    Login successful.
    
    You don't have any projects. You can try to create a new project, by running
    
        oc new-project <projectname>
    
    Welcome! See 'oc help' to get started.

    1
    OpenShift Container Platform 서버 URL을 입력합니다.
    2
    비보안 연결 사용 여부를 입력합니다.
    3
    로그인할 사용자 이름을 입력합니다.
    4
    사용자 암호를 입력합니다.
참고

웹 콘솔에 로그인한 경우 토큰 및 서버 정보를 포함하는 oc login 명령을 생성할 수 있습니다. 명령을 사용하여 대화형 프롬프트 없이 OpenShift Container Platform CLI에 로그인할 수 있습니다. 명령을 생성하려면 웹 콘솔의 오른쪽 상단에 있는 사용자 이름 드롭다운 메뉴에서 로그인 복사 명령을 선택합니다.

이제 클러스터를 관리하기 위한 프로젝트를 생성하거나 다른 명령을 실행할 수 있습니다.

2.1.4. OpenShift CLI 사용

다음 섹션을 검토하여 CLI로 일반적인 작업을 완료하는 방법을 알아봅니다.

2.1.4.1. 프로젝트 생성

oc new-project 명령을 사용하여 새 프로젝트를 생성합니다.

$ oc new-project my-project

출력 예

Now using project "my-project" on server "https://openshift.example.com:6443".

2.1.4.2. 새 애플리케이션 생성

oc new-app 명령을 사용하여 새 애플리케이션을 생성합니다.

$ oc new-app https://github.com/sclorg/cakephp-ex

출력 예

--> Found image 40de956 (9 days old) in imagestream "openshift/php" under tag "7.2" for "php"

...

    Run 'oc status' to view your app.

2.1.4.3. Pod 보기

oc get pods 명령을 사용하여 현재 프로젝트의 Pod를 봅니다.

참고

Pod 내부에서 oc 를 실행하고 네임스페이스를 지정하지 않으면 기본적으로 Pod의 네임스페이스가 사용됩니다.

$ oc get pods -o wide

출력 예

NAME                  READY   STATUS      RESTARTS   AGE     IP            NODE                           NOMINATED NODE
cakephp-ex-1-build    0/1     Completed   0          5m45s   10.131.0.10   ip-10-0-141-74.ec2.internal    <none>
cakephp-ex-1-deploy   0/1     Completed   0          3m44s   10.129.2.9    ip-10-0-147-65.ec2.internal    <none>
cakephp-ex-1-ktz97    1/1     Running     0          3m33s   10.128.2.11   ip-10-0-168-105.ec2.internal   <none>

2.1.4.4. Pod 로그 보기

oc logs 명령을 사용하여 특정 Pod의 로그를 봅니다.

$ oc logs cakephp-ex-1-deploy

출력 예

--> Scaling cakephp-ex-1 to 1
--> Success

2.1.4.5. 현재 프로젝트 보기

oc project 명령을 사용하여 현재 프로젝트를 봅니다.

$ oc project

출력 예

Using project "my-project" on server "https://openshift.example.com:6443".

2.1.4.6. 현재 프로젝트의 상태 보기

oc status 명령을 사용하여 서비스, 배포, 빌드 구성 등 현재 프로젝트에 대한 정보를 봅니다.

$ oc status

출력 예

In project my-project on server https://openshift.example.com:6443

svc/cakephp-ex - 172.30.236.80 ports 8080, 8443
  dc/cakephp-ex deploys istag/cakephp-ex:latest <-
    bc/cakephp-ex source builds https://github.com/sclorg/cakephp-ex on openshift/php:7.2
    deployment #1 deployed 2 minutes ago - 1 pod

3 infos identified, use 'oc status --suggest' to see details.

2.1.4.7. 지원되는 API 리소스 나열

oc api-resources 명령을 사용하여 서버에서 지원되는 API 리소스 목록을 봅니다.

$ oc api-resources

출력 예

NAME                                  SHORTNAMES       APIGROUP                              NAMESPACED   KIND
bindings                                                                                     true         Binding
componentstatuses                     cs                                                     false        ComponentStatus
configmaps                            cm                                                     true         ConfigMap
...

2.1.5. 도움말 가져오기

CLI 명령 및 OpenShift Container Platform 리소스에 대한 도움말을 가져올 수 있는 방법은 다음과 같습니다.

  • oc help를 사용하여 모든 사용 가능한 CLI 명령 목록 및 설명을 가져옵니다.

    예제: CLI에 대한 일반적인 도움말 가져오기

    $ oc help

    출력 예

    OpenShift Client
    
    This client helps you develop, build, deploy, and run your applications on any OpenShift or Kubernetes compatible
    platform. It also includes the administrative commands for managing a cluster under the 'adm' subcommand.
    
    Usage:
      oc [flags]
    
    Basic Commands:
      login           Log in to a server
      new-project     Request a new project
      new-app         Create a new application
    
    ...

  • --help 플래그를 사용하여 특정 CLI 명령에 대한 도움말을 가져옵니다.

    예제: oc create 명령에 대한 도움말 가져오기

    $ oc create --help

    출력 예

    Create a resource by filename or stdin
    
    JSON and YAML formats are accepted.
    
    Usage:
      oc create -f FILENAME [flags]
    
    ...

  • oc explain 명령을 사용하여 특정 리소스에 대한 설명 및 필드를 봅니다.

    예제: Pod 리소스에 대한 문서 보기

    $ oc explain pods

    출력 예

    KIND:     Pod
    VERSION:  v1
    
    DESCRIPTION:
         Pod is a collection of containers that can run on a host. This resource is
         created by clients and scheduled onto hosts.
    
    FIELDS:
       apiVersion	<string>
         APIVersion defines the versioned schema of this representation of an
         object. Servers should convert recognized schemas to the latest internal
         value, and may reject unrecognized values. More info:
         https://git.k8s.io/community/contributors/devel/api-conventions.md#resources
    
    ...

2.1.6. OpenShift CLI에서 로그아웃

OpenShift CLI에서 로그아웃하여 현재 세션을 종료할 수 있습니다.

  • oc logout 명령을 사용합니다.

    $ oc logout

    출력 예

    Logged "user1" out on "https://openshift.example.com"

이렇게 하면 저장된 인증 토큰이 서버에서 삭제되고 구성 파일에서 제거됩니다.