第2章 Developer CLI (odo)
2.1. OpenShift Do について
odo
は、OpenShift Container Platform および Kubernetes でアプリケーションを作成するための CLI ツールです。odo
を使用すると、開発者はクラスター自体を管理する必要なしにアプリケーションの作成に集中することができます。デプロイメント設定、ビルド設定、サービスルートおよび他の OpenShift Container Platform または Kubernetes 要素の作成は、すべて 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 などの言語およびフレームワークとの部分的な互換性。
- ローカルコードの変更を検出し、これをクラスターに自動的にデプロイ。これにより、変更を検証するためのインスタントフィードバックがリアルタイムに提供されます。
- クラスターのすべての利用可能なコンポーネントおよびサービスを一覧表示。
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
でクラスターにログインします。$ odo login -u developer -p developer
利用可能な
odo
がサポートするコンポーネントとサポートしないコンポーネント、および対応するコンテナーイメージを一覧表示します。$ odo catalog list components Odo Supported OpenShift Components: NAME PROJECT TAGS java openshift 8,latest nodejs openshift 10,8,8-RHOAR,latest Odo Unsupported OpenShift Components: NAME PROJECT TAGS dotnet openshift 1.0,1.1,2.1,2.2,latest fuse7-eap-openshift openshift 1.3
TAGS
コラムは利用可能なイメージバージョンを表します (例:10
はrhoar-nodejs/nodejs-10
コンテナーイメージを表します)。