This documentation is for a release that is no longer maintained
See documentation for the latest supported version 3 or the latest supported version 4.CLI ツール
OpenShift Container Platform コマンドラインツールの使用方法
概要
第1章 OpenShift CLI (oc) リンクのコピーリンクがクリップボードにコピーされました!
1.1. CLI の使用方法 リンクのコピーリンクがクリップボードにコピーされました!
1.1.1. CLI について リンクのコピーリンクがクリップボードにコピーされました!
OpenShift Container Platform のコマンドラインインターフェース (CLI) を使用すると、ターミナルからアプリケーションを作成し、OpenShift Container Platform プロジェクトを管理できます。CLI の使用は、以下の場合に適しています。
- プロジェクトのソースコードを直接使用している。
- OpenShift Container Platform の操作をスクリプト化する。
- 帯域幅リソースの制限下にあり、Web コンソールを使用できない。
1.1.2. CLI のインストール リンクのコピーリンクがクリップボードにコピーされました!
コマンドラインインターフェースを使用して OpenShift Container Platform と対話するために CLI をインストールすることができます。
以前のバージョンの oc をインストールしている場合、これを使用して OpenShift Container Platform 4.2 のすべてのコマンドを実行することはできません。新規バージョンの ocをダウンロードし、インストールします。
手順
- Red Hat OpenShift Cluster Manager サイトの Infrastructure Provider ページから、選択するインストールタイプのページに移動し、Download Command-line Tools をクリックします。
オペレーティングシステムおよびアーキテクチャーのフォルダーをクリックしてから、圧縮されたファイルをクリックします。
注記ocは Linux、Windows、または macOS にインストールできます。- ファイルをファイルシステムに保存します。
- 圧縮ファイルを展開します。
-
これを
PATHにあるディレクトリーに配置します。
CLI のインストール後は、oc コマンドを使用して利用できます。
oc <command>
$ oc <command>
1.1.3. CLI へのログイン リンクのコピーリンクがクリップボードにコピーされました!
oc CLI にログインしてクラスターにアクセスし、これを管理できます。
前提条件
- OpenShift Container Platform クラスターへのアクセスがあること。
- CLI をインストールしていること。
手順
oc loginコマンドを使用して CLI にログインし、プロンプトが出されたら必要な情報を入力します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow
これで、プロジェクトを作成でき、クラスターを管理するための他のコマンドを実行することができます。
1.1.4. CLI の使用 リンクのコピーリンクがクリップボードにコピーされました!
以下のセクションで、CLI を使用して一般的なタスクを実行する方法を確認します。
1.1.4.1. プロジェクトの作成 リンクのコピーリンクがクリップボードにコピーされました!
新規プロジェクトを作成するには、oc new-project コマンドを使用します。
oc new-project my-project
$ oc new-project my-project
Now using project "my-project" on server "https://openshift.example.com:6443".
1.1.4.2. 新しいアプリケーションの作成 リンクのコピーリンクがクリップボードにコピーされました!
新規アプリケーションを作成するには、oc new-app コマンドを使用します。
1.1.4.3. Pod の表示 リンクのコピーリンクがクリップボードにコピーされました!
現在のプロジェクトの Pod を表示するには、oc get pods コマンドを使用します。
oc get pods -o wide
$ 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>
1.1.4.4. Pod ログの表示 リンクのコピーリンクがクリップボードにコピーされました!
特定の Pod のログを表示するには、oc logs コマンドを使用します。
oc logs cakephp-ex-1-deploy
$ oc logs cakephp-ex-1-deploy
--> Scaling cakephp-ex-1 to 1
--> Success
1.1.4.5. 現在のプロジェクトの表示 リンクのコピーリンクがクリップボードにコピーされました!
現在のプロジェクトを表示するには、oc project コマンドを使用します。
oc project
$ oc project
Using project "my-project" on server "https://openshift.example.com:6443".
1.1.4.6. 現在のプロジェクトのステータスの表示 リンクのコピーリンクがクリップボードにコピーされました!
サービス、DeploymentConfig、および BuildConfig などの現在のプロジェクトについての情報を表示するには、oc status コマンドを使用します。
1.1.4.7. サポートされる API のリソースの一覧表示 リンクのコピーリンクがクリップボードにコピーされました!
サーバー上でサポートされる API リソースの一覧を表示するには、oc api-resources コマンドを使用します。
1.1.5. ヘルプの表示 リンクのコピーリンクがクリップボードにコピーされました!
CLI コマンドおよび OpenShift Container Platform リソースに関するヘルプを以下の方法で表示することができます。
利用可能なすべての CLI コマンドの一覧および説明を表示するには、
oc helpを使用します。例: CLI についての一般的なヘルプの表示
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 特定の CLI コマンドについてのヘルプを表示するには、
--helpフラグを使用します。例:
oc createコマンドについてのヘルプの表示Copy to Clipboard Copied! Toggle word wrap Toggle overflow 特定リソースについての説明およびフィールドを表示するには、
oc explainコマンドを使用します。例: Pod リソースのドキュメントの表示
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
1.1.6. CLI からのログアウト リンクのコピーリンクがクリップボードにコピーされました!
CLI からログアウトし、現在のセッションを終了することができます。
oc logoutコマンドを使用します。oc logout
$ oc logout Logged "user1" out on "https://openshift.example.com"Copy to Clipboard Copied! Toggle word wrap Toggle overflow
これにより、サーバーから保存された認証トークンが削除され、設定ファイルから除去されます。
1.2. CLI の設定 リンクのコピーリンクがクリップボードにコピーされました!
1.2.1. タブ補完の有効化 リンクのコピーリンクがクリップボードにコピーされました!
oc CLI ツールをインストールした後に、タブ補完を有効にして oc コマンドの自動補完を実行するか、または Tab キーを押す際にオプションの提案が表示されるようにできます。
前提条件
-
ocCLI ツールをインストールしていること。
手順
以下の手順では、Bash のタブ補完を有効にします。
Bash 補完コードをファイルに保存します。
oc completion bash > oc_bash_completion
$ oc completion bash > oc_bash_completionCopy to Clipboard Copied! Toggle word wrap Toggle overflow ファイルを
/etc/bash_completion.d/にコピーします。sudo cp oc_bash_completion /etc/bash_completion.d/
$ sudo cp oc_bash_completion /etc/bash_completion.d/Copy to Clipboard Copied! Toggle word wrap Toggle overflow さらにファイルをローカルディレクトリーに保存した後に、これを
.bashrcファイルから取得できるようにすることができます。
タブ補完は、新規ターミナルを開くと有効にされます。
1.3. プラグインによる CLI の拡張 リンクのコピーリンクがクリップボードにコピーされました!
デフォルトの oc コマンドを拡張するためにプラグインを作成およびインストールし、これを使用して OpenShift Container Platform CLI で新規および追加の複雑なタスクを実行できます。
1.3.1. CLI プラグインの作成 リンクのコピーリンクがクリップボードにコピーされました!
コマンドラインのコマンドを作成できる任意のプログラミング言語またはスクリプトで、OpenShift Container Platform CLI のプラグインを作成できます。既存の oc コマンドを上書きするプラグインを使用することはできない点に注意してください。
現時点で OpenShift CLI プラグインはテクノロジープレビュー機能です。テクノロジープレビュー機能は、Red Hat の実稼働環境でのサービスレベルアグリーメント (SLA) ではサポートされていないため、Red Hat では実稼働環境での使用を推奨していません。これらの機能は、近々発表予定の製品機能をリリースに先駆けてご提供することにより、お客様は機能性をテストし、開発プロセス中にフィードバックをお寄せいただくことができます。
詳細は、「テクノロジープレビュー機能のサポート範囲」を参照してください。
手順
以下の手順では、oc foo コマンドの実行時にターミナルにメッセージを出力する単純な Bash プラグインを作成します。
oc-fooというファイルを作成します。プラグインファイルの名前を付ける際には、以下の点に留意してください。
-
プログインとして認識されるように、ファイルの名前は
oc-またはkubectl-で開始する必要があります。 -
ファイル名は、プラグインを起動するコマンドを判別するものとなります。たとえば、ファイル名が
oc-foo-barのプラグインは、oc foo barのコマンドで起動します。また、コマンドにダッシュを含める必要がある場合には、アンダースコアを使用することもできます。たとえば、ファイル名がoc-foo_barのプラグインはoc foo-barのコマンドで起動できます。
-
プログインとして認識されるように、ファイルの名前は
以下の内容をファイルに追加します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
OpenShift Container Platform CLI のこのプラグインをインストールした後に、oc foo コマンドを使用してこれを起動できます。
追加リソース
- Go で作成されたプラグインの例については、 サンプルのプラグインリポジトリーを参照してください。
- Go でのプラグインの作成を支援する一連のユーティリティーについては、CLI ランタイムリポジトリーを参照してください。
1.3.2. CLI プラグインのインストールおよび使用 リンクのコピーリンクがクリップボードにコピーされました!
OpenShift Container Platform CLI のカスタムプラグインの作成後に、これが提供する機能を使用できるようインストールする必要があります。
現時点で OpenShift CLI プラグインはテクノロジープレビュー機能です。テクノロジープレビュー機能は、Red Hat の実稼働環境でのサービスレベルアグリーメント (SLA) ではサポートされていないため、Red Hat では実稼働環境での使用を推奨していません。これらの機能は、近々発表予定の製品機能をリリースに先駆けてご提供することにより、お客様は機能性をテストし、開発プロセス中にフィードバックをお寄せいただくことができます。
詳細は、「テクノロジープレビュー機能のサポート範囲」を参照してください。
前提条件
-
ocCLI ツールをインストールしていること。 -
oc-またはkubectl-で始まる CLI プラグインファイルがあること。
手順
必要に応じて、プラグインファイルを実行可能な状態になるように更新します。
chmod +x <plugin_file>
$ chmod +x <plugin_file>Copy to Clipboard Copied! Toggle word wrap Toggle overflow ファイルを
PATHの任意の場所に置きます (例:/usr/local/bin/)。sudo mv <plugin_file> /usr/local/bin/.
$ sudo mv <plugin_file> /usr/local/bin/.Copy to Clipboard Copied! Toggle word wrap Toggle overflow oc plugin listを実行し、プラグインが一覧表示されることを確認します。oc plugin list
$ oc plugin list The following compatible plugins are available: /usr/local/bin/<plugin_file>Copy to Clipboard Copied! Toggle word wrap Toggle overflow プラグインがここに一覧表示されていない場合、ファイルが
oc-またはkubectl-で開始されるものであり、実行可能な状態でPATH上にあることを確認します。プラグインによって導入される新規コマンドまたはオプションを起動します。
たとえば、
kubectl-nsプラグインをサンプルのプラグインリポジトリーからビルドし、インストールしている場合、以下のコマンドを使用して現在の namespace を表示できます。oc ns
$ oc nsCopy to Clipboard Copied! Toggle word wrap Toggle overflow プラグインを起動するためのコマンドはプラグインファイル名によって異なることに注意してください。たとえば、ファイル名が
oc-foo-barのプラグインはoc foo barコマンドによって起動します。
1.4. 開発者の CLI コマンド リンクのコピーリンクがクリップボードにコピーされました!
1.4.1. 基本的な CLI コマンド リンクのコピーリンクがクリップボードにコピーされました!
1.4.1.1. explain リンクのコピーリンクがクリップボードにコピーされました!
特定リソースのドキュメントを表示します。
例: Pod のドキュメントの表示
oc explain pods
$ oc explain pods
1.4.1.2. login リンクのコピーリンクがクリップボードにコピーされました!
OpenShift Container Platform サーバーにログインし、後続の使用のためにログイン情報を保存します。
例: 対話型ログイン
oc login
$ oc login
例: ユーザー名を指定したログイン
oc login -u user1
$ oc login -u user1
1.4.1.3. new-app リンクのコピーリンクがクリップボードにコピーされました!
ソースコード、テンプレート、またはイメージを指定して新規アプリケーションを作成します。
例: ローカル Git リポジトリーからの新規アプリケーションの作成
oc new-app .
$ oc new-app .
例: リモート Git リポジトリーからの新規アプリケーションの作成
oc new-app https://github.com/sclorg/cakephp-ex
$ oc new-app https://github.com/sclorg/cakephp-ex
例: プライベートリモートリポジトリーからの新規アプリケーションの作成
oc new-app https://github.com/youruser/yourprivaterepo --source-secret=yoursecret
$ oc new-app https://github.com/youruser/yourprivaterepo --source-secret=yoursecret
1.4.1.4. new-project リンクのコピーリンクがクリップボードにコピーされました!
新規プロジェクトを作成し、設定のデフォルトのプロジェクトとしてこれに切り替えます。
例: 新規プロジェクトの作成
oc new-project myproject
$ oc new-project myproject
1.4.1.5. project リンクのコピーリンクがクリップボードにコピーされました!
別のプロジェクトに切り替えて、これを設定でデフォルトにします。
例: 別のプロジェクトへの切り替え
oc project test-project
$ oc project test-project
1.4.1.6. projects リンクのコピーリンクがクリップボードにコピーされました!
現在のアクティブなプロジェクトおよびサーバー上の既存プロジェクトについての情報を表示します。
例: すべてのプロジェクトの一覧表示
oc projects
$ oc projects
1.4.1.7. status リンクのコピーリンクがクリップボードにコピーされました!
現在のプロジェクトのハイレベルの概要を表示します。
例: 現在のプロジェクトのステータスの表示
oc status
$ oc status
1.4.2. CLI コマンドのビルドおよびデプロイ リンクのコピーリンクがクリップボードにコピーされました!
1.4.2.1. cancel-build リンクのコピーリンクがクリップボードにコピーされました!
実行中、保留中、または新規のビルドを取り消します。
例:ビルドの取り消し
oc cancel-build python-1
$ oc cancel-build python-1
例: python BuildConfig からの保留中のすべてのビルドの取り消し
oc cancel-build buildconfig/python --state=pending
$ oc cancel-build buildconfig/python --state=pending
1.4.2.2. import-image リンクのコピーリンクがクリップボードにコピーされました!
イメージリポジトリーから最新のタグおよびイメージ情報をインポートします。
例: 最新のイメージ情報のインポート
oc import-image my-ruby
$ oc import-image my-ruby
1.4.2.3. new-build リンクのコピーリンクがクリップボードにコピーされました!
ソースコードから新規の BuildConfig を作成します。
例: ローカル Git リポジトリーからの BuildConfig の作成
oc new-build .
$ oc new-build .
例: リモート Git リポジトリーからの BuildConfig の作成
oc new-build https://github.com/sclorg/cakephp-ex
$ oc new-build https://github.com/sclorg/cakephp-ex
1.4.2.4. rollback リンクのコピーリンクがクリップボードにコピーされました!
アプリケーションを以前のデプロイメントに戻します。
例: 最後に成功したデプロイメントへのロールバック
oc rollback php
$ oc rollback php
例: 特定バージョンへのロールバック
oc rollback php --to-version=3
$ oc rollback php --to-version=3
1.4.2.5. rollout リンクのコピーリンクがクリップボードにコピーされました!
新規ロールアウトを開始し、そのステータスまたは履歴を表示するか、またはアプリケーションの以前のバージョンにロールバックします。
例: 最後に成功したデプロイメントへのロールバック
oc rollout undo deploymentconfig/php
$ oc rollout undo deploymentconfig/php
例: 最新状態の DeploymentConfig の新規ロールアウトの開始
oc rollout latest deploymentconfig/php
$ oc rollout latest deploymentconfig/php
1.4.2.6. start-build リンクのコピーリンクがクリップボードにコピーされました!
BuildConfig からビルドを開始するか、または既存ビルドをコピーします。
例: 指定された BuildConfig からのビルドの開始
oc start-build python
$ oc start-build python
例: 以前のビルドからのビルドの開始
oc start-build --from-build=python-1
$ oc start-build --from-build=python-1
例: 現在のビルドに使用する環境変数の設定
oc start-build python --env=mykey=myvalue
$ oc start-build python --env=mykey=myvalue
1.4.2.7. tag リンクのコピーリンクがクリップボードにコピーされました!
既存のイメージをイメージストリームにタグ付けします。
例: ruby イメージの latest タグを 2.0 タグのイメージを参照するように設定する
oc tag ruby:latest ruby:2.0
$ oc tag ruby:latest ruby:2.0
1.4.3. アプリケーション管理 CLI コマンド リンクのコピーリンクがクリップボードにコピーされました!
1.4.3.1. annotate リンクのコピーリンクがクリップボードにコピーされました!
1 つ以上のリソースでアノテーションを更新します。
例: アノテーションのルートへの追加
oc annotate route/test-route haproxy.router.openshift.io/ip_whitelist="192.168.1.10"
$ oc annotate route/test-route haproxy.router.openshift.io/ip_whitelist="192.168.1.10"
例: ルートからのアノテーションの削除
oc annotate route/test-route haproxy.router.openshift.io/ip_whitelist-
$ oc annotate route/test-route haproxy.router.openshift.io/ip_whitelist-
1.4.3.2. apply リンクのコピーリンクがクリップボードにコピーされました!
JSON または YAML 形式のファイル名または標準入力 (stdin) 別に設定をリソースに適用します。
例: pod.json の設定の Pod への適用
oc apply -f pod.json
$ oc apply -f pod.json
1.4.3.3. autoscale リンクのコピーリンクがクリップボードにコピーされました!
DeploymentConfig または ReplicationController の自動スケーリングを実行します。
例: 最小の 2 つおよび最大の 5 つの Pod への自動スケーリング
oc autoscale deploymentconfig/parksmap-katacoda --min=2 --max=5
$ oc autoscale deploymentconfig/parksmap-katacoda --min=2 --max=5
1.4.3.4. create リンクのコピーリンクがクリップボードにコピーされました!
JSON または YAML 形式のファイル名または標準入力 (stdin) 別にリソースを作成します。
例: pod.json の内容を使用した Pod の作成
oc create -f pod.json
$ oc create -f pod.json
1.4.3.5. delete リンクのコピーリンクがクリップボードにコピーされました!
リソースを削除します。
例: parksmap-katacoda-1-qfqz4 という名前の Pod の削除
oc delete pod/parksmap-katacoda-1-qfqz4
$ oc delete pod/parksmap-katacoda-1-qfqz4
例: app=parksmap-katacoda ラベルの付いたすべての Pod の削除
oc delete pods -l app=parksmap-katacoda
$ oc delete pods -l app=parksmap-katacoda
1.4.3.6. describe リンクのコピーリンクがクリップボードにコピーされました!
特定のオブジェクトに関する詳細情報を返します。
例: example という名前のデプロイメントの記述
oc describe deployment/example
$ oc describe deployment/example
例: すべての Pod の記述
oc describe pods
$ oc describe pods
1.4.3.7. edit リンクのコピーリンクがクリップボードにコピーされました!
リソースを編集します。
例: デフォルトエディターを使用した DeploymentConfig の編集
oc edit deploymentconfig/parksmap-katacoda
$ oc edit deploymentconfig/parksmap-katacoda
例: 異なるエディターを使用した DeploymentConfig の編集
OC_EDITOR="nano" oc edit deploymentconfig/parksmap-katacoda
$ OC_EDITOR="nano" oc edit deploymentconfig/parksmap-katacoda
例: JSON 形式の DeploymentConfig の編集
oc edit deploymentconfig/parksmap-katacoda -o json
$ oc edit deploymentconfig/parksmap-katacoda -o json
1.4.3.8. expose リンクのコピーリンクがクリップボードにコピーされました!
ルートとしてサービスを外部に公開します。
例: サービスの公開
oc expose service/parksmap-katacoda
$ oc expose service/parksmap-katacoda
例: サービスの公開およびホスト名の指定
oc expose service/parksmap-katacoda --hostname=www.my-host.com
$ oc expose service/parksmap-katacoda --hostname=www.my-host.com
1.4.3.9. get リンクのコピーリンクがクリップボードにコピーされました!
1 つ以上のリソースを表示します。
例: default namespace の Pod の一覧表示
oc get pods -n default
$ oc get pods -n default
例: JSON 形式の python DeploymentConfig についての詳細の取得
oc get deploymentconfig/python -o json
$ oc get deploymentconfig/python -o json
1.4.3.10. label リンクのコピーリンクがクリップボードにコピーされました!
1 つ以上のリソースでアノテーションを更新します。
例: python-1-mz2rf Pod の unhealthy に設定されたラベル status での更新
oc label pod/python-1-mz2rf status=unhealthy
$ oc label pod/python-1-mz2rf status=unhealthy
1.4.3.11. scale リンクのコピーリンクがクリップボードにコピーされました!
ReplicationController または DeploymentConfig の必要なレプリカ数を設定します。
例: ruby-app DeploymentConfig の 3 つの Pod へのスケーリング
oc scale deploymentconfig/ruby-app --replicas=3
$ oc scale deploymentconfig/ruby-app --replicas=3
1.4.3.12. secrets リンクのコピーリンクがクリップボードにコピーされました!
プロジェクトのシークレットを管理します。
例: my-pull-secret の、default サービスアカウントによるイメージプルシークレットとしての使用を許可
oc secrets link default my-pull-secret --for=pull
$ oc secrets link default my-pull-secret --for=pull
1.4.3.13. serviceaccounts リンクのコピーリンクがクリップボードにコピーされました!
サービスアカウントに割り当てられたトークンを取得するか、またはサービスアカウントの新規トークンまたは kubeconfig ファイルを作成します。
例: default サービスアカウントに割り当てられたトークンの取得
oc serviceaccounts get-token default
$ oc serviceaccounts get-token default
1.4.3.14. set リンクのコピーリンクがクリップボードにコピーされました!
既存のアプリケーションリソースを設定します。
例: BuildConfig でのシークレットの名前の設定
oc set build-secret --source buildconfig/mybc mysecret
$ oc set build-secret --source buildconfig/mybc mysecret
1.4.4. CLI コマンドのトラブルシューティングおよびデバッグ リンクのコピーリンクがクリップボードにコピーされました!
1.4.4.1. attach リンクのコピーリンクがクリップボードにコピーされました!
実行中のコンテナーにシェルを割り当てます。
例: Pod python-1-mz2rf の python コンテナーからの出力の取得
oc attach python-1-mz2rf -c python
$ oc attach python-1-mz2rf -c python
1.4.4.2. cp リンクのコピーリンクがクリップボードにコピーされました!
ファイルおよびディレクトリーのコンテナーへの/からのコピーを実行します。
例: python-1-mz2rf Pod からローカルファイルシステムへのファイルのコピー
oc cp default/python-1-mz2rf:/opt/app-root/src/README.md ~/mydirectory/.
$ oc cp default/python-1-mz2rf:/opt/app-root/src/README.md ~/mydirectory/.
1.4.4.3. debug リンクのコピーリンクがクリップボードにコピーされました!
コマンドシェルを起動して、実行中のアプリケーションをデバッグします。
例: python デプロイメントのデバッグ
oc debug deploymentconfig/python
$ oc debug deploymentconfig/python
1.4.4.4. exec リンクのコピーリンクがクリップボードにコピーされました!
コンテナーでコマンドを実行します。
例: ls コマンドの Pod python-1-mz2rf の python コンテナーでの実行
oc exec python-1-mz2rf -c python ls
$ oc exec python-1-mz2rf -c python ls
1.4.4.5. logs リンクのコピーリンクがクリップボードにコピーされました!
特定のビルド、BuildConfig、DeploymentConfig、または Pod のログ出力を取得します。
例: python DeploymentConfig からの最新ログのストリーミング
oc logs -f deploymentconfig/python
$ oc logs -f deploymentconfig/python
1.4.4.6. port-forward リンクのコピーリンクがクリップボードにコピーされました!
1 つ以上のポートを Pod に転送します。
例: ポート 8888 でのローカルのリッスンおよび Pod のポート 5000 への転送
oc port-forward python-1-mz2rf 8888:5000
$ oc port-forward python-1-mz2rf 8888:5000
1.4.4.7. proxy リンクのコピーリンクがクリップボードにコピーされました!
Kubernetes API サーバーに対してプロキシーを実行します。
例: ./local/www/ から静的コンテンツを提供するポート 8011 の API サーバーに対するプロキシーの実行
oc proxy --port=8011 --www=./local/www/
$ oc proxy --port=8011 --www=./local/www/
1.4.4.8. rsh リンクのコピーリンクがクリップボードにコピーされました!
コンテナーへのリモートシェルセッションを開きます。
例: python-1-mz2rf Pod の最初のコンテナーでシェルセッションを開く
oc rsh python-1-mz2rf
$ oc rsh python-1-mz2rf
1.4.4.9. rsync リンクのコピーリンクがクリップボードにコピーされました!
ディレクトリーの内容の実行中の Pod コンテナーへの/からのコピーを実行します。変更されたファイルのみが、オペレーティングシステムから rsync コマンドを使用してコピーされます。
例: ローカルディレクトリーのファイルの Pod ディレクトリーとの同期
oc rsync ~/mydirectory/ python-1-mz2rf:/opt/app-root/src/
$ oc rsync ~/mydirectory/ python-1-mz2rf:/opt/app-root/src/
1.4.4.10. run リンクのコピーリンクがクリップボードにコピーされました!
特定のイメージを作成し、実行します。デフォルトでは、これにより作成されたコンテナーを管理するための DeploymentConfig が作成されます。
例: 3 つのレプリカを持つ perl イメージのインスタンスの開始
oc run my-test --image=perl --replicas=3
$ oc run my-test --image=perl --replicas=3
1.4.4.11. wait リンクのコピーリンクがクリップボードにコピーされました!
1 つ以上のリソースの特定の条件を待機します。
例: python-1-mz2rf Pod の削除の待機
oc wait --for=delete pod/python-1-mz2rf
$ oc wait --for=delete pod/python-1-mz2rf
1.4.5. 上級開発者の CLI コマンド リンクのコピーリンクがクリップボードにコピーされました!
1.4.5.1. api-resources リンクのコピーリンクがクリップボードにコピーされました!
サーバーがサポートする API リソースの詳細の一覧を表示します。
例: サポートされている API リソースの一覧表示
oc api-resources
$ oc api-resources
1.4.5.2. api-versions リンクのコピーリンクがクリップボードにコピーされました!
サーバーがサポートする API バージョンの詳細の一覧を表示します。
例: サポートされている API バージョンの一覧表示
oc api-versions
$ oc api-versions
1.4.5.3. auth リンクのコピーリンクがクリップボードにコピーされました!
パーミッションを検査し、RBAC ロールを調整します。
例: 現行ユーザーが Pod ログを読み取ることができるかどうかのチェック
oc auth can-i get pods --subresource=log
$ oc auth can-i get pods --subresource=log
例: ファイルの RBAC ロールおよびパーミッションの調整
oc auth reconcile -f policy.json
$ oc auth reconcile -f policy.json
1.4.5.4. cluster-info リンクのコピーリンクがクリップボードにコピーされました!
マスターおよびクラスターサービスのアドレスを表示します。
例: クラスター情報の表示
oc cluster-info
$ oc cluster-info
1.4.5.5. convert リンクのコピーリンクがクリップボードにコピーされました!
YAML または JSON 設定ファイルを異なる API バージョンに変換し、標準出力 (stdout) に出力します。
例: pod.yaml の最新バージョンへの変換
oc convert -f pod.yaml
$ oc convert -f pod.yaml
1.4.5.6. extract リンクのコピーリンクがクリップボードにコピーされました!
ConfigMap またはシークレットの内容を抽出します。ConfigMap またはシークレットのそれぞれのキーがキーの名前を持つ別個のファイルとして作成されます。
例: ruby-1-ca ConfigMap の内容の現行ディレクトリーへのダウンロード
oc extract configmap/ruby-1-ca
$ oc extract configmap/ruby-1-ca
例: ruby-1-ca ConfigMap の内容の標準出力 (stdout) への出力
oc extract configmap/ruby-1-ca --to=-
$ oc extract configmap/ruby-1-ca --to=-
1.4.5.7. idle リンクのコピーリンクがクリップボードにコピーされました!
スケーラブルなリソースをアイドリングします。アイドリングされたサービスは、トラフィックを受信するとアイドリング解除されます。 これは oc scale コマンドを使用して手動でアイドリング解除することもできます。
例: ruby-app サービスのアイドリング
oc idle ruby-app
$ oc idle ruby-app
1.4.5.8. image リンクのコピーリンクがクリップボードにコピーされました!
OpenShift Container Platform クラスターでイメージを管理します。
例: イメージの別のタグへのコピー
oc image mirror myregistry.com/myimage:latest myregistry.com/myimage:stable
$ oc image mirror myregistry.com/myimage:latest myregistry.com/myimage:stable
1.4.5.9. observe リンクのコピーリンクがクリップボードにコピーされました!
リソースの変更を監視し、それらの変更に対するアクションを取ります。
例: サービスへの変更の監視
oc observe services
$ oc observe services
1.4.5.10. patch リンクのコピーリンクがクリップボードにコピーされました!
JSON または YAML 形式のストテラテジーに基づくマージパッチを使用してオブジェクトの 1 つ以上のフィールドを更新します。
例: ノード node1 の spec.unschedulable フィールドの true への更新
oc patch node/node1 -p '{"spec":{"unschedulable":true}}'
$ oc patch node/node1 -p '{"spec":{"unschedulable":true}}'
カスタムリソース定義 (Custom Resource Definition) のパッチを適用する必要がある場合、コマンドに --type merge オプションを含める必要があります。
1.4.5.11. policy リンクのコピーリンクがクリップボードにコピーされました!
認可ポリシーを管理します。
例: edit ロールの現在のプロジェクトの user1 への追加
oc policy add-role-to-user edit user1
$ oc policy add-role-to-user edit user1
1.4.5.12. process リンクのコピーリンクがクリップボードにコピーされました!
リソースの一覧に対してテンプレートを処理します。
例: template.json をリソース一覧に変換し、 oc create に渡す
oc process -f template.json | oc create -f -
$ oc process -f template.json | oc create -f -
1.4.5.13. レジストリー リンクのコピーリンクがクリップボードにコピーされました!
OpenShift Container Platform で統合レジストリーを管理します。
例: 統合レジストリーについての情報の表示
oc registry info
$ oc registry info
1.4.5.14. replace リンクのコピーリンクがクリップボードにコピーされました!
指定された設定ファイルに基づいて既存オブジェクトを変更します。
例: pod.json の内容を使用した Pod の更新
oc replace -f pod.json
$ oc replace -f pod.json
1.4.6. CLI コマンドの設定 リンクのコピーリンクがクリップボードにコピーされました!
1.4.6.1. completion リンクのコピーリンクがクリップボードにコピーされました!
指定されたシェルのシェル補完コードを出力します。
例: Bash の補完コードの表示
oc completion bash
$ oc completion bash
1.4.6.2. config リンクのコピーリンクがクリップボードにコピーされました!
クライアント設定ファイルを管理します。
例: 現在の設定の表示
oc config view
$ oc config view
例: 別のコンテキストへの切り替え
oc config use-context test-context
$ oc config use-context test-context
1.4.6.3. logout リンクのコピーリンクがクリップボードにコピーされました!
現行のセッションからログアウトします。
例: 現行セッションの終了
oc logout
$ oc logout
1.4.6.4. whoami リンクのコピーリンクがクリップボードにコピーされました!
現行セッションに関する情報を表示します。
例: 現行の認証ユーザーの表示
oc whoami
$ oc whoami
1.4.7. 他の開発者 CLI コマンド リンクのコピーリンクがクリップボードにコピーされました!
1.4.7.1. help リンクのコピーリンクがクリップボードにコピーされました!
CLI の一般的なヘルプ情報および利用可能なコマンドの一覧を表示します。
例: 利用可能なコマンドの表示
oc help
$ oc help
例: new-project コマンドのヘルプの表示
oc help new-project
$ oc help new-project
1.4.7.2. plugin リンクのコピーリンクがクリップボードにコピーされました!
ユーザーの PATH に利用可能なプラグインを一覧表示します。
例: 利用可能なプラグインの一覧表示
oc plugin list
$ oc plugin list
1.4.7.3. version リンクのコピーリンクがクリップボードにコピーされました!
oc クライアントおよびサーバーのバージョンを表示します。
例: バージョン情報の表示
oc version
$ oc version
クラスター管理者の場合、OpenShift Container Platform サーバーバージョンも表示されます。
1.5. 管理者 CLI コマンド リンクのコピーリンクがクリップボードにコピーされました!
1.5.1. クラスター管理 CLI コマンド リンクのコピーリンクがクリップボードにコピーされました!
1.5.1.1. must-gather リンクのコピーリンクがクリップボードにコピーされました!
問題のデバッグに必要なクラスターの現在の状態についてのデータを一括収集します。
例: デバッグ情報の収集
oc adm must-gather
$ oc adm must-gather
1.5.1.2. top リンクのコピーリンクがクリップボードにコピーされました!
サーバー上のリソースの使用状況についての統計を表示します。
例: Pod の CPU およびメモリーの使用状況の表示
oc adm top pods
$ oc adm top pods
例: イメージの使用状況の統計の表示
oc adm top images
$ oc adm top images
1.5.2. ノード管理 CLI コマンド リンクのコピーリンクがクリップボードにコピーされました!
1.5.2.1. cordon リンクのコピーリンクがクリップボードにコピーされました!
ノードにスケジュール対象外 (unschedulable) のマークを付けます。ノードにスケジュール対象外のマークを手動で付けると、いずれの新規 Pod もノードでスケジュールされなくなりますが、ノード上の既存の Pod にはこれによる影響がありません。
例: node1 にスケジュール対象外のマークを付ける
oc adm cordon node1
$ oc adm cordon node1
1.5.2.2. drain リンクのコピーリンクがクリップボードにコピーされました!
メンテナンスの準備のためにノードをドレイン (解放) します。
例: node1 のドレイン (解放)
oc adm drain node1
$ oc adm drain node1
1.5.2.3. node-logs リンクのコピーリンクがクリップボードにコピーされました!
ノードのログを表示し、フィルターします。
例: NetworkManager のログの取得
oc adm node-logs --role master -u NetworkManager.service
$ oc adm node-logs --role master -u NetworkManager.service
1.5.2.4. taint リンクのコピーリンクがクリップボードにコピーされました!
1 つ以上のノードでテイントを更新します。
例: ユーザーのセットに対してノードを専用に割り当てるためのテイントの追加
oc adm taint nodes node1 dedicated=groupName:NoSchedule
$ oc adm taint nodes node1 dedicated=groupName:NoSchedule
例: ノード node1 からキー dedicated のあるテイントを削除する
oc adm taint nodes node1 dedicated-
$ oc adm taint nodes node1 dedicated-
1.5.2.5. uncordon リンクのコピーリンクがクリップボードにコピーされました!
ノードにスケジュール対象 (schedulable) のマークを付けます。
例: node1 にスケジュール対象のマークを付ける
oc adm uncordon node1
$ oc adm uncordon node1
1.5.3. セキュリティーおよびポリシー CLI コマンド リンクのコピーリンクがクリップボードにコピーされました!
1.5.3.1. certificate リンクのコピーリンクがクリップボードにコピーされました!
証明書署名要求 (CSR) を承認するか、または拒否します。
例: CSR の承認
oc adm certificate approve csr-sqgzp
$ oc adm certificate approve csr-sqgzp
1.5.3.2. groups リンクのコピーリンクがクリップボードにコピーされました!
クラスター内のグループを管理します。
例: 新規グループの作成
oc adm groups new my-group
$ oc adm groups new my-group
1.5.3.3. new-project リンクのコピーリンクがクリップボードにコピーされました!
新規プロジェクトを作成し、管理オプションを指定します。
例: ノードセレクターを使用した新規プロジェクトの作成
oc adm new-project myproject --node-selector='type=user-node,region=east'
$ oc adm new-project myproject --node-selector='type=user-node,region=east'
1.5.3.4. pod-network リンクのコピーリンクがクリップボードにコピーされました!
クラスター内の Pod ネットワークを管理します。
例: project1 および project2 を他の非グローバルプロジェクトから分離する
oc adm pod-network isolate-projects project1 project2
$ oc adm pod-network isolate-projects project1 project2
1.5.3.5. policy リンクのコピーリンクがクリップボードにコピーされました!
クラスター上のロールおよびポリシーを管理します。
例: すべてのプロジェクトについて edit ロールを user1 に追加する
oc adm policy add-cluster-role-to-user edit user1
$ oc adm policy add-cluster-role-to-user edit user1
例: privileged SCC (security context constraint) のサービスアカウントへの追加
oc adm policy add-scc-to-user privileged -z myserviceaccount
$ oc adm policy add-scc-to-user privileged -z myserviceaccount
1.5.4. メンテナンス CLI コマンド リンクのコピーリンクがクリップボードにコピーされました!
1.5.4.1. migrate リンクのコピーリンクがクリップボードにコピーされました!
使用されるサブコマンドに応じて、クラスターのリソースを新規バージョンまたはフォーマットに移行します。
例: 保存されたすべてのオブジェクトの更新の実行
oc adm migrate storage
$ oc adm migrate storage
例: Pod のみの更新の実行
oc adm migrate storage --include=pods
$ oc adm migrate storage --include=pods
1.5.4.2. prune リンクのコピーリンクがクリップボードにコピーされました!
サーバーから古いバージョンのリソースを削除します。
例: BuildConfigs がすでに存在しないビルドを含む、古いビルドのプルーニング
oc adm prune builds --orphans
$ oc adm prune builds --orphans
1.5.5. 設定 CLI コマンド リンクのコピーリンクがクリップボードにコピーされました!
1.5.5.1. create-api-client-config リンクのコピーリンクがクリップボードにコピーされました!
サーバーに接続するためのクライアント接続を作成します。これにより、指定されたユーザーとしてマスターに接続するためのクライアント証明書、クライアントキー、サーバーの認証局、および kubeconfig ファイルが含まれるフォルダーが作成されます。
例: プロキシーのクライアント証明書の生成
1.5.5.2. create-bootstrap-policy-file リンクのコピーリンクがクリップボードにコピーされました!
デフォルトのブートストラップポリシーを作成します。
例: デフォルトブートストラップポリシーでの policy.json ファイルの作成
oc adm create-bootstrap-policy-file --filename=policy.json
$ oc adm create-bootstrap-policy-file --filename=policy.json
1.5.5.3. create-bootstrap-project-template リンクのコピーリンクがクリップボードにコピーされました!
ブートストラッププロジェクトテンプレートを作成します。
例: YAML 形式でのブートストラッププロジェクトテンプレートの標準出力 (stdout) への出力
oc adm create-bootstrap-project-template -o yaml
$ oc adm create-bootstrap-project-template -o yaml
1.5.5.4. create-error-template リンクのコピーリンクがクリップボードにコピーされました!
エラーページをカスタマイズするためのテンプレートを作成します。
例: エラーページのテンプレートの標準出力 (stdout) への出力
oc adm create-error-template
$ oc adm create-error-template
1.5.5.5. create-kubeconfig リンクのコピーリンクがクリップボードにコピーされました!
クライアント証明書から基本的な .kubeconfig ファイルを作成します。
例: 提供されるクライアント証明書を使用した .kubeconfig ファイルの作成
oc adm create-kubeconfig \ --client-certificate=/path/to/client.crt \ --client-key=/path/to/client.key \ --certificate-authority=/path/to/ca.crt
$ oc adm create-kubeconfig \
--client-certificate=/path/to/client.crt \
--client-key=/path/to/client.key \
--certificate-authority=/path/to/ca.crt
1.5.5.6. create-login-template リンクのコピーリンクがクリップボードにコピーされました!
ログインページをカスタマイズするためのテンプレートを作成します。
例: ログインページのテンプレートの標準出力 (stdout) への出力
oc adm create-login-template
$ oc adm create-login-template
1.5.5.7. create-provider-selection-template リンクのコピーリンクがクリップボードにコピーされました!
プロバイダー選択ページをカスタマイズするためのテンプレートを作成します。
例: プロバイダー選択ページのテンプレートの標準出力 (stdout) への出力
oc adm create-provider-selection-template
$ oc adm create-provider-selection-template
1.5.6. 他の管理者 CLI コマンド リンクのコピーリンクがクリップボードにコピーされました!
1.5.6.1. build-chain リンクのコピーリンクがクリップボードにコピーされました!
ビルドの入力と依存関係を出力します。
例: perl イメージストリームの依存関係の出力
oc adm build-chain perl
$ oc adm build-chain perl
1.5.6.2. completion リンクのコピーリンクがクリップボードにコピーされました!
指定されたシェルについての oc adm コマンドのシェル補完コードを出力します。
例: Bash の oc adm 補完コードの表示
oc adm completion bash
$ oc adm completion bash
1.5.6.3. config リンクのコピーリンクがクリップボードにコピーされました!
クライアント設定ファイルを管理します。このコマンドは、oc config コマンドと同じ動作を実行します。
例: 現在の設定の表示
oc adm config view
$ oc adm config view
例: 別のコンテキストへの切り替え
oc adm config use-context test-context
$ oc adm config use-context test-context
1.5.6.4. release リンクのコピーリンクがクリップボードにコピーされました!
リリースについての情報の表示、またはリリースの内容の検査などの OpenShift Container Platform リリースプロセスの様々な側面を管理します。
例: 2 つのリリース間の変更ログの生成および changelog.md への保存
oc adm release info --changelog=/tmp/git \
quay.io/openshift-release-dev/ocp-release:4.2.0-rc.7 \
quay.io/openshift-release-dev/ocp-release:4.2.0 \
> changelog.md
$ oc adm release info --changelog=/tmp/git \
quay.io/openshift-release-dev/ocp-release:4.2.0-rc.7 \
quay.io/openshift-release-dev/ocp-release:4.2.0 \
> changelog.md
1.5.6.5. verify-image-signature リンクのコピーリンクがクリップボードにコピーされました!
ローカルのパブリック GPG キーを使用して内部レジストリーにインポートされたイメージのイメージ署名を検証します。
例: nodejs イメージ署名の検証
oc adm verify-image-signature \
sha256:2bba968aedb7dd2aafe5fa8c7453f5ac36a0b9639f1bf5b03f95de325238b288 \
--expected-identity 172.30.1.1:5000/openshift/nodejs:latest \
--public-key /etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release \
--save
$ oc adm verify-image-signature \
sha256:2bba968aedb7dd2aafe5fa8c7453f5ac36a0b9639f1bf5b03f95de325238b288 \
--expected-identity 172.30.1.1:5000/openshift/nodejs:latest \
--public-key /etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release \
--save
1.6. oc および kubectl コマンドの使用 リンクのコピーリンクがクリップボードにコピーされました!
Kubernetes のコマンドラインインターフェース (CLI) kubectl は、Kubernetes クラスターに対してコマンドを実行するために使用されます。OpenShift Container Platform は認定 Kubernetes ディストリビューションであるため、OpenShift Container Platform に同梱されるサポート対象の kubectl バイナリーを使用するか、または oc バイナリーを使用して拡張された機能を取得できます。
1.6.1. oc バイナリー リンクのコピーリンクがクリップボードにコピーされました!
oc バイナリーは kubectl バイナリーと同じ機能を提供しますが、これは、以下を含む OpenShift Container Platform 機能をネイティブにサポートするように拡張されています。
OpenShift Container Platform リソースの完全サポート
DeploymentConfigs、BuildConfigs、Routes、ImageStreams、および ImageStreamTags などのリソースは OpenShift Container Platform ディストリビューションに固有のリソースであり、標準の Kubernetes プリミティブにビルドされます。
認証
ocバイナリーは、認証を可能にするビルトインのloginコマンドを提供し、Kubernetes namespace を認証ユーザーにマップする OpenShift Container Platform プロジェクトを使って作業できるようにします。詳細は、「Understanding authentication」を参照してください。追加コマンド
追加コマンドの
oc new-appなどは、既存のソースコードまたは事前にビルドされたイメージを使用して新規アプリケーションを起動することを容易にします。同様に、追加コマンドのoc new-projectにより、デフォルトとして切り替えることができるプロジェクトを簡単に開始できるようになります。
1.6.2. kubectl バイナリー リンクのコピーリンクがクリップボードにコピーされました!
kubectl バイナリーは、標準の Kubernetes 環境を使用する新規 OpenShift Container Platform ユーザー、または kubectl CLI を優先的に使用するユーザーの既存ワークフローおよびスクリプトをサポートする手段として提供されます。kubectl の既存ユーザーは引き続きバイナリーを使用し、OpenShift Container Platform クラスターに必要な変更なしに Kubernetes のプリミティブと対話できます。
詳細は kubectl ドキュメントを参照してください。
第2章 OpenShift Do developer CLI (odo) リンクのコピーリンクがクリップボードにコピーされました!
2.1. OpenShift Do について リンクのコピーリンクがクリップボードにコピーされました!
OpenShift Do (odo) は、アプリケーションを OpenShift Container Platform で作成するための高速で使いやすい CLI ツールです。odo を使用する開発者は、 OpenShift Container Platform クラスター自体を管理する必要なしにアプリケーションの作成に集中することができます。デプロイメント設定、ビルド設定、サービスルートおよび他の OpenShift Container Platform 要素の作成は、すべて odo によって自動化されます。
oc などの既存ツールは操作により重点が置かれ、Kubernetes および OpenShift Container Platform の概念のより深い理解が必要です。odo は Kubernetes および OpenShift Container Platform の概念の複雑な部分を取り除き、開発者にとって最も重要な「コード」にフォーカスできるようにします。
2.1.1. 主な特長 リンクのコピーリンクがクリップボードにコピーされました!
odo は、以下の主な特長によって単純化および簡潔化されるように設計されています。
- プロジェクト、アプリケーションおよびコンポーネントなどの開発者にとって馴染みのある概念を中心とした単純な構文および設計。
- 完全にクライアントベースである。デプロイにあたって OpenShift Container Platform クラスター内のサーバーは不要です。
- Node.js および Java コンポーネントの正式なサポート。
- Ruby、Perl、PHP、Python などの言語およびフレームワークとの部分的な互換性。
- ローカルコードの変更を検出し、これをクラスターに自動的にデプロイ。これにより、変更を検証するためのインスタントフィードバックがリアルタイムに提供されます。
- OpenShift Container Platform クラスターのすべての利用可能なコンポーネントおよびサービスを一覧表示。
2.1.2. コアとなる概念 リンクのコピーリンクがクリップボードにコピーされました!
- Project
- Project (プロジェクト) は、別個の単一の単位で編成されるソースコード、テスト、ライブラリーです。
- Application
- Application (アプリケーション) は、エンドユーザー向けに設計されたプログラムです。アプリケーションは、アプリケーション全体を構築するために個別に動作する複数のマイクロサービスまたはコンポーネントで構成されます。アプリケーションの例: ビデオゲーム、メディアプレイヤー、Web ブラウザー。
- Component
- コンポーネントとは、コードまたはデータをホストする Kubernetes リソースのセットです。各コンポーネントは個別に実行され、デプロイできます。コンポーネントの例: Node.js、Perl、PHP、Python、Ruby
- サービス
-
Service (サービス) は、コンポーネントのリンク先となるか、またはコンポーネントが依存するソフトウェアです。サービスの例: MariaDB、Jenkins、MySQL
odoでは、サービスは OpenShift Service Catalog からプロビジョニングされ、クラスター内で有効にされる必要があります。
2.1.2.1. 正式にサポートされる言語と対応するコンテナーイメージ リンクのコピーリンクがクリップボードにコピーされました!
| 言語 | コンテナーイメージ | パッケージマネージャー |
|---|---|---|
| Node.js | NPM | |
| NPM | ||
| NPM | ||
| NPM | ||
| NPM | ||
| Java | Maven、Gradle | |
| Maven、Gradle | ||
| Maven、Gradle |
2.1.2.1.1. 利用可能なコンテナーイメージの一覧表示 リンクのコピーリンクがクリップボードにコピーされました!
利用可能なコンテナーイメージの一覧は、クラスターの内部コンテナーレジストリーおよびクラスターに関連付けられた外部レジストリーから取得されます。
利用可能なコンポーネントおよびクラスターの関連付けられたコンテナーイメージを一覧表示するには、以下を実行します。
odoを使用して OpenShift Container Platform クラスターにログインします。odo login -u developer -p developer
$ odo login -u developer -p developerCopy to Clipboard Copied! Toggle word wrap Toggle overflow 利用可能な
odoがサポートするコンポーネントとサポートしないコンポーネント、および対応するコンテナーイメージを一覧表示します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow TAGSコラムは利用可能なイメージバージョンを表します (例:10はrhoar-nodejs/nodejs-10コンテナーイメージを表します)。
2.2. odo アーキテクチャー リンクのコピーリンクがクリップボードにコピーされました!
このセクションでは、odo アーキテクチャーについて説明し、odo による OpenShift Container Platform リソースのクラスターでの管理方法について説明します。
2.2.1. 開発者の設定 リンクのコピーリンクがクリップボードにコピーされました!
odo を使用すると、ターミナルを使って OpenShift Container Platform クラスターでアプリケーションを作成し、デプロイできます。コードエディタープラグインは、ユーザーがそれぞれの IDE ターミナルから OpenShift Container Platform クラスターと対話することを可能にする odo を使用します。odo を使用するプラグインの例: VS Code Openshift Connector、Openshift Connector for Intellij、Codewind for Eclipse Che。
odo は Windows、macOS、および Linux のオペレーティングシステムで機能し、すべてのターミナルから使用できます。odo は bash および zsh コマンドラインシェルの自動補完を提供します。
odo 1.0 は Node.js および Java コンポーネントをサポートします。
2.2.2. OpenShift Source-to-Image (S2I) リンクのコピーリンクがクリップボードにコピーされました!
OpenShift Source-to-Image (S2I) はオープンソースプロジェクトであり、ソースコードからアーティファクトをビルドし、これらをコンテナーイメージに挿入するのに役立ちます。S2I は、Dockerfile なしにソースコードをビルドすることで、実行可能なイメージを生成します。odo は、コンテナー内で開発者ソースコードを実行するために S2I ビルダーイメージを使用します。
2.2.3. OpenShift クラスターオブジェクト リンクのコピーリンクがクリップボードにコピーされました!
2.2.3.1. Init コンテナー リンクのコピーリンクがクリップボードにコピーされました!
init コンテナーはアプリケーションコンテナーが起動する前に実行される特殊なコンテナーであり、アプリケーションコンテナーの実行に必要な環境を設定します。init コンテナーには、アプリケーションイメージにないファイル (設定スクリプトなど) を含めることができます。Init コンテナーは常に完了するまで実行され、Init コンテナーのいずれかに障害が発生した場合にはアプリケーションコンテナーは起動しません。
odo によって作成された Pod は 2 つの Init コンテナーを実行します。
-
copy-supervisordInit コンテナー。 -
copy-files-to-volumeInit コンテナー。
2.2.3.1.1. copy-supervisord リンクのコピーリンクがクリップボードにコピーされました!
copy-supervisord Init コンテナーは必要なファイルを emptyDir ボリュームにコピーします。メインのアプリケーションコンテナーはこれらのファイルを emptyDir ボリュームから使用します。
emptyDir ボリュームにコピーされるファイル:
バイナリー:
-
go-initは最小限の init システムです。アプリケーションコンテナー内の最初のプロセス (PID 1) として実行されます。go-init は、開発者コードを実行するSupervisorDデーモンを起動します。go-init は、孤立したプロセスを処理するために必要です。 -
SupervisorDはプロセス制御システムです。これは設定されたプロセスを監視し、それらが実行中であることを確認します。また、必要に応じてサービスを再起動します。odo の場合、SupervisorDは開発者コードを実行し、監視します。
-
設定ファイル:
-
supervisor.confは、SupervisorD デーモンの起動に必要な設定ファイルです。
-
スクリプト:
-
assemble-and-restartは、ユーザーソースコードをビルドし、デプロイするための OpenShift S2I の概念です。assemble-and-restart スクリプトは、まずアプリケーションコンテナー内でユーザーソースコードをアセンブルしてから、ユーザーの変更を有効にするために SupervisorD を再起動します。 -
Runは、アセンブルされたソースコードを実行することに関連した OpenShift S2I の概念です。runスクリプトはassemble-and-restartスクリプトで作成されたアセンブルされたコードを実行します。 -
s2i-setupは、assemble-and-restartおよび run スクリプトが正常に実行されるために必要なファイルおよびディレクトリーを作成するスクリプトです。このスクリプトは、アプリケーションのコンテナーが起動されるたびに実行されます。
-
ディレクトリー:
-
language-scripts: OpenShift S2I はカスタムのassembleおよびrunスクリプトを許可します。language-scriptsディレクトリーにいくつかの言語固有のカスタムスクリプトがあります。カスタムスクリプトは、odo のデバッグを機能させる追加の設定を提供します。
-
emtpyDir Volume は、Init コンテナーとアプリケーションコンテナーの両方の /opt/odo マウントポイントにマウントされます。
2.2.3.1.2. copy-files-to-volume リンクのコピーリンクがクリップボードにコピーされました!
copy-files-to-volume Init コンテナーは、S2I ビルダーイメージの /opt/app-root にあるファイルを永続ボリュームにコピーします。次に、ボリュームはアプリケーションコンテナーの同じ場所 (/opt/app-root) にマウントされます。
PersistentVolume が /opt/app-root にないと、このディレクトリーのデータは、PersistentVolumeClaim が同じ場所にマウントされる際に失われます。
PVC は、Init コンテナー内の /mnt マウントポイントにマウントされます。
2.2.3.2. アプリケーションコンテナー リンクのコピーリンクがクリップボードにコピーされました!
アプリケーションコンテナーは、ユーザーソースコードが実行されるメインコンテナーです。
アプリケーションコンテナーは、以下の 2 つのボリュームでマウントされます。
-
emptyDirボリュームは/opt/odoにマウントされます。 -
PersistentVolumeは/opt/app-rootにマウントされます。
go-init はアプリケーションコンテナー内の最初のプロセスとして実行されます。次に、go-init プロセスは SupervisorD を起動します。
SupervisorD は、ユーザーのアセンブルされたソースコードを実行し、監視します。ユーザープロセスがクラッシュすると、SupervisorD がこれを再起動します。
2.2.3.3. PersistentVolume および PersistentVolumeClaim リンクのコピーリンクがクリップボードにコピーされました!
PersistentVolumeClaim (PVC) は、PersistentVolume をプロビジョニングする Kubernetes のボリュームタイプです。PersistentVolume のライフサイクルは Pod ライフサイクルとは異なります。PersistentVolume のデータは Pod の再起動後も永続します。
copy-files-to-volume Init コンテナーは、必要なファイルを PersistentVolume にコピーします。メインアプリケーションコンテナーは、実行時にこれらのファイルを使用します。
PersistentVolume の命名規則は <component-name>-s2idata です。
| Container | PVC のマウント先 |
|---|---|
|
|
|
| アプリケーションコンテナー |
|
2.2.3.4. emptyDir ボリューム リンクのコピーリンクがクリップボードにコピーされました!
emptyDir ボリュームは、Pod がノードに割り当てられている際に作成され、Pod がノードで実行されている限り存在します。コンテナーが再起動または移動すると、emptyDir の内容が削除され、Init コンテナーはデータを emptyDir に復元します。emptyDir の初期状態は空です。
copy-supervisord Init コンテナーは必要なファイルを emptyDir ボリュームにコピーします。これらのファイルは、実行時にメインアプリケーションコンテナーによって使用されます。
| Container | emptyDir Volume のマウント先 |
|---|---|
|
|
|
| アプリケーションコンテナー |
|
2.2.3.5. サービス リンクのコピーリンクがクリップボードにコピーされました!
サービスは、一連の Pod と通信する方法を抽象化する Kubernetes の概念です。
odo はすべてのアプリケーション Pod についてサービスを作成し、これが通信用にアクセス可能にします。
2.2.4. odo push のワークフロー リンクのコピーリンクがクリップボードにコピーされました!
このセクションでは、odo push ワークフローについて説明します。odo push は必要なすべての OpenShift Container Platform リソースを使って OpenShift Container Platform クラスターにユーザーコードをデプロイします。
リソースの作成
まだ作成されていない場合には、
odo pushは以下の OpenShift Container Platform リソースを作成します。デプロイメント設定 (DC):
-
2 つの init コンテナー
copy-supervisordおよびcopy-files-to-volumeが実行されます。init コンテナーはファイルをemptyDirとPersistentVolumeタイプのボリュームのそれぞれにコピーします。 -
アプリケーションコンテナーが起動します。アプリケーションコンテナーの最初のプロセスは、PID=1 の
go-initプロセスです。 go-initプロセスは SupervisorD デーモンを起動します。注記ユーザーアプリケーションコードはアプリケーションコンテナーにコピーされていないため、
SupervisorDデーモンはrunスクリプトを実行しません。
-
2 つの init コンテナー
- サービス
- シークレット
-
PersistentVolumeClaim
ファイルのインデックス設定
- ファイルインデックサーは、ソースコードディレクトリーのファイルをインデックス化します。インデックサーはソースコードディレクトリー間を再帰的に移動し、作成、削除、または名前が変更されたファイルを検出します。
-
ファイルインデックサーは、
.odoディレクトリー内の odo インデックスファイルにインデックス化された情報を維持します。 - odo インデックスファイルが存在しない場合、ファイルインデックサーの初回の実行時であることを意味し、新規の odo インデックス JSON ファイルが作成されます。odo index JSON ファイルにはファイルマップが含まれます。移動したファイルの相対パスと、変更され、削除されたファイルの絶対パスが含まれます。
コードのプッシュ
ローカルコードは、通常は
/tmp/srcの下にあるアプリケーションコンテナーにコピーされます。assemble-and-restartの実行ソースコードのコピーに成功すると、
assemble-and-restartスクリプトは実行中のアプリケーションコンテナー内で実行されます。
2.3. odo のインストール リンクのコピーリンクがクリップボードにコピーされました!
以下のセクションでは、各種の異なるプラットフォームに odo をインストールする方法を説明します。
現時点では、odo はネットワークが制限された環境でのインストールをサポートしていません。
2.3.1. odo の Linux へのインストール リンクのコピーリンクがクリップボードにコピーされました!
2.3.1.1. バイナリーインストール リンクのコピーリンクがクリップボードにコピーされました!
curl -L https://mirror.openshift.com/pub/openshift-v4/clients/odo/latest/odo-linux-amd64 -o /usr/local/bin/odo chmod +x /usr/local/bin/odo
# curl -L https://mirror.openshift.com/pub/openshift-v4/clients/odo/latest/odo-linux-amd64 -o /usr/local/bin/odo
# chmod +x /usr/local/bin/odo
2.3.1.2. tarball インストール リンクのコピーリンクがクリップボードにコピーされました!
sh -c 'curl -L https://mirror.openshift.com/pub/openshift-v4/clients/odo/latest/odo-linux-amd64.tar.gz | gzip -d > /usr/local/bin/odo' chmod +x /usr/local/bin/odo
# sh -c 'curl -L https://mirror.openshift.com/pub/openshift-v4/clients/odo/latest/odo-linux-amd64.tar.gz | gzip -d > /usr/local/bin/odo'
# chmod +x /usr/local/bin/odo
2.3.2. odo の Windows へののインストール リンクのコピーリンクがクリップボードにコピーされました!
2.3.2.1. バイナリーインストール リンクのコピーリンクがクリップボードにコピーされました!
-
最新の
odo.exeファイルをダウンロードします。 -
odo.exeの場所をGOPATH/binディレクトリーに追加します。
Windows 7/8 の PATH 変数の設定
以下の例は、パス変数の設定方法を示しています。バイナリーは任意の場所に配置することができますが、この例では C:\go-bin を場所に使用します。
-
C:\go-binにフォルダーを作成します。 - Start を右クリックし、Control Panel をクリックします。
- System and Security を選択してから System をクリックします。
- 左側のメニューから、Advanced systems settings を選択し、下部にある Environment Variables ボタンをクリックします。
- Variable セクションから Path を選択し、Edit をクリックします。
-
New をクリックしてフィールドに
C:\go-binを入力するか、または Browse をクリックしてディレクトリーを選択してから OK をクリックします。
Windows 10 の PATH 変数の設定
検索機能を使用して環境変数を編集します。
-
Search クリックして、
envまたはenvironmentを入力します。 - Edit environment variables for your account を選択します。
- Variable セクションから Path を選択し、Edit をクリックします。
-
New をクリックしてフィールドに
C:\go-binを入力するか、または Browse をクリックしてディレクトリーを選択してから OK をクリックします。
2.3.3. odo の macOS へのインストール リンクのコピーリンクがクリップボードにコピーされました!
2.3.3.1. バイナリーインストール リンクのコピーリンクがクリップボードにコピーされました!
curl -L https://mirror.openshift.com/pub/openshift-v4/clients/odo/latest/odo-darwin-amd64 -o /usr/local/bin/odo chmod +x /usr/local/bin/odo
# curl -L https://mirror.openshift.com/pub/openshift-v4/clients/odo/latest/odo-darwin-amd64 -o /usr/local/bin/odo
# chmod +x /usr/local/bin/odo
2.3.3.2. tarball インストール リンクのコピーリンクがクリップボードにコピーされました!
sh -c 'curl -L https://mirror.openshift.com/pub/openshift-v4/clients/odo/latest/odo-darwin-amd64.tar.gz | gzip -d > /usr/local/bin/odo' chmod +x /usr/local/bin/odo
# sh -c 'curl -L https://mirror.openshift.com/pub/openshift-v4/clients/odo/latest/odo-darwin-amd64.tar.gz | gzip -d > /usr/local/bin/odo'
# chmod +x /usr/local/bin/odo
2.4. 制限された環境での odo の使用 リンクのコピーリンクがクリップボードにコピーされました!
2.4.1. 制限された環境での odo について リンクのコピーリンクがクリップボードにコピーされました!
odo を非接続の OpenShift Container Platform クラスター、または制限された環境でプロビジョニングされたクラスターで実行するには、クラスター管理者がミラーリングされたレジストリーでクラスターを作成していることを確認する必要があります。
非接続クラスターで作業を開始するには、まず odo init イメージをクラスターのレジストリーにプッシュし、ODO_BOOTSTRAPPER_IMAGE 環境変数を使用して odo init イメージパスを上書きする必要があります。
odo init image のプッシュ後に、レジストリーからサポートされているビルダーイメージをミラーリングし、ミラーレジストリーを上書きした後にアプリケーションを作成する必要があります。ビルダーイメージは、アプリケーションのランタイム環境を設定するために必要であり、これにはアプリケーションのビルドに必要なビルドツールが含まれます (例: Node.js の場合は npm、Java の場合は Maven)。ミラーレジストリーには、アプリケーションに必要なすべての依存関係が含まれます。
2.4.2. odo init イメージの制限されたクラスターレジストリーへのプッシュ リンクのコピーリンクがクリップボードにコピーされました!
クラスターおよびオペレーティングシステムの設定に応じて、odo init イメージをミラーレジストリーにプッシュするか、または内部レジストリーに直接プッシュできます。
前提条件
-
クライアントオペレーティングシステムに
ocをインストールします。 -
odoをクライアントオペレーティングシステムにインストールします。 - 内部レジストリーまたはミラーレジストリーが設定された OpenShift Container Platform の制限付きクラスターへのアクセス。
2.4.2.1. odo init イメージのミラーレジストリーへのプッシュ リンクのコピーリンクがクリップボードにコピーされました!
オペレーティングシステムによっては、以下のように odo init イメージをミラーレジストリーを持つクラスターにプッシュできます。
2.4.2.1.1. init イメージを Linux のミラーレジストリーにプッシュする リンクのコピーリンクがクリップボードにコピーされました!
手順
base64を使用してミラーレジストリーのルート認証局 (CA) コンテンツをエンコードします。echo <content_of_additional_ca> | base64 -d > disconnect-ca.crt
$ echo <content_of_additional_ca> | base64 -d > disconnect-ca.crtCopy to Clipboard Copied! Toggle word wrap Toggle overflow エンコーディングされたルート CA 証明書を適切な場所にコピーします。
sudo cp ./disconnect-ca.crt /etc/pki/ca-trust/source/anchors/<mirror-registry>.crt
$ sudo cp ./disconnect-ca.crt /etc/pki/ca-trust/source/anchors/<mirror-registry>.crtCopy to Clipboard Copied! Toggle word wrap Toggle overflow クライアントプラットフォームで CA を信頼し、OpenShift Container Platform ミラーレジストリーにログインします。
sudo update-ca-trust enable && sudo systemctl daemon-reload && sudo systemctl restart / docker && docker login <mirror-registry>:5000 -u <username> -p <password>
$ sudo update-ca-trust enable && sudo systemctl daemon-reload && sudo systemctl restart / docker && docker login <mirror-registry>:5000 -u <username> -p <password>Copy to Clipboard Copied! Toggle word wrap Toggle overflow odo initイメージをミラーリングします。oc image mirror registry.access.redhat.com/openshiftdo/odo-init-image-rhel7:<tag> <mirror-registry>:5000/openshiftdo/odo-init-image-rhel7:<tag>
$ oc image mirror registry.access.redhat.com/openshiftdo/odo-init-image-rhel7:<tag> <mirror-registry>:5000/openshiftdo/odo-init-image-rhel7:<tag>Copy to Clipboard Copied! Toggle word wrap Toggle overflow ODO_BOOTSTRAPPER_IMAGE環境変数を設定してデフォルトのodo initイメージパスを上書きします。export ODO_BOOTSTRAPPER_IMAGE=<mirror-registry>:5000/openshiftdo/odo-init-image-rhel7:<tag>
$ export ODO_BOOTSTRAPPER_IMAGE=<mirror-registry>:5000/openshiftdo/odo-init-image-rhel7:<tag>Copy to Clipboard Copied! Toggle word wrap Toggle overflow
2.4.2.1.2. init イメージを MacOS のミラーレジストリーにプッシュする リンクのコピーリンクがクリップボードにコピーされました!
手順
base64を使用してミラーレジストリーのルート認証局 (CA) コンテンツをエンコードします。echo <content_of_additional_ca> | base64 -d > disconnect-ca.crt
$ echo <content_of_additional_ca> | base64 -d > disconnect-ca.crtCopy to Clipboard Copied! Toggle word wrap Toggle overflow エンコーディングされたルート CA 証明書を適切な場所にコピーします。
- Docker UI を使用して Docker を再起動します。
以下のコマンドを実行します。
docker login <mirror-registry>:5000 -u <username> -p <password>
$ docker login <mirror-registry>:5000 -u <username> -p <password>Copy to Clipboard Copied! Toggle word wrap Toggle overflow
odo initイメージをミラーリングします。oc image mirror registry.access.redhat.com/openshiftdo/odo-init-image-rhel7:<tag> <mirror-registry>:5000/openshiftdo/odo-init-image-rhel7:<tag>
$ oc image mirror registry.access.redhat.com/openshiftdo/odo-init-image-rhel7:<tag> <mirror-registry>:5000/openshiftdo/odo-init-image-rhel7:<tag>Copy to Clipboard Copied! Toggle word wrap Toggle overflow ODO_BOOTSTRAPPER_IMAGE環境変数を設定してデフォルトのodo initイメージパスを上書きします。export ODO_BOOTSTRAPPER_IMAGE=<mirror-registry>:5000/openshiftdo/odo-init-image-rhel7:<tag>
$ export ODO_BOOTSTRAPPER_IMAGE=<mirror-registry>:5000/openshiftdo/odo-init-image-rhel7:<tag>Copy to Clipboard Copied! Toggle word wrap Toggle overflow
2.4.2.1.3. Windows のミラーレジストリーに init イメージをプッシュする リンクのコピーリンクがクリップボードにコピーされました!
手順
base64を使用してミラーレジストリーのルート認証局 (CA) コンテンツをエンコードします。PS C:\> echo <content_of_additional_ca> | base64 -d > disconnect-ca.crt
PS C:\> echo <content_of_additional_ca> | base64 -d > disconnect-ca.crtCopy to Clipboard Copied! Toggle word wrap Toggle overflow 管理者として、以下のコマンドを実行して、エンコーディングされたルート CA 証明書を適切な場所にコピーします。
PS C:\WINDOWS\system32> certutil -addstore -f "ROOT" disconnect-ca.crt
PS C:\WINDOWS\system32> certutil -addstore -f "ROOT" disconnect-ca.crtCopy to Clipboard Copied! Toggle word wrap Toggle overflow クライアントプラットフォームで CA を信頼し、OpenShift Container Platform ミラーレジストリーにログインします。
- Docker UI を使用して Docker を再起動します。
以下のコマンドを実行します。
PS C:\WINDOWS\system32> docker login <mirror-registry>:5000 -u <username> -p <password>
PS C:\WINDOWS\system32> docker login <mirror-registry>:5000 -u <username> -p <password>Copy to Clipboard Copied! Toggle word wrap Toggle overflow
odo initイメージをミラーリングします。PS C:\> oc image mirror registry.access.redhat.com/openshiftdo/odo-init-image-rhel7:<tag> <mirror-registry>:5000/openshiftdo/odo-init-image-rhel7:<tag>
PS C:\> oc image mirror registry.access.redhat.com/openshiftdo/odo-init-image-rhel7:<tag> <mirror-registry>:5000/openshiftdo/odo-init-image-rhel7:<tag>Copy to Clipboard Copied! Toggle word wrap Toggle overflow ODO_BOOTSTRAPPER_IMAGE環境変数を設定してデフォルトのodo initイメージパスを上書きします。PS C:\> $env:ODO_BOOTSTRAPPER_IMAGE="<mirror-registry>:5000/openshiftdo/odo-init-image-rhel7:<tag>"
PS C:\> $env:ODO_BOOTSTRAPPER_IMAGE="<mirror-registry>:5000/openshiftdo/odo-init-image-rhel7:<tag>"Copy to Clipboard Copied! Toggle word wrap Toggle overflow
2.4.2.2. odo init イメージを内部レジストリーに直接プッシュする リンクのコピーリンクがクリップボードにコピーされました!
クラスターでイメージを内部レジストリーに直接プッシュできる場合、以下のように odo init イメージをレジストリーにプッシュします。
2.4.2.2.1. init イメージを Linux 上で直接プッシュする リンクのコピーリンクがクリップボードにコピーされました!
手順
デフォルトのルートを有効にします。
oc patch configs.imageregistry.operator.openshift.io cluster -p '{"spec":{"defaultRoute":true}}' --type='merge' -n openshift-image-registry$ oc patch configs.imageregistry.operator.openshift.io cluster -p '{"spec":{"defaultRoute":true}}' --type='merge' -n openshift-image-registryCopy to Clipboard Copied! Toggle word wrap Toggle overflow ワイルドカードルート CA を取得します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow base64を使用してミラーレジストリーのルート認証局 (CA) コンテンツをエンコードします。echo <tls.crt> | base64 -d > ca.crt
$ echo <tls.crt> | base64 -d > ca.crtCopy to Clipboard Copied! Toggle word wrap Toggle overflow クライアントプラットフォームで CA を信頼します。
sudo cp ca.crt /etc/pki/ca-trust/source/anchors/externalroute.crt && sudo update-ca-trust enable && sudo systemctl daemon-reload && sudo systemctl restart docker
$ sudo cp ca.crt /etc/pki/ca-trust/source/anchors/externalroute.crt && sudo update-ca-trust enable && sudo systemctl daemon-reload && sudo systemctl restart dockerCopy to Clipboard Copied! Toggle word wrap Toggle overflow 内部レジストリーにログインします。
oc get route -n openshift-image-registry docker login <registry_path> -u kubeadmin -p $(oc whoami -t)
$ oc get route -n openshift-image-registry NAME HOST/PORT PATH SERVICES PORT TERMINATION WILDCARD default-route <registry_path> image-registry <all> reencrypt None $ docker login <registry_path> -u kubeadmin -p $(oc whoami -t)Copy to Clipboard Copied! Toggle word wrap Toggle overflow odo initイメージをプッシュします。docker pull registry.access.redhat.com/openshiftdo/odo-init-image-rhel7:<tag> docker tag registry.access.redhat.com/openshiftdo/odo-init-image-rhel7:<tag> <registry_path>/openshiftdo/odo-init-image-rhel7:<tag> docker push <registry_path>/openshiftdo/odo-init-image-rhel7:<tag>
$ docker pull registry.access.redhat.com/openshiftdo/odo-init-image-rhel7:<tag> $ docker tag registry.access.redhat.com/openshiftdo/odo-init-image-rhel7:<tag> <registry_path>/openshiftdo/odo-init-image-rhel7:<tag> $ docker push <registry_path>/openshiftdo/odo-init-image-rhel7:<tag>Copy to Clipboard Copied! Toggle word wrap Toggle overflow ODO_BOOTSTRAPPER_IMAGE環境変数を設定してデフォルトのodo initイメージパスを上書きします。export ODO_BOOTSTRAPPER_IMAGE=<registry_path>/openshiftdo/odo-init-image-rhel7:1.0.1
$ export ODO_BOOTSTRAPPER_IMAGE=<registry_path>/openshiftdo/odo-init-image-rhel7:1.0.1Copy to Clipboard Copied! Toggle word wrap Toggle overflow
2.4.2.2.2. init イメージを MacOS 上で直接プッシュする リンクのコピーリンクがクリップボードにコピーされました!
手順
デフォルトのルートを有効にします。
oc patch configs.imageregistry.operator.openshift.io cluster -p '{"spec":{"defaultRoute":true}}' --type='merge' -n openshift-image-registry$ oc patch configs.imageregistry.operator.openshift.io cluster -p '{"spec":{"defaultRoute":true}}' --type='merge' -n openshift-image-registryCopy to Clipboard Copied! Toggle word wrap Toggle overflow ワイルドカードルート CA を取得します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow base64を使用してミラーレジストリーのルート認証局 (CA) コンテンツをエンコードします。echo <tls.crt> | base64 -d > ca.crt
$ echo <tls.crt> | base64 -d > ca.crtCopy to Clipboard Copied! Toggle word wrap Toggle overflow クライアントプラットフォームで CA を信頼します。
sudo security add-trusted-cert -d -r trustRoot -k /Library/Keychains/System.keychain ca.crt
$ sudo security add-trusted-cert -d -r trustRoot -k /Library/Keychains/System.keychain ca.crtCopy to Clipboard Copied! Toggle word wrap Toggle overflow 内部レジストリーにログインします。
oc get route -n openshift-image-registry docker login <registry_path> -u kubeadmin -p $(oc whoami -t)
$ oc get route -n openshift-image-registry NAME HOST/PORT PATH SERVICES PORT TERMINATION WILDCARD default-route <registry_path> image-registry <all> reencrypt None $ docker login <registry_path> -u kubeadmin -p $(oc whoami -t)Copy to Clipboard Copied! Toggle word wrap Toggle overflow odo initイメージをプッシュします。docker pull registry.access.redhat.com/openshiftdo/odo-init-image-rhel7:<tag> docker tag registry.access.redhat.com/openshiftdo/odo-init-image-rhel7:<tag> <registry_path>/openshiftdo/odo-init-image-rhel7:<tag> docker push <registry_path>/openshiftdo/odo-init-image-rhel7:<tag>
$ docker pull registry.access.redhat.com/openshiftdo/odo-init-image-rhel7:<tag> $ docker tag registry.access.redhat.com/openshiftdo/odo-init-image-rhel7:<tag> <registry_path>/openshiftdo/odo-init-image-rhel7:<tag> $ docker push <registry_path>/openshiftdo/odo-init-image-rhel7:<tag>Copy to Clipboard Copied! Toggle word wrap Toggle overflow ODO_BOOTSTRAPPER_IMAGE環境変数を設定してデフォルトのodo initイメージパスを上書きします。export ODO_BOOTSTRAPPER_IMAGE=<registry_path>/openshiftdo/odo-init-image-rhel7:1.0.1
$ export ODO_BOOTSTRAPPER_IMAGE=<registry_path>/openshiftdo/odo-init-image-rhel7:1.0.1Copy to Clipboard Copied! Toggle word wrap Toggle overflow
2.4.2.2.3. init イメージを Windows 上で直接プッシュする リンクのコピーリンクがクリップボードにコピーされました!
手順
デフォルトのルートを有効にします。
PS C:\> oc patch configs.imageregistry.operator.openshift.io cluster -p '{"spec":{"defaultRoute":true}}' --type='merge' -n openshift-image-registryPS C:\> oc patch configs.imageregistry.operator.openshift.io cluster -p '{"spec":{"defaultRoute":true}}' --type='merge' -n openshift-image-registryCopy to Clipboard Copied! Toggle word wrap Toggle overflow ワイルドカードルート CA を取得します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow base64を使用してミラーレジストリーのルート認証局 (CA) コンテンツをエンコードします。PS C:\> echo <tls.crt> | base64 -d > ca.crt
PS C:\> echo <tls.crt> | base64 -d > ca.crtCopy to Clipboard Copied! Toggle word wrap Toggle overflow 管理者として、以下のコマンドを実行して、クライアントプラットフォームの CA を信頼します。
PS C:\WINDOWS\system32> certutil -addstore -f "ROOT" ca.crt
PS C:\WINDOWS\system32> certutil -addstore -f "ROOT" ca.crtCopy to Clipboard Copied! Toggle word wrap Toggle overflow 内部レジストリーにログインします。
PS C:\> oc get route -n openshift-image-registry NAME HOST/PORT PATH SERVICES PORT TERMINATION WILDCARD default-route <registry_path> image-registry <all> reencrypt None PS C:\> docker login <registry_path> -u kubeadmin -p $(oc whoami -t)
PS C:\> oc get route -n openshift-image-registry NAME HOST/PORT PATH SERVICES PORT TERMINATION WILDCARD default-route <registry_path> image-registry <all> reencrypt None PS C:\> docker login <registry_path> -u kubeadmin -p $(oc whoami -t)Copy to Clipboard Copied! Toggle word wrap Toggle overflow odo initイメージをプッシュします。PS C:\> docker pull registry.access.redhat.com/openshiftdo/odo-init-image-rhel7:<tag> PS C:\> docker tag registry.access.redhat.com/openshiftdo/odo-init-image-rhel7:<tag> <registry_path>/openshiftdo/odo-init-image-rhel7:<tag> PS C:\> docker push <registry_path>/openshiftdo/odo-init-image-rhel7:<tag>
PS C:\> docker pull registry.access.redhat.com/openshiftdo/odo-init-image-rhel7:<tag> PS C:\> docker tag registry.access.redhat.com/openshiftdo/odo-init-image-rhel7:<tag> <registry_path>/openshiftdo/odo-init-image-rhel7:<tag> PS C:\> docker push <registry_path>/openshiftdo/odo-init-image-rhel7:<tag>Copy to Clipboard Copied! Toggle word wrap Toggle overflow ODO_BOOTSTRAPPER_IMAGE環境変数を設定してデフォルトのodo initイメージパスを上書きします。PS C:\> $env:ODO_BOOTSTRAPPER_IMAGE="<registry_path>/openshiftdo/odo-init-image-rhel7:<tag>"
PS C:\> $env:ODO_BOOTSTRAPPER_IMAGE="<registry_path>/openshiftdo/odo-init-image-rhel7:<tag>"Copy to Clipboard Copied! Toggle word wrap Toggle overflow
2.4.3. コンポーネントの作成および非接続クラスターへのデプロイ リンクのコピーリンクがクリップボードにコピーされました!
ミラーリングされたレジストリーを持つクラスターに init イメージをプッシュした後に、アプリケーションでサポートされるビルダーイメージを oc ツールでミラーリングし、環境変数を使用してミラーレジストリーを上書きし、コンポーネントを作成する必要があります。
前提条件
-
クライアントオペレーティングシステムに
ocをインストールします。 -
odoをクライアントオペレーティングシステムにインストールします。 - 内部レジストリーまたはミラーレジストリーが設定された OpenShift Container Platform の制限付きクラスターへのアクセス。
-
odo initイメージをクラスターレジストリーにプッシュします。
2.4.3.1. サポートされるビルダーイメージのミラーリング リンクのコピーリンクがクリップボードにコピーされました!
Node.js の依存関係に npm パッケージを使用し、Java の依存関係に Maven パッケージを使用し、アプリケーションのランタイム環境を設定するには、ミラーレジストリーから適切なビルダーイメージをミラーリングする必要があります。
手順
必要なイメージタグがインポートされていないことを確認します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow サポートされるイメージタグをプライベートレジストリーに対してミラーリングします。
oc image mirror registry.access.redhat.com/rhscl/nodejs-10-rhel7:<tag> <private_registry>/rhscl/nodejs-10-rhel7:<tag>
$ oc image mirror registry.access.redhat.com/rhscl/nodejs-10-rhel7:<tag> <private_registry>/rhscl/nodejs-10-rhel7:<tag>Copy to Clipboard Copied! Toggle word wrap Toggle overflow イメージをインポートします。
oc tag <mirror-registry>:<port>/rhscl/nodejs-10-rhel7:<tag> nodejs-10-rhel7:latest --scheduled
$ oc tag <mirror-registry>:<port>/rhscl/nodejs-10-rhel7:<tag> nodejs-10-rhel7:latest --scheduledCopy to Clipboard Copied! Toggle word wrap Toggle overflow イメージを定期的に再インポートする必要があります。
--scheduledフラグは、イメージの自動再インポートを有効にします。指定されたタグを持つイメージがインポートされていることを確認します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
2.4.3.2. ミラーレジストリーの上書き リンクのコピーリンクがクリップボードにコピーされました!
Node.js の依存関係用の npm パッケージおよび Java の依存関係用の Maven パッケージをプライベートミラーレジストリーからダウンロードするには、クラスター上にミラー npm または Maven レジストリーを作成し、設定する必要があります。その後、既存のコンポーネントで、または新規コンポーネントの作成時にミラーレジストリーを上書きできます。
手順
既存のコンポーネントでミラーレジストリーを上書きするには、以下を実行します。
odo config set --env NPM_MIRROR=<npm_mirror_registry>
$ odo config set --env NPM_MIRROR=<npm_mirror_registry>Copy to Clipboard Copied! Toggle word wrap Toggle overflow コンポーネントの作成時にミラーレジストリーを上書きするには、以下を実行します。
odo component create nodejs --env NPM_MIRROR=<npm_mirror_registry>
$ odo component create nodejs --env NPM_MIRROR=<npm_mirror_registry>Copy to Clipboard Copied! Toggle word wrap Toggle overflow
2.4.3.3. odo を使用した Node.js アプリケーションの作成 リンクのコピーリンクがクリップボードにコピーされました!
Node.js コンポーネントを作成するには、Node.js アプリケーションをダウンロードし、odoでソースコードをクラスターにプッシュします。
手順
現在のディレクトリーをアプリケーションのあるディレクトリーに切り替えます。
cd <directory name>
$ cd <directory name>Copy to Clipboard Copied! Toggle word wrap Toggle overflow Node.js タイプのコンポーネントをアプリケーションに追加します。
odo create nodejs
$ odo create nodejsCopy to Clipboard Copied! Toggle word wrap Toggle overflow 注記デフォルトで、最新イメージが使用されます。また、
odo create openshift/nodejs:8を使用してイメージのバージョンを明示的に指定できます。初期ソースコードをコンポーネントにプッシュします。
odo push
$ odo pushCopy to Clipboard Copied! Toggle word wrap Toggle overflow これで、コンポーネントは OpenShift Container Platform にデプロイされます。
URL を作成し、以下のようにローカル設定ファイルにエントリーを追加します。
odo url create --port 8080
$ odo url create --port 8080Copy to Clipboard Copied! Toggle word wrap Toggle overflow 変更をプッシュします。これにより、URL がクラスターに作成されます。
odo push
$ odo pushCopy to Clipboard Copied! Toggle word wrap Toggle overflow コンポーネントに必要な URL を確認するために URL を一覧表示します。
odo url list
$ odo url listCopy to Clipboard Copied! Toggle word wrap Toggle overflow 生成された URL を使用してデプロイされたアプリケーションを表示します。
curl <URL>
$ curl <URL>Copy to Clipboard Copied! Toggle word wrap Toggle overflow
2.5. odo を使用した単一コンポーネントアプリケーションの作成 リンクのコピーリンクがクリップボードにコピーされました!
odo を使用すると、OpenShift Container Platform クラスターでアプリケーションを作成し、デプロイできます。
前提条件
-
odoがインストールされている。 - OpenShift Container Platform クラスターが実行中である。CodeReady Containers (CRC) を使用して、OpenShift Container Platform のローカルクラスターを迅速にデプロイできます。
2.5.1. プロジェクトの作成 リンクのコピーリンクがクリップボードにコピーされました!
プロジェクトを作成し、別個の単一の単位で編成されるソースコード、テスト、ライブラリーを維持します。
手順
OpenShift Container Platform クラスターにログインします。
odo login -u developer -p developer
$ odo login -u developer -p developerCopy to Clipboard Copied! Toggle word wrap Toggle overflow プロジェクトを作成します。
odo project create myproject
$ odo project create myproject ✓ Project 'myproject' is ready for use ✓ New project created and now using project : myprojectCopy to Clipboard Copied! Toggle word wrap Toggle overflow
2.5.2. odo を使用した Node.js アプリケーションの作成 リンクのコピーリンクがクリップボードにコピーされました!
Node.js コンポーネントを作成するには、Node.js アプリケーションをダウンロードし、odoでソースコードをクラスターにプッシュします。
手順
コンポーネントの新規ディレクトリーを作成します。
mkdir my_components $$ cd my_components
$ mkdir my_components $$ cd my_componentsCopy to Clipboard Copied! Toggle word wrap Toggle overflow Node.js アプリケーションのサンプルをダウンロードします。
git clone https://github.com/openshift/nodejs-ex
$ git clone https://github.com/openshift/nodejs-exCopy to Clipboard Copied! Toggle word wrap Toggle overflow 現在のディレクトリーをアプリケーションのあるディレクトリーに切り替えます。
cd <directory name>
$ cd <directory name>Copy to Clipboard Copied! Toggle word wrap Toggle overflow Node.js タイプのコンポーネントをアプリケーションに追加します。
odo create nodejs
$ odo create nodejsCopy to Clipboard Copied! Toggle word wrap Toggle overflow 注記デフォルトで、最新イメージが使用されます。また、
odo create openshift/nodejs:8を使用してイメージのバージョンを明示的に指定できます。初期ソースコードをコンポーネントにプッシュします。
odo push
$ odo pushCopy to Clipboard Copied! Toggle word wrap Toggle overflow これで、コンポーネントは OpenShift Container Platform にデプロイされます。
URL を作成し、以下のようにローカル設定ファイルにエントリーを追加します。
odo url create --port 8080
$ odo url create --port 8080Copy to Clipboard Copied! Toggle word wrap Toggle overflow 変更をプッシュします。これにより、URL がクラスターに作成されます。
odo push
$ odo pushCopy to Clipboard Copied! Toggle word wrap Toggle overflow コンポーネントに必要な URL を確認するために URL を一覧表示します。
odo url list
$ odo url listCopy to Clipboard Copied! Toggle word wrap Toggle overflow 生成された URL を使用してデプロイされたアプリケーションを表示します。
curl <URL>
$ curl <URL>Copy to Clipboard Copied! Toggle word wrap Toggle overflow
2.5.3. アプリケーションコードの変更 リンクのコピーリンクがクリップボードにコピーされました!
アプリケーションコードを変更し、それらの変更を OpenShift Container Platform のアプリケーションに適用します。
- 選択するテキストエディターで、Node.js ディレクトリー内のレイアウトファイルのいずれかを編集します。
コンポーネントを更新します。
odo push
$ odo pushCopy to Clipboard Copied! Toggle word wrap Toggle overflow - ブラウザーでアプリケーションを更新し、変更を確認します。
2.5.4. ストレージのアプリケーションコンポーネントへの追加 リンクのコピーリンクがクリップボードにコピーされました!
永続ストレージは、odo を再起動してもデータを利用可能な状態に維持します。odo storage コマンドを使用して、ストレージをコンポーネントに追加できます。
手順
ストレージをコンポーネントに追加します。
odo storage create nodestorage --path=/opt/app-root/src/storage/ --size=1Gi
$ odo storage create nodestorage --path=/opt/app-root/src/storage/ --size=1GiCopy to Clipboard Copied! Toggle word wrap Toggle overflow
コンポーネントには 1 GB のストレージがあります。
2.5.5. ビルドイメージを指定するためのカスタムビルダーの追加 リンクのコピーリンクがクリップボードにコピーされました!
OpenShift Container Platform では、カスタムイメージの作成ごとに発生する差を埋めるカスタムイメージを追加できます。
以下の例は、redhat-openjdk-18 イメージの正常なインポートおよび使用方法について示しています。
前提条件
- OpenShift CLI (oc) がインストールされている。
手順
イメージを OpenShift Container Platform にインポートします。
oc import-image openjdk18 \ --from=registry.access.redhat.com/redhat-openjdk-18/openjdk18-openshift \ --confirm
$ oc import-image openjdk18 \ --from=registry.access.redhat.com/redhat-openjdk-18/openjdk18-openshift \ --confirmCopy to Clipboard Copied! Toggle word wrap Toggle overflow イメージにタグを付け、odo からアクセスできるようにします。
oc annotate istag/openjdk18:latest tags=builder
$ oc annotate istag/openjdk18:latest tags=builderCopy to Clipboard Copied! Toggle word wrap Toggle overflow odo でイメージをデプロイします。
odo create openjdk18 --git \ https://github.com/openshift-evangelists/Wild-West-Backend
$ odo create openjdk18 --git \ https://github.com/openshift-evangelists/Wild-West-BackendCopy to Clipboard Copied! Toggle word wrap Toggle overflow
2.5.6. OpenShift Service Catalog を使用したアプリケーションの複数サービスへの接続 リンクのコピーリンクがクリップボードにコピーされました!
OpenShift サービスカタログは、Kubernetes 用の Open Service Broker API (OSB API) の実装です。これを使用すると、OpenShift Container Platform にデプロイされているアプリケーションをさまざまなサービスに接続できます。
前提条件
- OpenShift Container Platform クラスターが実行中である。
- サービスカタログがクラスターにインストールされ、有効にされている。
手順
サービスを一覧表示するには、以下を使用します。
odo catalog list services
$ odo catalog list servicesCopy to Clipboard Copied! Toggle word wrap Toggle overflow サービスカタログ関連の操作を使用するには、以下を実行します。
odo service <verb> <servicename>
$ odo service <verb> <servicename>Copy to Clipboard Copied! Toggle word wrap Toggle overflow
2.5.7. アプリケーションの削除 リンクのコピーリンクがクリップボードにコピーされました!
アプリケーションを削除すると、アプリケーションに関連付けられたすべてのコンポーネントが削除されます。
手順
現在のプロジェクトのアプリケーションを一覧表示します。
odo app list
$ odo app list The project '<project_name>' has the following applications: NAME appCopy to Clipboard Copied! Toggle word wrap Toggle overflow アプリケーションに関連付けられたコンポーネントを一覧表示します。これらのコンポーネントはアプリケーションと共に削除されます。
odo component list
$ odo component list APP NAME TYPE SOURCE STATE app nodejs-nodejs-ex-elyf nodejs file://./ PushedCopy to Clipboard Copied! Toggle word wrap Toggle overflow アプリケーションを削除します。
odo app delete <application_name>
$ odo app delete <application_name> ? Are you sure you want to delete the application: <application_name> from project: <project_name>Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
Yで削除を確定します。-fフラグを使用すると、確認プロンプトを非表示にできます。
2.6. odo を使用したマルチコンポーネントアプリケーションの作成 リンクのコピーリンクがクリップボードにコピーされました!
odo を使用すると、簡単かつ自動化された方法でマルチコンポーネントアプリケーションを作成し、変更し、そのコンポーネントをリンクすることができます。
この例では、マルチコンポーネントアプリケーション (シューティングゲーム) をデプロイする方法について説明します。アプリケーションはフロントエンド Node.js コンポーネントとバックエンド Java コンポーネントで構成されます。
前提条件
-
odoがインストールされている。 - OpenShift Container Platform クラスターが実行中である。開発者は CodeReady Containers (CRC) を使用して、OpenShift Container Platform のローカルクラスターを迅速にデプロイできます。
- Maven がインストールされている。
2.6.1. プロジェクトの作成 リンクのコピーリンクがクリップボードにコピーされました!
プロジェクトを作成し、別個の単一の単位で編成されるソースコード、テスト、ライブラリーを維持します。
手順
OpenShift Container Platform クラスターにログインします。
odo login -u developer -p developer
$ odo login -u developer -p developerCopy to Clipboard Copied! Toggle word wrap Toggle overflow プロジェクトを作成します。
odo project create myproject
$ odo project create myproject ✓ Project 'myproject' is ready for use ✓ New project created and now using project : myprojectCopy to Clipboard Copied! Toggle word wrap Toggle overflow
2.6.2. バックエンドコンポーネントのデプロイ リンクのコピーリンクがクリップボードにコピーされました!
Java コンポーネントを作成するには、Java ビルダーイメージをインポートし、Java アプリケーションをダウンロードし、odo でソースコードをクラスターにプッシュします。
手順
openjdk18をクラスターにインポートします。oc import-image openjdk18 \ --from=registry.access.redhat.com/redhat-openjdk-18/openjdk18-openshift --confirm
$ oc import-image openjdk18 \ --from=registry.access.redhat.com/redhat-openjdk-18/openjdk18-openshift --confirmCopy to Clipboard Copied! Toggle word wrap Toggle overflow イメージに
builderのタグを付け、イメージが odo でアクセスできるようにします。oc annotate istag/openjdk18:latest tags=builder
$ oc annotate istag/openjdk18:latest tags=builderCopy to Clipboard Copied! Toggle word wrap Toggle overflow odo catalog list componentsを実行し、作成されたイメージを表示します。odo catalog list components Odo Supported OpenShift Components: NAME PROJECT TAGS nodejs openshift 10,8,8-RHOAR,latest openjdk18 myproject latest
$ odo catalog list components Odo Supported OpenShift Components: NAME PROJECT TAGS nodejs openshift 10,8,8-RHOAR,latest openjdk18 myproject latestCopy to Clipboard Copied! Toggle word wrap Toggle overflow コンポーネントの新規ディレクトリーを作成します。
mkdir my_components $$ cd my_components
$ mkdir my_components $$ cd my_componentsCopy to Clipboard Copied! Toggle word wrap Toggle overflow バックエンドアプリケーションのサンプルをダウンロードします。
git clone https://github.com/openshift-evangelists/Wild-West-Backend backend
$ git clone https://github.com/openshift-evangelists/Wild-West-Backend backendCopy to Clipboard Copied! Toggle word wrap Toggle overflow ディレクトリーをバックエンドソースディレクトリーに切り替え、そのディレクトリーに正しいファイルが含まれることを確認します。
cd backend ls
$ cd backend $ ls debug.sh pom.xml srcCopy to Clipboard Copied! Toggle word wrap Toggle overflow バックエンドのソースファイルを Maven でビルドし、JAR ファイルを作成します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow backendという Java コンポーネントタイプのコンポーネント設定を作成します。odo create openjdk18 backend --binary target/wildwest-1.0.jar
$ odo create openjdk18 backend --binary target/wildwest-1.0.jar ✓ Validating component [1ms] Please use `odo push` command to create the component with source deployedCopy to Clipboard Copied! Toggle word wrap Toggle overflow 設定ファイルの
config.yamlは、デプロイ用のコンポーネントについての情報が含まれるバックエンドコンポーネントのローカルディレクトリーに置かれます。以下を使用して
config.yamlファイルでバックエンドコンポーネントの設定内容を確認します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow コンポーネントを OpenShift Container Platform クラスターにプッシュします。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow odo pushを使用すると、OpenShift Container Platform はバックエンドコンポーネントをホストするためのコンテナーを作成し、そのコンテナーを OpenShift Container Platform クラスターで実行されている Pod にデプロイし、backendコンポーネントを起動します。以下を検証します。
odo でのアクションのステータス
odo log -f 2019-09-30 20:14:19.738 INFO 444 --- [ main] c.o.wildwest.WildWestApplication : Starting WildWestApplication v1.0 onbackend-app-1-9tnhc with PID 444 (/deployments/wildwest-1.0.jar started by jboss in /deployments)
odo log -f 2019-09-30 20:14:19.738 INFO 444 --- [ main] c.o.wildwest.WildWestApplication : Starting WildWestApplication v1.0 onbackend-app-1-9tnhc with PID 444 (/deployments/wildwest-1.0.jar started by jboss in /deployments)Copy to Clipboard Copied! Toggle word wrap Toggle overflow バックエンドコンポーネントのステータス
odo list
$ odo list APP NAME TYPE SOURCE STATE app backend openjdk18 file://target/wildwest-1.0.jar PushedCopy to Clipboard Copied! Toggle word wrap Toggle overflow
2.6.3. フロントエンドコンポーネントのデプロイ リンクのコピーリンクがクリップボードにコピーされました!
フロントエンドコンポーネントを作成およびデプロイするには、Node.js アプリケーションをダウンロードし、ソースコードを odoでクラスターにプッシュします。
手順
フロントエンドアプリケーションのサンプルをダウンロードします。
git clone https://github.com/openshift/nodejs-ex
$ git clone https://github.com/openshift/nodejs-exCopy to Clipboard Copied! Toggle word wrap Toggle overflow 現在のディレクトリーをフロントエンドディレクトリーに切り替えます。
cd <directory-name>
$ cd <directory-name>Copy to Clipboard Copied! Toggle word wrap Toggle overflow フロントエンドが Node.js アプリケーションであることを確認するために、ディレクトリーの内容を一覧表示します。
ls
$ ls assets bin index.html kwww-frontend.iml package.json package-lock.json playfield.png README.md server.jsCopy to Clipboard Copied! Toggle word wrap Toggle overflow 注記フロントエンドコンポーネントはインタプリター型言語で記述され (Node.js)、ビルドされる必要はありません。
frontendという名前の Node.js コンポーネントタイプのコンポーネント設定を作成します。odo create nodejs frontend
$ odo create nodejs frontend ✓ Validating component [5ms] Please use `odo push` command to create the component with source deployedCopy to Clipboard Copied! Toggle word wrap Toggle overflow コンポーネントを実行中のコンテナーにプッシュします。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
2.6.4. 2 つのコンポーネントのリンク リンクのコピーリンクがクリップボードにコピーされました!
クラスターで実行されるコンポーネントは、対話するために接続される必要があります。OpenShift Container Platform は、リンクの仕組みを提供し、プログラムからクライアントへの通信バインディングを公開します。
手順
クラスターで実行されるすべてのコンポーネントの一覧を表示します。
odo list
$ odo list APP NAME TYPE SOURCE STATE app backend openjdk18 file://target/wildwest-1.0.jar Pushed app frontend nodejs file://./ PushedCopy to Clipboard Copied! Toggle word wrap Toggle overflow 現在のフロントエンドコンポーネントをバックエンドにリンクします。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow バックエンドコンポーネントの設定情報がフロントエンドコンポーネントに追加され、フロントエンドコンポーネントが再起動します。
2.6.5. コンポーネントの公開 リンクのコピーリンクがクリップボードにコピーされました!
手順
アプリケーションの外部 URL を作成します。
cd frontend odo url create frontend --port 8080
$ cd frontend $ odo url create frontend --port 8080 ✓ URL frontend created for component: frontend To create URL on the OpenShift cluster, use `odo push`Copy to Clipboard Copied! Toggle word wrap Toggle overflow 変更を適用します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - ブラウザーで URL を開き、アプリケーションを表示します。
アプリケーションに OpenShift Container Platform namespace にアクセスし、アクティブな Pod を削除するのに有効なサービスアカウントのパーミッションが必要な場合、バックエンドコンポーネントから odo log を参照すると以下のエラーが発生する場合があります。
Message: Forbidden!Configured service account doesn’t have access.Service account may have been revoked
このエラーを解決するには、サービスアカウントロールのパーミッションを追加します。
oc policy add-role-to-group view system:serviceaccounts -n <project> oc policy add-role-to-group edit system:serviceaccounts -n <project>
$ oc policy add-role-to-group view system:serviceaccounts -n <project>
$ oc policy add-role-to-group edit system:serviceaccounts -n <project>
これは実稼働クラスターでは実行しないでください。
2.6.6. 実行中のアプリケーションの変更 リンクのコピーリンクがクリップボードにコピーされました!
手順
ローカルディレクトリーをフロントエンドディレクトリーに切り替えます。
cd ~/frontend
$ cd ~/frontendCopy to Clipboard Copied! Toggle word wrap Toggle overflow 以下のコマンドを実行して、ファイルシステムで変更を監視します。
odo watch
$ odo watchCopy to Clipboard Copied! Toggle word wrap Toggle overflow index.htmlファイルを編集して、ゲームの表示される名前を変更します。注記odo が変更を認識するまでに若干の遅延が発生する場合があります。
odo は変更をフロントエンドコンポーネントにプッシュし、そのステータスをターミナルに印刷します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - Web ブラウザーでアプリケーションページを更新します。これで新しい名前が表示されます。
2.6.7. アプリケーションの削除 リンクのコピーリンクがクリップボードにコピーされました!
アプリケーションを削除すると、アプリケーションに関連付けられたすべてのコンポーネントが削除されます。
手順
現在のプロジェクトのアプリケーションを一覧表示します。
odo app list
$ odo app list The project '<project_name>' has the following applications: NAME appCopy to Clipboard Copied! Toggle word wrap Toggle overflow アプリケーションに関連付けられたコンポーネントを一覧表示します。これらのコンポーネントはアプリケーションと共に削除されます。
odo component list
$ odo component list APP NAME TYPE SOURCE STATE app nodejs-nodejs-ex-elyf nodejs file://./ PushedCopy to Clipboard Copied! Toggle word wrap Toggle overflow アプリケーションを削除します。
odo app delete <application_name>
$ odo app delete <application_name> ? Are you sure you want to delete the application: <application_name> from project: <project_name>Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
Yで削除を確定します。-fフラグを使用すると、確認プロンプトを非表示にできます。
2.7. データベースと共にアプリケーションを作成する リンクのコピーリンクがクリップボードにコピーされました!
以下の例では、データベースをフロントエンドアプリケーションにデプロイし、接続する方法を説明します。
前提条件
-
odoがインストールされている。 -
ocクライアントがインストールされている。 - OpenShift Container Platform クラスターが実行中である。開発者は CodeReady Containers (CRC) を使用して、OpenShift Container Platform のローカルクラスターを迅速にデプロイできます。
- サービスカタログが有効にされている。
2.7.1. プロジェクトの作成 リンクのコピーリンクがクリップボードにコピーされました!
プロジェクトを作成し、別個の単一の単位で編成されるソースコード、テスト、ライブラリーを維持します。
手順
OpenShift Container Platform クラスターにログインします。
odo login -u developer -p developer
$ odo login -u developer -p developerCopy to Clipboard Copied! Toggle word wrap Toggle overflow プロジェクトを作成します。
odo project create myproject
$ odo project create myproject ✓ Project 'myproject' is ready for use ✓ New project created and now using project : myprojectCopy to Clipboard Copied! Toggle word wrap Toggle overflow
2.7.2. フロントエンドコンポーネントのデプロイ リンクのコピーリンクがクリップボードにコピーされました!
フロントエンドコンポーネントを作成およびデプロイするには、Node.js アプリケーションをダウンロードし、ソースコードを odoでクラスターにプッシュします。
手順
フロントエンドアプリケーションのサンプルをダウンロードします。
git clone https://github.com/openshift/nodejs-ex
$ git clone https://github.com/openshift/nodejs-exCopy to Clipboard Copied! Toggle word wrap Toggle overflow 現在のディレクトリーをフロントエンドディレクトリーに切り替えます。
cd <directory-name>
$ cd <directory-name>Copy to Clipboard Copied! Toggle word wrap Toggle overflow フロントエンドが Node.js アプリケーションであることを確認するために、ディレクトリーの内容を一覧表示します。
ls
$ ls assets bin index.html kwww-frontend.iml package.json package-lock.json playfield.png README.md server.jsCopy to Clipboard Copied! Toggle word wrap Toggle overflow 注記フロントエンドコンポーネントはインタプリター型言語で記述され (Node.js)、ビルドされる必要はありません。
frontendという名前の Node.js コンポーネントタイプのコンポーネント設定を作成します。odo create nodejs frontend
$ odo create nodejs frontend ✓ Validating component [5ms] Please use `odo push` command to create the component with source deployedCopy to Clipboard Copied! Toggle word wrap Toggle overflow フロントエンドインターフェースにアクセスするための URL を作成します。
odo url create myurl
$ odo url create myurl ✓ URL myurl created for component: nodejs-nodejs-ex-pmdpCopy to Clipboard Copied! Toggle word wrap Toggle overflow コンポーネントを OpenShift Container Platform クラスターにプッシュします。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
2.7.3. 対話モードでデータベースをデプロイする リンクのコピーリンクがクリップボードにコピーされました!
odo は、デプロイをシンプルにするコマンドラインの対話モードを提供します。
手順
対話モードを実行し、プロンプトに対応します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
パスワードまたはユーザー名がフロントエンドアプリケーションに環境変数として渡されます。
2.7.4. データベースの手動デプロイ リンクのコピーリンクがクリップボードにコピーされました!
利用可能なサービスを一覧表示します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow サービスの
mongodb-persistentタイプを選択し、必要なパラメーターを確認します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow 必須のパラメーターをフラグとして渡し、データベースのデプロイを待機します。
odo service create mongodb-persistent --plan default --wait -p DATABASE_SERVICE_NAME=mongodb -p MEMORY_LIMIT=512Mi -p MONGODB_DATABASE=sampledb -p VOLUME_CAPACITY=1Gi
$ odo service create mongodb-persistent --plan default --wait -p DATABASE_SERVICE_NAME=mongodb -p MEMORY_LIMIT=512Mi -p MONGODB_DATABASE=sampledb -p VOLUME_CAPACITY=1GiCopy to Clipboard Copied! Toggle word wrap Toggle overflow
2.7.5. データベースのフロントエンドアプリケーションへの接続 リンクのコピーリンクがクリップボードにコピーされました!
データベースをフロントエンドサービスにリンクします。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Pod のアプリケーションおよびデータベースの環境変数を確認します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow ブラウザーで URL を開き、右下に表示されるデータベース設定を確認します。
odo url list
$ odo url listCopy to Clipboard Copied! Toggle word wrap Toggle overflow Copy to Clipboard Copied! Toggle word wrap Toggle overflow
2.7.6. アプリケーションの削除 リンクのコピーリンクがクリップボードにコピーされました!
アプリケーションを削除すると、アプリケーションに関連付けられたすべてのコンポーネントが削除されます。
手順
現在のプロジェクトのアプリケーションを一覧表示します。
odo app list
$ odo app list The project '<project_name>' has the following applications: NAME appCopy to Clipboard Copied! Toggle word wrap Toggle overflow アプリケーションに関連付けられたコンポーネントを一覧表示します。これらのコンポーネントはアプリケーションと共に削除されます。
odo component list
$ odo component list APP NAME TYPE SOURCE STATE app nodejs-nodejs-ex-elyf nodejs file://./ PushedCopy to Clipboard Copied! Toggle word wrap Toggle overflow アプリケーションを削除します。
odo app delete <application_name>
$ odo app delete <application_name> ? Are you sure you want to delete the application: <application_name> from project: <project_name>Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
Yで削除を確定します。-fフラグを使用すると、確認プロンプトを非表示にできます。
2.8. サンプルアプリケーションの使用 リンクのコピーリンクがクリップボードにコピーされました!
odo は、OpenShift カタログのコンポーネントタイプ内の言語またはランタイムとの部分的な互換性を提供します。以下は例になります。
odo 1.0 については、Java および Node.js は正式にサポートされているコンポーネントタイプです。odo catalog list components を実行して、正式にサポートされているコンポーネントタイプを確認します。
Web 経由でコンポーネントにアクセスするには、 odo url create を使用して URL を作成します。
2.8.1. Git リポジトリーの例 リンクのコピーリンクがクリップボードにコピーされました!
2.8.1.1. httpd リンクのコピーリンクがクリップボードにコピーされました!
この例は、CentOS 7 で httpd を使用して静的コンテンツをビルドし、提供するのに役立ちます。OpenShift Container Platform の考慮点を含む、このビルダーイメージの使用方法についての詳細は、「Apache HTTP Server container image repository」を参照してください。
odo create httpd --git https://github.com/openshift/httpd-ex.git
$ odo create httpd --git https://github.com/openshift/httpd-ex.git
2.8.1.2. java リンクのコピーリンクがクリップボードにコピーされました!
この例は、CentOS 7 で Fat JAR Java アプリケーションをビルドし、実行するのに役立ちます。OpenShift Container Platform の考慮点を含む、このビルダーイメージを使用する方法についての詳細は、「Java S2I Builder image」を参照してください。
odo create java --git https://github.com/spring-projects/spring-petclinic.git
$ odo create java --git https://github.com/spring-projects/spring-petclinic.git
2.8.1.3. nodejs リンクのコピーリンクがクリップボードにコピーされました!
CentOS 7 で Node.js アプリケーションをビルドし、実行します。OpenShift Container Platform の考慮点を含む、このビルダーイメージを使用する方法についての詳細は、「Node.js 8 container image」を参照してください。
odo create nodejs --git https://github.com/openshift/nodejs-ex.git
$ odo create nodejs --git https://github.com/openshift/nodejs-ex.git
2.8.1.4. perl リンクのコピーリンクがクリップボードにコピーされました!
この例は、CentOS 7 で Perl アプリケーションのビルドし、実行するのに役立ちます。OpenShift Container Platform の考慮点を含む、このビルダーイメージを使用する方法についての詳細は、「Perl 5.26 container image」を参照してください。
odo create perl --git https://github.com/openshift/dancer-ex.git
$ odo create perl --git https://github.com/openshift/dancer-ex.git
2.8.1.5. php リンクのコピーリンクがクリップボードにコピーされました!
この例は、CentOS 7 で PHP アプリケーションのビルドし、実行するのに役立ちます。OpenShift Container Platform の考慮点を含む、このビルダーイメージを使用する方法についての詳細は、「PHP 7.1 Docker image」を参照してください。
odo create php --git https://github.com/openshift/cakephp-ex.git
$ odo create php --git https://github.com/openshift/cakephp-ex.git
2.8.1.6. python リンクのコピーリンクがクリップボードにコピーされました!
この例は、CentOS 7 で Python アプリケーションをビルドし、実行するのに役立ちます。OpenShift Container Platform の考慮点を含む、このビルダーイメージを使用する方法についての詳細は、「Python 3.6 container image」を参照してください。
odo create python --git https://github.com/openshift/django-ex.git
$ odo create python --git https://github.com/openshift/django-ex.git
2.8.1.7. ruby リンクのコピーリンクがクリップボードにコピーされました!
この例は、CentOS 7 で Ruby アプリケーションをビルドし、実行するのに役立ちます。OpenShift Container Platform の考慮点を含む、このビルダーイメージを使用する方法についての詳細は、「Ruby 2.5 container image」を参照してください。
odo create ruby --git https://github.com/openshift/ruby-ex.git
$ odo create ruby --git https://github.com/openshift/ruby-ex.git
2.8.1.8. wildfly リンクのコピーリンクがクリップボードにコピーされました!
この例は、CentOS 7 で WildFly アプリケーションをビルドし、実行するのに役立ちます。OpenShift Container Platform の考慮点を含む、このビルダーイメージを使用する方法についての詳細は、「Wildfly - CentOS Docker images for OpenShift」を参照してください。
odo create wildfly --git https://github.com/openshift/openshift-jee-sample.git
$ odo create wildfly --git https://github.com/openshift/openshift-jee-sample.git
2.8.2. バイナリーのサンプル リンクのコピーリンクがクリップボードにコピーされました!
2.8.2.1. java リンクのコピーリンクがクリップボードにコピーされました!
Java を使用すると、以下のようにバイナリーアーティファクトをデプロイすることができます。
git clone https://github.com/spring-projects/spring-petclinic.git cd spring-petclinic mvn package odo create java test3 --binary target/*.jar odo push
$ git clone https://github.com/spring-projects/spring-petclinic.git
$ cd spring-petclinic
$ mvn package
$ odo create java test3 --binary target/*.jar
$ odo push
2.8.2.2. wildfly リンクのコピーリンクがクリップボードにコピーされました!
WildFly を使用すると、以下のようにバイナリーアプリケーションをデプロイすることができます。
2.9. 環境変数の管理 リンクのコピーリンクがクリップボードにコピーされました!
odo はコンポーネント固有の設定および環境変数を config ファイルに保存します。odo config コマンドを使用すると、config ファイルを変更せずに、コンポーネントの環境変数の設定、設定解除、および一覧表示を実行できます。
2.9.1. 環境変数の設定および設定解除 リンクのコピーリンクがクリップボードにコピーされました!
手順
コンポーネントで環境変数を設定するには、以下を実行します。
odo config set --env <variable>=<value>
$ odo config set --env <variable>=<value>Copy to Clipboard Copied! Toggle word wrap Toggle overflow コンポーネントの環境変数の設定を解除するには、以下を実行します。
odo config unset --env <variable>
$ odo config unset --env <variable>Copy to Clipboard Copied! Toggle word wrap Toggle overflow コンポーネント内のすべての環境変数を一覧表示するには、以下を実行します。
odo config view
$ odo config viewCopy to Clipboard Copied! Toggle word wrap Toggle overflow
2.10. odo CLI の設定 リンクのコピーリンクがクリップボードにコピーされました!
2.10.1. コマンド補完の使用 リンクのコピーリンクがクリップボードにコピーされました!
現時点で、コマンドの補完は bash、zsh、および fish シェルでのみサポートされています。
odo は、ユーザー入力に基づくコマンドパラメーターのスマート補完を提供します。これを機能させるには、odo は実行中のシェルと統合する必要があります。
手順
コマンド補完を自動的にインストールするには、以下を実行します。
以下を実行します。
odo --complete
$ odo --completeCopy to Clipboard Copied! Toggle word wrap Toggle overflow -
補完フックのインストールを求めるプロンプトが出されたら、
yを押します。
-
補完フックを手動でインストールするには、
complete -o nospace -C <full path to your odo binary> odoをシェル設定ファイルに追加します。シェル設定ファイルを変更したら、シェルを再起動します。 補完を無効にするには、以下を実行します。
以下を実行します。
odo --uncomplete
$ odo --uncompleteCopy to Clipboard Copied! Toggle word wrap Toggle overflow -
補完フックをアンインストールするようプロンプトされたら
yを押します。
odo 実行可能ファイルの名前を変更した場合や、これを別のディレクトリーに移動する場合、コマンド補完を再度有効にします。
2.10.2. ファイルまたはパターンを無視する リンクのコピーリンクがクリップボードにコピーされました!
アプリケーションのルートディレクトリーにある .odoignore ファイルを変更して、無視するファイルまたはパターンの一覧を設定できます。これは、odo push および odo watch の両方に適用されます。
.odoignore ファイルが存在 しない 場合、特定のファイルおよびフォルダーを無視するように .gitignore ファイルが代わりに使用されます。
.git ファイル、.js 拡張子のあるファイルおよびフォルダー tests を無視するには、以下を .odoignore または .gitignore ファイルのいずれかに追加します。
.git *.js tests/
.git
*.js
tests/
.odoignore ファイルはすべての glob 表現を許可します。
2.11. odo CLI リファレンス リンクのコピーリンクがクリップボードにコピーされました!
2.11.1. 基本的な odo CLI コマンド リンクのコピーリンクがクリップボードにコピーされました!
2.11.1.1. app リンクのコピーリンクがクリップボードにコピーされました!
OpenShift Container Platform プロジェクトに関連するアプリケーション操作を実行します。
app の使用例
2.11.1.2. catalog リンクのコピーリンクがクリップボードにコピーされました!
カタログ関連の操作を実行します。
catalog の使用例
2.11.1.3. component リンクのコピーリンクがクリップボードにコピーされました!
アプリケーションのコンポーネントを管理します。
component の使用例
Create a new component Create a local configuration and create all objects on the cluster
# Create a new component
odo component create
# Create a local configuration and create all objects on the cluster
odo component create --now
2.11.1.4. config リンクのコピーリンクがクリップボードにコピーされました!
config ファイル内で odo 固有の設定を変更します。
config の使用例
| Application | Application は、コンポーネントを含める必要のあるアプリケーションの名前になります。 |
| CPU | コンポーネントが使用できる CPU の最小数と最大数 |
| Ignore | プッシュと監視に関連して .odoignore ファイルを考慮します。 |
| Application | コンポーネントを含める必要のあるアプリケーションの名前 |
| CPU | コンポーネントが使用できる CPU の最小数と最大数 |
| Ignore |
プッシュおよび監視に関連して |
| MaxCPU | コンポーネントで使用可能な最大 CPU |
| MaxMemory | コンポーネントで使用可能な最大メモリー |
| Memory | コンポーネントで使用できる最小および最大メモリー |
| MinCPU | コンポーネントで使用できる最小 CPU |
| MinMemory | コンポーネントに指定される最小メモリー |
| Name | コンポーネントの名前 |
| Ports | コンポーネントで開くポート |
| Project | コンポーネントを含めるプロジェクトの名前 |
| Ref | git ソースからコンポーネントを作成するために使用する Git ref |
| SourceLocation | パスはバイナリーファイルまたは git ソースの場所を示します。 |
| SourceType | コンポーネントソースのタイプ: git/binary/local |
| Storage | コンポーネントのストレージ |
| Type | コンポーネントのタイプ |
| Url | コンポーネントにアクセスするために使用する URL |
2.11.1.5. create リンクのコピーリンクがクリップボードにコピーされました!
OpenShift Container Platform にデプロイするコンポーネントを記述する設定を作成します。コンポーネント名が指定されていない場合、これは自動的に生成されます。
デフォルトで、ビルダーイメージは現在の namespace から使用されます。namespace を明示的に指定するには、odo create namespace/name:version を使用します。バージョンが指定されていない場合、デフォルトは latestに設定されます。
odo catalog list を使用してデプロイできるコンポーネントタイプの詳細一覧を表示します。
create の使用例
2.11.1.6. delete リンクのコピーリンクがクリップボードにコピーされました!
既存のコンポーネントを削除します。
delete の使用例
Delete component named 'frontend'.
# Delete component named 'frontend'.
odo delete frontend
odo delete frontend --all
2.11.1.7. describe リンクのコピーリンクがクリップボードにコピーされました!
指定のコンポーネントについて説明します。
describe の使用例
Describe nodejs component
# Describe nodejs component
odo describe nodejs
2.11.1.8. link リンクのコピーリンクがクリップボードにコピーされました!
サービスまたはコンポーネントにコンポーネントをリンクします。
link の使用例
リンクにより、適切なシークレットがソースコンポーネントの環境に追加されます。ソースコンポーネントは、シークレットのエントリーを環境変数として使用できます。ソースコンポーネントが指定されない場合、現在のアクティブなコンポーネントが使用されます。
2.11.1.9. list リンクのコピーリンクがクリップボードにコピーされました!
現在のアプリケーションのすべてのコンポーネントを一覧表示します。
list の使用例
List all components in the application
# List all components in the application
odo list
2.11.1.10. log リンクのコピーリンクがクリップボードにコピーされました!
指定のコンポーネントのログを取得します。
log の使用例
Get the logs for the nodejs component
# Get the logs for the nodejs component
odo log nodejs
2.11.1.11. login リンクのコピーリンクがクリップボードにコピーされました!
クラスターにログインします。
login の使用例
2.11.1.12. logout リンクのコピーリンクがクリップボードにコピーされました!
現在の OpenShift Container Platform セッションからログアウトします。
logout の使用例
Log out
# Log out
odo logout
2.11.1.13. preference リンクのコピーリンクがクリップボードにコピーされました!
グローバル設定ファイル内の odo 固有の設定内容を変更します。
preference の使用例
デフォルトで、グローバル設定ファイルへのパスは ~/.odo/preferece.yaml であり、これは環境変数 GLOBALODOCONFIG に保存されます。環境変数の値を新規の設定パスに設定し、カスタムパスをセットアップできます (例: GLOBALODOCONFIG="new_path/preference.yaml")。
| NamePrefix | デフォルトのプレフィックスは、現在のディレクトリー名です。この値を使用して、デフォルトの名前のプレフィックスを設定します。 |
| Timeout | OpenShift Container Platform サーバー接続チェックのタイムアウト (秒単位) です。 |
| UpdateNotification | 更新通知が表示されるかどうかを制御します。 |
2.11.1.14. project リンクのコピーリンクがクリップボードにコピーされました!
プロジェクト操作を実行します。
project の使用例
2.11.1.15. push リンクのコピーリンクがクリップボードにコピーされました!
ソースコードをコンポーネントにプッシュします。
push の使用例
2.11.1.16. service リンクのコピーリンクがクリップボードにコピーされました!
サービスカタログ操作を実行します。
service の使用例
2.11.1.17. storage リンクのコピーリンクがクリップボードにコピーされました!
ストレージ操作を実行します。
storage の使用例
2.11.1.18. unlink リンクのコピーリンクがクリップボードにコピーされました!
コンポーネントまたはサービスのリンクを解除します。
このコマンドが正常に実行されるには、サービスまたはコンポーネントが呼び出し前に odo link を使用してリンクされている必要があります。
unlink の使用例
2.11.1.19. update リンクのコピーリンクがクリップボードにコピーされました!
コンポーネントのソースコードパスを更新します。
update の使用例
2.11.1.20. url リンクのコピーリンクがクリップボードにコピーされました!
コンポーネントを外部に公開します。
url の使用例
このコマンドを使用して生成される URL は、クラスター外からデプロイされたコンポーネントにアクセスするために使用できます。
2.11.1.21. utils リンクのコピーリンクがクリップボードにコピーされました!
ターミナルコマンドのユーティリティーおよび odo 設定の変更
utils の使用例
Bash terminal PS1 support
# Bash terminal PS1 support
source <(odo utils terminal bash)
# Zsh terminal PS1 support
source <(odo utils terminal zsh)
2.11.1.22. version リンクのコピーリンクがクリップボードにコピーされました!
クライアントバージョンの情報を出力します。
version の使用例
Print the client version of odo
# Print the client version of odo
odo version
2.11.1.23. watch リンクのコピーリンクがクリップボードにコピーされました!
odo は変更の有無の監視を開始し、変更時にコンポーネントを自動的に更新します。
watch の使用例
Watch for changes in directory for current component
# Watch for changes in directory for current component
odo watch
# Watch for changes in directory for component called frontend
odo watch frontend
2.12. odo 1.0 リリースノート リンクのコピーリンクがクリップボードにコピーされました!
2.12.1. odo 1.0 の主な機能 リンクのコピーリンクがクリップボードにコピーされました!
odo 1.0 は OpenShift Container Platform でアプリケーションを開発する簡単な方法を提供します。odo は完全にクライアントベースであり、 OpenShift Container Platform クラスター内のサーバーは必要ありません。
odo 1.0 には以下の利点があります。
- プロジェクト、アプリケーションおよびコンポーネントなどの開発者にとって馴染みのある概念を中心とした単純な構文および設計。
- OpenShift カタログのコンポーネントタイプ内の言語またはランタイムとの互換性。
- カスタムイメージビルダーを使用してカスタムコンポーネントタイプを追加する機能。
- Java および Node.js コンポーネントタイプの正式サポート。
- サービスカタログ: OpenShift Container Platform クラスターにデプロイされたアプリケーションをテンプレートサービスブローカーに接続できるようにします。
-
odo service create: ユーザーのアプリケーション作成プロセスをガイドする対話モード。 -
odo watch: ローカルコードへの変更を自動的に検出し、その変更をコンポーネントにリアルタイムで適用する機能。
2.12.2. サポート リンクのコピーリンクがクリップボードにコピーされました!
ドキュメント
ドキュメントのエラーが見つかったか、またはドキュメントの改善に関する提案をお寄せいただける場合は、Bugzilla に報告してください。OpenShift Container Platform の製品タイプおよび Documentation コンポーネントタイプを選択します。
製品
エラーを見つけた場合や、odo の機能に関するバグが見つかった場合やこれに関する改善案をお寄せいただける場合は、Bugzilla に報告してください。OpenShift Container Platform の製品タイプおよび odo コンポーネントタイプを選択します。
問題の詳細情報をできる限り多く入力します。
2.12.3. odo 1.0 のテクノロジープレビュー機能 リンクのコピーリンクがクリップボードにコピーされました!
テクノロジープレビュー機能は完全にサポートされておらず、機能的に完全でない可能性があるため、実稼働環境でのデプロイには適していません。テクノロジープレビューが完全にサポートされるまで、これについてのフィードバックおよび機能についてのご提案がありましたらお寄せください。
odo debugは、ユーザーが OpenShift Container Platform の Pod で実行されているコンポーネントにローカルデバッガーを割り当てることを可能にする機能です。odo debug port-forwardを使用するとポート転送を開始できます。odo config set DebugPort 9292を使用すると、デバッグするエージェントが実行されるリモートポートを指定できます。odo debug port-forward --local-port 9292を使用すると、ポート転送のローカルポートを指定できます。
2.12.4. 既知の問題 リンクのコピーリンクがクリップボードにコピーされました!
- Bug 1760573: アクティブなポインターは現在のアクティブなプロジェクトを参照しません。
-
Bug 1760574: 削除された namespace が
odo project getコマンドで一覧表示されます。 -
Bug 1760575:
odo app deleteはアプリケーションはアプリケーションコンポーネントを削除しますが、サービスを削除しません。 -
Bug 1760577:
odo pushは、コンポーネント名が変更されると OpenShift オブジェクトを削除しません。 -
Bug 1760580:
catalog list componentsは指定された namespace のコンポーネントを一覧表示しません。 -
Bug 1760583:
odo config unsetは環境変数の設定を解除しませんが、設定を解除したことを示唆します。 -
Bug 1760585:
odo delete --allは$HOMEから実行されると`$HOME/.odo` フォルダーを削除します。 -
Bug 1760586
odo deleteは、プロジェクトが削除され、コンポ ーネント名が設定されると無限ループを開始します。 - Bug 1760587: odo は存在しないコマンドが使用されると無効なフラグを報告します。
-
Bug 1760588:
odo service createは Cygwin で実行されるとクラッシュします。 -
Bug 1760589: 自動補完は
odo pushの--contextでは機能しません。 -
Bug 1760590: Windows 用の Git BASH では、
odo login -u developerは要求された場合も入力されたパスワードを非表示にしません。 - Bug 1761440: 1 つのオブジェクトに同じタイプの 2 つのサービスを作成することができません。
-
Bug 1761442:
component createは、バイナリーが一時的なフォルダーにある場合、--contextおよび--binaryフラグで失敗します。 - Bug 1761443: 削除されたファイルが Java コンポーネントから除去されません。
Legal Notice
リンクのコピーリンクがクリップボードにコピーされました!
Copyright © 2025 Red Hat
OpenShift documentation is licensed under the Apache License 2.0 (https://www.apache.org/licenses/LICENSE-2.0).
Modified versions must remove all Red Hat trademarks.
Portions adapted from https://github.com/kubernetes-incubator/service-catalog/ with modifications by Red Hat.
Red Hat, Red Hat Enterprise Linux, the Red Hat logo, the Shadowman logo, JBoss, OpenShift, Fedora, the Infinity logo, and RHCE are trademarks of Red Hat, Inc., registered in the United States and other countries.
Linux® is the registered trademark of Linus Torvalds in the United States and other countries.
Java® is a registered trademark of Oracle and/or its affiliates.
XFS® is a trademark of Silicon Graphics International Corp. or its subsidiaries in the United States and/or other countries.
MySQL® is a registered trademark of MySQL AB in the United States, the European Union and other countries.
Node.js® is an official trademark of Joyent. Red Hat Software Collections is not formally related to or endorsed by the official Joyent Node.js open source or commercial project.
The OpenStack® Word Mark and OpenStack logo are either registered trademarks/service marks or trademarks/service marks of the OpenStack Foundation, in the United States and other countries and are used with the OpenStack Foundation’s permission. We are not affiliated with, endorsed or sponsored by the OpenStack Foundation, or the OpenStack community.
All other trademarks are the property of their respective owners.