3.5.8. odo service


odoOperator を利用して サービス をデプロイでき ます。

インストールに使用できるオペレーターとサービスのリストは、odo catalog コマンドを使用して見つけることができます。

サービスは コンポーネント のコンテキストで作成されるため、サービスをデプロイする前に odo create コマンドを実行してください。

サービスは、以下の 2 つのステップに従ってデプロイされます。

  1. サービスを定義し、その定義を devfile に保存します。
  2. odo push コマンドを使用して、定義されたサービスをクラスターにデプロイします。

3.5.8.1. 新しいサービスの作成

新規サービスを作成するには、以下のコマンドを実行します。

$ odo service create

たとえば、my-redis-service という名前の Redis サービスのインスタンスを作成するには、以下のコマンドを実行します。

出力例

$ odo catalog list services
Services available through Operators
NAME                      CRDs
redis-operator.v0.8.0     RedisCluster, Redis

$ odo service create redis-operator.v0.8.0/Redis my-redis-service
Successfully added service to the configuration; do 'odo push' to create service on the cluster

このコマンドは、サービスの定義を含む Kubernetes マニフェストを kubernetes/ ディレクトリーに作成し、このファイルは devfile.yaml ファイルから参照されます。

$ cat kubernetes/odo-service-my-redis-service.yaml

出力例

 apiVersion: redis.redis.opstreelabs.in/v1beta1
 kind: Redis
 metadata:
   name: my-redis-service
 spec:
   kubernetesConfig:
     image: quay.io/opstree/redis:v6.2.5
     imagePullPolicy: IfNotPresent
     resources:
       limits:
         cpu: 101m
         memory: 128Mi
       requests:
         cpu: 101m
         memory: 128Mi
     serviceType: ClusterIP
   redisExporter:
     enabled: false
     image: quay.io/opstree/redis-exporter:1.0
   storage:
     volumeClaimTemplate:
       spec:
         accessModes:
         - ReadWriteOnce
         resources:
           requests:
             storage: 1Gi

コマンドの例

$ cat devfile.yaml

出力例

[...]
components:
- kubernetes:
    uri: kubernetes/odo-service-my-redis-service.yaml
  name: my-redis-service
[...]

作成されたインスタンスの名前はオプションです。名前を指定しない場合は、サービスの小文字の名前です。たとえば、以下のコマンドは redis という名前の Redis サービスのインスタンスを作成します。

$ odo service create redis-operator.v0.8.0/Redis
3.5.8.1.1. マニフェストのインライン化

デフォルトで、新規マニフェストは kubernetes/ ディレクトリーに作成され、devfile.yaml ファイルから参照されます。--inlined フラグを使用して、devfile.yaml ファイル内でマニフェストをインラインにすることができます。

$ odo service create redis-operator.v0.8.0/Redis my-redis-service --inlined
Successfully added service to the configuration; do 'odo push' to create service on the cluster

コマンドの例

$ cat devfile.yaml

出力例

[...]
components:
- kubernetes:
    inlined: |
      apiVersion: redis.redis.opstreelabs.in/v1beta1
      kind: Redis
      metadata:
        name: my-redis-service
      spec:
        kubernetesConfig:
          image: quay.io/opstree/redis:v6.2.5
          imagePullPolicy: IfNotPresent
          resources:
            limits:
              cpu: 101m
              memory: 128Mi
            requests:
              cpu: 101m
              memory: 128Mi
          serviceType: ClusterIP
        redisExporter:
          enabled: false
          image: quay.io/opstree/redis-exporter:1.0
        storage:
          volumeClaimTemplate:
            spec:
              accessModes:
              - ReadWriteOnce
              resources:
                requests:
                  storage: 1Gi
  name: my-redis-service
[...]

3.5.8.1.2. サービスの設定

特定のカスタマイズを行わないと、サービスはデフォルト設定で作成されます。コマンドライン引数またはファイルのいずれかを使用して、独自の設定を指定できます。

3.5.8.1.2.1. コマンドライン引数の使用

--parameters (または -p) フラグを使用して、独自の設定を指定します。

以下の例では、Redis サービスを 3 つのパラメーターで設定します。

$ odo service create redis-operator.v0.8.0/Redis my-redis-service \
    -p kubernetesConfig.image=quay.io/opstree/redis:v6.2.5 \
    -p kubernetesConfig.serviceType=ClusterIP \
    -p redisExporter.image=quay.io/opstree/redis-exporter:1.0
Successfully added service to the configuration; do 'odo push' to create service on the cluster

コマンドの例

$ cat kubernetes/odo-service-my-redis-service.yaml

出力例

apiVersion: redis.redis.opstreelabs.in/v1beta1
kind: Redis
metadata:
  name: my-redis-service
spec:
  kubernetesConfig:
    image: quay.io/opstree/redis:v6.2.5
    serviceType: ClusterIP
  redisExporter:
    image: quay.io/opstree/redis-exporter:1.0

odo catalog describe service コマンドを使用して、特定のサービスの使用可能なパラメーターを取得できます。

3.5.8.1.2.2. ファイルの使用

YAML マニフェストを使用して独自の仕様を設定します。以下の例では、Redis サービスは 3 つのパラメーターで設定されます。

  1. マニフェストを作成します。

    $ cat > my-redis.yaml <<EOF
    apiVersion: redis.redis.opstreelabs.in/v1beta1
    kind: Redis
    metadata:
      name: my-redis-service
    spec:
      kubernetesConfig:
        image: quay.io/opstree/redis:v6.2.5
        serviceType: ClusterIP
      redisExporter:
        image: quay.io/opstree/redis-exporter:1.0
    EOF
  2. マニフェストからサービスを作成します。

    $ odo service create --from-file my-redis.yaml
    Successfully added service to the configuration; do 'odo push' to create service on the cluster
Red Hat logoGithubRedditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

© 2024 Red Hat, Inc.