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 をすべて一覧表示できます。

手順

  1. odo でクラスターにログインします。

    $ odo login -u developer -p developer
  2. 利用可能な 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 は現在の設定を表示します。