3.2. odo について
Red Hat OpenShift Developer CLI(odo
) は、アプリケーションを OpenShift Container Platform および Kubernetes で作成するためのツールです。odo
を使用すると、プラットフォームを詳細に理解しなくても、マイクロサービスベースのアプリケーションを Kubernetes クラスターで開発、テスト、デバッグ、デプロイできます。
odo
は 作成とプッシュ のワークフローに従います。ユーザーとして 作成 すると、情報 (またはマニフェスト) が設定ファイルに保存されます。プッシュ すると、対応するリソースが Kubernetes クラスターに作成されます。この設定はすべて、シームレスなアクセスと機能のために Kubernetes API に格納されます。
odo
は、service および link コマンドを使用して、コンポーネントおよびサービスをリンクします。odo
は、クラスターの Kubernetes Operator に基づいてサービスを作成し、デプロイしてこれを実行します。サービスは、Operator Hub で利用可能な任意の Operator を使用して作成できます。サービスをリンクした後に、odo
はサービス設定をコンポーネントに挿入します。その後、アプリケーションはこの設定を使用して、Operator がサポートするサービスと通信できます。
3.2.1. odo キー機能
odo
は、Kubernetes の開発者フレンドリーなインターフェイスとなるように設計されており、以下を実行できます。
- 新規マニフェストを作成するか、または既存のマニフェストを使用して、Kubernetes クラスターでアプリケーションを迅速にデプロイします。
- Kubernetes 設定ファイルを理解および維持しなくても、コマンドを使用してマニフェストを簡単に作成および更新できます。
- Kubernetes クラスターで実行されるアプリケーションへのセキュアなアクセスを提供します。
- Kubernetes クラスターのアプリケーションの追加ストレージを追加および削除します。
- Operator がサポートするサービスを作成し、アプリケーションをそれらのサービスにリンクします。
-
odo
コンポーネントとしてデプロイされる複数のマイクロサービス間のリンクを作成します。 -
IDE で
odo
を使用してデプロイしたアプリケーションをリモートでデバッグします。 -
odo
を使用して Kubernetes にデプロイされたアプリケーションを簡単にテスト
3.2.2. odo のコアとなる概念
odo
は、Kubernetes の概念を開発者に馴染みのある用語に抽象化します。
- アプリケーション
特定のタスクを実行するために使用される、クラウドネイティブなアプローチ で開発された通常のアプリケーション。
アプリケーション の例には、オンラインビデオストリーミング、オンラインショッピング、ホテルの予約システムなどがあります。
- コンポーネント
個別に実行でき、デプロイできる Kubernetes リソースのセット。クラウドネイティブアプリケーションは、小規模で独立した、緩く結合された コンポーネント の集まりです。
コンポーネント の例には、API バックエンド、Web インターフェイス、支払いバックエンドなどがあります。
- プロジェクト
- ソースコード、テスト、ライブラリーを含む単一のユニット。
- コンテキスト
-
単一コンポーネントのソースコード、テスト、ライブラリー、および
odo
設定ファイルが含まれるディレクトリー。 - URL
- クラスター外からアクセスするためにコンポーネントを公開するメカニズム。
- ストレージ
- クラスター内の永続ストレージ。これは、再起動およびコンポーネントの再構築後もデータを永続化します。
- サービス
コンポーネントに追加機能を提供する外部アプリケーション。
サービス の例には、PostgreSQL、MySQL、Redis、RabbitMQ などがあります。
odo
では、サービスは OpenShift Service Catalog からプロビジョニングされ、クラスター内で有効にされる必要があります。- devfile
コンテナー化された開発環境を定義するためのオープン標準。これにより、開発者用ツールはワークフローを簡素化し、高速化することができます。詳細は、https://devfile.io のドキュメントを参照してください。
公開されている devfile レジストリーに接続するか、またはセキュアなレジストリーをインストールできます。
3.2.3. odo でのコンポーネントの一覧表示
odo
は移植可能な devfile 形式を使用してコンポーネントおよびそれらの関連する URL、ストレージ、およびサービスを記述します。odo
はさまざまな devfile レジストリーに接続して、さまざまな言語およびフレームワークの devfile をダウンロードできます。devfile 情報を取得するために odo
で使用されるレジストリーを管理する方法についての詳細は、odo registry
コマンドのドキュメントを参照してください。
odo catalog list components
コマンドを使用して、さまざまなレジストリーで利用可能な devfile をすべて一覧表示できます。
手順
odo
でクラスターにログインします。$ odo login -u developer -p developer
利用可能な
odo
コンポーネントを一覧表示します。$ odo catalog list components
出力例
Odo Devfile Components: NAME DESCRIPTION REGISTRY dotnet50 Stack with .NET 5.0 DefaultDevfileRegistry dotnet60 Stack with .NET 6.0 DefaultDevfileRegistry dotnetcore31 Stack with .NET Core 3.1 DefaultDevfileRegistry go Stack with the latest Go version DefaultDevfileRegistry java-maven Upstream Maven and OpenJDK 11 DefaultDevfileRegistry java-openliberty Java application Maven-built stack using the Open Liberty ru... DefaultDevfileRegistry java-openliberty-gradle Java application Gradle-built stack using the Open Liberty r... DefaultDevfileRegistry java-quarkus Quarkus with Java DefaultDevfileRegistry java-springboot Spring Boot® using Java DefaultDevfileRegistry java-vertx Upstream Vert.x using Java DefaultDevfileRegistry java-websphereliberty Java application Maven-built stack using the WebSphere Liber... DefaultDevfileRegistry java-websphereliberty-gradle Java application Gradle-built stack using the WebSphere Libe... DefaultDevfileRegistry java-wildfly Upstream WildFly DefaultDevfileRegistry java-wildfly-bootable-jar Java stack with WildFly in bootable Jar mode, OpenJDK 11 and... DefaultDevfileRegistry nodejs Stack with Node.js 14 DefaultDevfileRegistry nodejs-angular Stack with Angular 12 DefaultDevfileRegistry nodejs-nextjs Stack with Next.js 11 DefaultDevfileRegistry nodejs-nuxtjs Stack with Nuxt.js 2 DefaultDevfileRegistry nodejs-react Stack with React 17 DefaultDevfileRegistry nodejs-svelte Stack with Svelte 3 DefaultDevfileRegistry nodejs-vue Stack with Vue 3 DefaultDevfileRegistry php-laravel Stack with Laravel 8 DefaultDevfileRegistry python Python Stack with Python 3.7 DefaultDevfileRegistry python-django Python3.7 with Django DefaultDevfileRegistry
3.2.4. odo での Telemetry
odo
は、オペレーティングシステムのメトリクス、RAM、CPU、コア数、odo
バージョン、エラー、成功/失敗、および odo
コマンドの完了までにかかる時間を含む、使用方法に関する情報を収集します。
odo preference
コマンドを使用して Telemetry の承諾を変更できます。
-
odo preference set ConsentTelemetry true
は Telemetry を承諾します。 -
odo preference unset ConsentTelemetry
は Telemetry を無効化します。 -
odo preference view
は現在の設定を表示します。