第2章 OpenShift CLI (oc)
2.1. OpenShift CLI の使用を開始する
2.1.1. OpenShift CLI について
OpenShift CLI (oc
) を使用すると、ターミナルからアプリケーションを作成し、OpenShift Container Platform プロジェクトを管理できます。OpenShift CLI は以下の状況に適しています。
- プロジェクトソースコードを直接使用している。
- OpenShift Container Platform 操作をスクリプト化する。
- 帯域幅リソースによる制限があり、Web コンソールが利用できない状況でのプロジェクトの管理
2.1.2. OpenShift CLI のインストール
OpenShift CLI(oc
) をインストールするには、バイナリーをダウンロードするか、RPM を使用します。
2.1.2.1. バイナリーのダウンロードによる OpenShift CLI のインストール
コマンドラインインターフェイスを使用して OpenShift Container Platform と対話するために CLI (oc
) をインストールすることができます。oc
は Linux、Windows、または macOS にインストールできます。
以前のバージョンの oc
をインストールしている場合、これを使用して OpenShift Container Platform 4.15 のすべてのコマンドを実行することはできません。新規バージョンの oc
をダウンロードし、インストールします。
Linux への OpenShift CLI のインストール
以下の手順を使用して、OpenShift CLI (oc
) バイナリーを Linux にインストールできます。
手順
- Red Hat カスタマーポータルの OpenShift Container Platform ダウンロードページ に移動します。
- Product Variant ドロップダウンリストからアーキテクチャーを選択します。
- バージョン ドロップダウンリストから適切なバージョンを選択します。
- OpenShift v4.18 Linux Client エントリーの横にある Download Now をクリックして、ファイルを保存します。
アーカイブを展開します。
$ tar xvf <file>
oc
バイナリーを、PATH
にあるディレクトリーに配置します。PATH
を確認するには、以下のコマンドを実行します。$ echo $PATH
検証
OpenShift CLI のインストール後に、
oc
コマンドを使用して利用できます。$ oc <command>
Windows への OpenShift CLI のインストール
以下の手順を使用して、OpenShift CLI (oc
) バイナリーを Windows にインストールできます。
手順
- Red Hat カスタマーポータルの OpenShift Container Platform ダウンロードページ に移動します。
- バージョン ドロップダウンリストから適切なバージョンを選択します。
- OpenShift v4.15 Windows Client エントリーの横にある Download Now をクリックして、ファイルを保存します。
- ZIP プログラムでアーカイブを展開します。
oc
バイナリーを、PATH
にあるディレクトリーに移動します。PATH
を確認するには、コマンドプロンプトを開いて以下のコマンドを実行します。C:\> path
検証
OpenShift CLI のインストール後に、
oc
コマンドを使用して利用できます。C:\> oc <command>
macOS への OpenShift CLI のインストール
以下の手順を使用して、OpenShift CLI (oc
) バイナリーを macOS にインストールできます。
手順
- Red Hat カスタマーポータルの OpenShift Container Platform ダウンロードページ に移動します。
- バージョン ドロップダウンリストから適切なバージョンを選択します。
OpenShift v4.18 macOS Client エントリーの横にある Download Now をクリックして、ファイルを保存します。
注記macOS arm64 の場合は、OpenShift v4.15 macOS arm64 Client エントリーを選択します。
- アーカイブを展開し、解凍します。
oc
バイナリーをパスにあるディレクトリーに移動します。PATH
を確認するには、ターミナルを開き、以下のコマンドを実行します。$ echo $PATH
検証
oc
コマンドを使用してインストールを確認します。$ oc <command>
2.1.2.2. Web コンソールを使用した OpenShift CLI のインストール
OpenShift CLI(oc
) をインストールして、Web コンソールから OpenShift Container Platform と対話できます。oc
は Linux、Windows、または macOS にインストールできます。
以前のバージョンの oc
をインストールしている場合、これを使用して OpenShift Container Platform 4.15 のすべてのコマンドを実行することはできません。新しいバージョンの oc
をダウンロードしてインストールしてください。
2.1.2.2.1. Web コンソールを使用した Linux への OpenShift CLI のインストール
以下の手順を使用して、OpenShift CLI (oc
) バイナリーを Linux にインストールできます。
手順
Web コンソールで ? をクリックします。
コマンドラインツール をクリックします。
-
Linux プラットフォームに適した
oc
binary を選択してから、Download oc for Linux をクリックします。 - ファイルを保存します。
アーカイブを展開します。
$ tar xvf <file>
oc
バイナリーを、PATH
にあるディレクトリーに移動します。PATH
を確認するには、以下のコマンドを実行します。$ echo $PATH
OpenShift CLI のインストール後に、oc
コマンドを使用して利用できます。
$ oc <command>
2.1.2.2.2. Web コンソールを使用した Windows への OpenShift CLI のインストール
以下の手順を使用して、OpenShift CLI (oc
) バイナリーを Windows にインストールできます。
手順
Web コンソールで ? をクリックします。
コマンドラインツール をクリックします。
-
Windows プラットフォームの
oc
バイナリーを選択してから、Download oc for Windows for x86_64 をクリックします。 - ファイルを保存します。
- ZIP プログラムでアーカイブを展開します。
oc
バイナリーを、PATH
にあるディレクトリーに移動します。PATH
を確認するには、コマンドプロンプトを開いて以下のコマンドを実行します。C:\> path
OpenShift CLI のインストール後に、oc
コマンドを使用して利用できます。
C:\> oc <command>
2.1.2.2.3. Web コンソールを使用した macOS への OpenShift CLI のインストール
以下の手順を使用して、OpenShift CLI (oc
) バイナリーを macOS にインストールできます。
手順
Web コンソールで ? をクリックします。
コマンドラインツール をクリックします。
macOS プラットフォームの
oc
バイナリーを選択し、Download oc for Mac for x86_64 をクリックします。注記macOS arm64 の場合は、Download oc for Mac for ARM 64 をクリックします。
- ファイルを保存します。
- アーカイブを展開し、解凍します。
oc
バイナリーをパスにあるディレクトリーに移動します。PATH
を確認するには、ターミナルを開き、以下のコマンドを実行します。$ echo $PATH
OpenShift CLI のインストール後に、oc
コマンドを使用して利用できます。
$ oc <command>
2.1.2.3. RPM を使用した OpenShift CLI のインストール
Red Hat Enterprise Linux (RHEL) の場合、Red Hat アカウントに有効な OpenShift Container Platform サブスクリプションがある場合は、OpenShift CLI (oc
) を RPM としてインストールできます。
バイナリーをダウンロードして、RHEL 9 用の oc
をインストールする必要があります。RPM パッケージを使用した oc
のインストールは、Red Hat Enterprise Linux (RHEL) 9 ではサポートされていません。
前提条件
- root または sudo の権限がある。
手順
Red Hat Subscription Manager に登録します。
# subscription-manager register
最新のサブスクリプションデータをプルします。
# subscription-manager refresh
利用可能なサブスクリプションをリスト表示します。
# subscription-manager list --available --matches '*OpenShift*'
直前のコマンドの出力で、OpenShift Container Platform サブスクリプションのプール ID を見つけ、これを登録されたシステムにアタッチします。
# subscription-manager attach --pool=<pool_id>
OpenShift Container Platform 4.15 で必要なリポジトリーを有効にします。
# subscription-manager repos --enable="rhocp-4.15-for-rhel-8-x86_64-rpms"
openshift-clients
パッケージをインストールします。# yum install openshift-clients
検証
-
oc
コマンドを使用してインストールを確認します。
$ oc <command>
2.1.2.4. Homebrew を使用した OpenShift CLI のインストール
macOS の場合は、Homebrew パッケージマネージャーを使用して OpenShift CLI (oc
) をインストールできます。
前提条件
-
Homebrew (
brew
) がインストールされている。
手順
以下のコマンドを実行して openshift-cli パッケージをインストールします。
$ brew install openshift-cli
検証
-
oc
コマンドを使用してインストールを確認します。
$ oc <command>
2.1.3. OpenShift CLI へのログイン
OpenShift CLI (oc
) にログインしてクラスターにアクセスし、これを管理できます。
前提条件
- OpenShift Container Platform クラスターへのアクセス。
-
OpenShift CLI (
oc
) がインストールされている。
HTTP プロキシーサーバー上でのみアクセスできるクラスターにアクセスするには、HTTP_PROXY
、HTTPS_PROXY
および NO_PROXY
変数を設定できます。これらの環境変数は、クラスターとのすべての通信が HTTP プロキシーを経由するように oc
CLI で使用されます。
認証ヘッダーは、HTTPS トランスポートを使用する場合にのみ送信されます。
手順
oc login
コマンドを入力し、ユーザー名を渡します。$ oc login -u user1
プロンプトが表示されたら、必要な情報を入力します。
出力例
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 Password: 3 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.
Web コンソールにログインしている場合には、トークンおよびサーバー情報を含む oc login
コマンドを生成できます。このコマンドを使用して、対話プロンプトなしに OpenShift Container Platform CLI にログインできます。コマンドを生成するには、Web コンソールの右上にあるユーザー名のドロップダウンメニューから Copy login command を選択します。
これで、プロジェクトを作成でき、クラスターを管理するための他のコマンドを実行することができます。
2.1.4. Web ブラウザーを使用した OpenShift CLI へのログイン
Web ブラウザーを使用して OpenShift CLI (oc
) にログインし、クラスターにアクセスして管理できます。これにより、ユーザーはアクセストークンをコマンドラインに挿入する必要がなくなります。
Web ブラウザー経由で CLI にログインすると、HTTPS ではなく HTTP を使用してローカルホスト上のサーバーが実行します。マルチユーザーワークステーションでは注意して使用してください。
前提条件
- OpenShift Container Platform クラスターへのアクセス。
-
OpenShift CLI (
oc
) がインストールされている。 - ブラウザーがインストールされている。
手順
--web
フラグを指定してoc login
コマンドを入力します。$ oc login <cluster_url> --web 1
- 1
- オプションで、サーバー URL とコールバックポートを指定できます。たとえば、
oc login <cluster_url> --web --callback-port 8280 localhost:8443
。
Web ブラウザーが自動的に開きます。表示されない場合は、コマンド出力内のリンクをクリックします。OpenShift Container Platform サーバーを指定しない場合、
oc
は現在のoc
設定ファイルで指定されているクラスターの Web コンソールを開こうとします。oc
設定が存在しない場合、oc
はサーバー URL を対話的に要求します。出力例
Opening login URL in the default browser: https://openshift.example.com Opening in existing browser session.
- 複数の認証プロバイダーが使用できる場合は、提供されるオプションから選択します。
-
ユーザー名とパスワードをブラウザーの対応するフィールドに入力します。ログインすると、ブラウザーには
access token received successfully; please return to your terminal
と表示されます。 CLI でログイン確認を確認します。
出力例
Login successful. You don't have any projects. You can try to create a new project, by running oc new-project <projectname>
Web コンソールのデフォルトは、前のセッションで使用されたプロファイルになります。管理者プロファイルと開発者プロファイルを切り替えるには、OpenShift Container Platform Web コンソールからログアウトし、キャッシュをクリアします。
これで、プロジェクトを作成でき、クラスターを管理するための他のコマンドを実行することができます。
2.1.5. OpenShift CLI の使用
以下のセクションで、CLI を使用して一般的なタスクを実行する方法を確認します。
2.1.5.1. プロジェクトの作成
新規プロジェクトを作成するには、oc new-project
コマンドを使用します。
$ oc new-project my-project
出力例
Now using project "my-project" on server "https://openshift.example.com:6443".
2.1.5.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.5.3. Pod の表示
現在のプロジェクトの Pod を表示するには、oc get pods
コマンドを使用します。
Pod 内で oc
を実行し、namespace を指定しない場合は、Pod の namespace がデフォルトで使用されます。
$ 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.5.4. Pod ログの表示
特定の Pod のログを表示するには、oc logs
コマンドを使用します。
$ oc logs cakephp-ex-1-deploy
出力例
--> Scaling cakephp-ex-1 to 1 --> Success
2.1.5.5. 現在のプロジェクトの表示
現在のプロジェクトを表示するには、oc project
コマンドを使用します。
$ oc project
出力例
Using project "my-project" on server "https://openshift.example.com:6443".
2.1.5.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.5.7. サポートされる API のリソースのリスト表示
サーバー上でサポートされる API リソースのリストを表示するには、oc api-resources
コマンドを使用します。
$ oc api-resources
出力例
NAME SHORTNAMES APIGROUP NAMESPACED KIND bindings true Binding componentstatuses cs false ComponentStatus configmaps cm true ConfigMap ...
2.1.6. ヘルプの表示
CLI コマンドおよび OpenShift Container Platform リソースに関するヘルプを以下の方法で表示することができます。
利用可能なすべての CLI コマンドのリストおよび説明を表示するには、
oc help
を使用します。例: 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 ...
特定の CLI コマンドに関するヘルプを表示するには、
--help
フラグを使用します。例:
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.7. OpenShift CLI からのログアウト
OpenShift CLI からログアウトし、現在のセッションを終了することができます。
oc logout
コマンドを使用します。$ oc logout
出力例
Logged "user1" out on "https://openshift.example.com"
これにより、サーバーから保存された認証トークンが削除され、設定ファイルから除去されます。