1.7. デバイスフリートの管理


テクノロジープレビュー: Red Hat Edge Manager は、デバイスフリート を通じて多数のデバイスとワークロードの管理を簡素化します。フリートは、共通のデバイステンプレートと管理ポリシーによって管理されるデバイスのグループを定義するリソースです。

デバイステンプレートに変更を加えた場合に、Red Hat Edge Manager エージェントが新しいターゲット仕様を検出すると、フリート内のすべてのデバイスが変更を受け取ります。

また、フリート全体のステータスサマリーを確認できるため、フリートでのデバイスのモニタリングも簡素化されます。

フリートレベル管理には、以下の利点があります。

  • 各デバイスに対して 1 回ではなく、各フリートに対して 1 回だけ操作を実行するため、オペレーションがスケーリングされます。
  • 設定ミスや設定ドリフトのリスクを最小限に抑えます。
  • デバイスをフリートに追加するか、フリート内のデバイスを置き換える際に、ターゲット設定を自動的に適用します。

フリート仕様は以下の機能で構成されています。

ラベルセレクター
どのデバイスがフリートの一部であるかを決定します。
デバイステンプレート
フリート内のデバイスに Red Hat Edge Manager が適用する設定を定義します。
ポリシー
デバイステンプレートへの変更がどのようにデバイスにロールアウトされるかなど、デバイスの管理方法を管理します。

個別に管理されるデバイスとフリートで管理されるデバイスの両方を同時に使用できます。デバイスがフリートに選択されると、Red Hat Edge Manager はデバイステンプレートに基づいて、新しいデバイスのデバイス仕様を作成します。フリートのデバイステンプレートを更新するか、新しいデバイスがフリートに参加すると、Red Hat Edge Manager はフリート内で新しい仕様を適用します。

デバイスがフリートに選択されていない場合、そのデバイスはユーザー管理または管理対象外とみなされます。ユーザー管理のデバイスの場合、デバイスの仕様を手動で、または外部の自動化を通じて更新する必要があります。

重要: デバイスは、同時に複数のフリートに所属することはできません。

詳細は、ラベルとラベルセレクター を参照してください。

1.7.1. フリートへのデバイスの選択

デフォルトでは、デバイスはフリートに割り当てられません。代わりに、各フリートは、デバイスがフリートに追加されるために必要なラベルを定義するセレクターを使用します。

フリートでラベルを使用する方法を理解するには、次の例を参照してください。

次のリストは、Point-of-Sales (POS) 端末装置とそのラベルを示しています。

デバイス

ラベル

A

type: pos-terminalregion: eaststage: production

B

type: pos-terminalregion: eaststage: development

C

type: pos-terminalregion: weststage: production

D

type: pos-terminalregion: weststage: development

すべての POS 端末が同じ設定を使用し、同じ運用チームによって管理される場合は、type=pos-terminal ラベルセレクターを使用して pos-terminals と呼ばれる単一のフリートを定義できます。すると、そのフリートにはデバイス A、B、C、D が含まれます。

ただし、開発環境または実稼働環境用に、異なる組織ごとに別々のフリートを作成したい場合もあるかもしれません。type=pos-terminal, stage=development ラベルセレクターを使用して、開発用のフリートを定義できます。これにより、デバイス C と D が選択されます。その後、type=pos-terminal, stage=production ラベルセレクターを使用して、実稼働環境用の別のフリートを定義できます。正しいラベルセレクターを使用することで、両方のフリートを個別に管理できます。

重要: 2 つのフリートが同じデバイスを選択しない方法で、セレクターを定義する必要があります。たとえば、あるフリートが region=east を選択し、別のフリートが stage=production を選択した場合、両方のフリートがデバイス A を選択しようとします。2 つのフリートが同じデバイスを選択しようとすると、Red Hat Edge Manager は、現在割り当てられているフリート (存在する場合) にデバイスを保持し、影響を受けるフリートの OverlappingSelectors 条件を true に設定します。

1.7.2. デバイステンプレート

フリートのデバイステンプレートには、テンプレートの更新時にフリート内のすべてのデバイスに適用されるデバイス仕様が含まれています。

たとえば、フリートのデバイステンプレートで、フリート内のすべてのデバイスが quay.io/flightctl/rhel:9.5 オペレーティングシステムイメージを実行する必要があることを指定できます。

次に、Red Hat Edge Manager サービスはターゲット仕様をフリート内のすべてのデバイスにロールアウトし、Red Hat Edge Manager エージェントは各デバイスを適宜更新します。

デバイステンプレートの他の仕様項目を変更でき、Red Hat Edge Manager は同じ方法で変更を適用します。

しかし、フリート内のすべてのデバイスがまったく同じ仕様である必要がない場合もあります。Red Hat Edge Manager では、テンプレートにデバイス名またはラベルの値に基づいて設定されるプレースホルダーを含めることができます。

プレースホルダーの構文は、Go テンプレート と一致します。ただし、単純なテキストとアクションのみを使用できます。

プレースホルダーでの条件付きまたはループの使用はサポートされません。

{{ .metadata.labels.key }} または {{ .metadata.name }} など、デバイスのメタデータから任意のものを参照できます。

プレースホルダーで以下の関数を使用することもできます。

  • upper 関数により、値が大文字に変更されます。たとえば、関数は {{ upper .metadata.name }} です。
  • lower 関数により、値が小文字に変更されます。たとえば、関数は {{ lower .metadata.labels.key }} です。
  • replace 関数は、部分文字列のすべての出現を別の文字列に置き換えます。たとえば、関数は {{ replace "old" "new" .metadata.labels.key }} です。
  • getOrDefault 関数は、存在しないラベルにアクセスした場合にデフォルト値を返します。たとえば、関数は {{ getOrDefault .metadata.labels "key" "default" }} です。

パイプラインで関数を組み合わせることができます。たとえば、組み合わせた関数は {{ getOrDefault .metadata.labels "key" "default" | upper | replace " " "-" }} です。

注記: 適切な Go テンプレート構文を使用していることを確認してください。たとえば、ハイフンにより {{ .metadata.labels.target-revision }} は有効ではありません。代わりに、フィールドを {{ index .metadata.labels "target-revision" }} として参照する必要があります。

次の方法で、デバイステンプレートでプレースホルダーを使用できます。

  • デプロイメントステージでデバイスにラベルを付けることができます。たとえば、ステージラベルは stage: testingstage: production です。次に、使用するオペレーティングシステムイメージを参照する際に、stage キーのラベルをプレースホルダーとして使用できます。たとえば、quay.io/myorg/myimage:latest-{{ .metadata.labels.stage }} のように指定したり、Git リポジトリー内の設定フォルダーを参照したりできます。
  • デプロイメントサイトによってデバイスにラベルを付けることができます。たとえば、デプロイメントサイトは site: factory-berlin および site: factory-madrid などです。
  • 次に、Kubernetes でネットワークアクセス認証情報を含むシークレットを参照する際に、site キーのラベルをパラメーターとして使用できます。

デバイステンプレートの次のフィールドは、プレースホルダーをサポートします。

フィールド

サポートされているプレースホルダー

オペレーティングシステムイメージ

リポジトリー名、イメージ名、イメージタグ

Git 設定プロバイダー

ターゲットリビジョン、パス

HTTP 設定プロバイダー

URL 接尾辞、パス

インライン設定プロバイダー

コンテンツ、パス

1.7.3. CLI を使用したフリートへのデバイスの選択

テクノロジープレビュー: デバイスをフリートに追加するためのラベルセレクターを定義します。

以下のタスクを完了します。

  1. 以下のコマンドを実行して、ラベルセレクターがフリートに追加するデバイスを返すことを確認します。

    Copy to Clipboard Toggle word wrap
    flightctl get devices -l type=pos-terminal -l stage=development
  2. コマンドを実行し、予想されるデバイスのリストが返された場合は、次の YAML ファイルを使用してデバイスを選択するフリートを定義できます。

    Copy to Clipboard Toggle word wrap
    apiVersion: flightctl.io/v1alpha1
    kind: Fleet
    metadata:
      name: my_fleet
    spec:
      selector:
        matchLabels:
          type: pos-terminal
          stage: development
    [...]
  3. 次のコマンドを実行して変更を適用します。

    Copy to Clipboard Toggle word wrap
    flightctl apply -f my_fleet.yaml
  4. 次のコマンドを実行して、他のフリートのセレクターと重複を確認します。

    Copy to Clipboard Toggle word wrap
    flightctl get fleets/my_fleet -o json | jq -r '.status.conditions[] | select(.type=="OverlappingSelectors").status'

    以下の出力例を参照してください。

    Copy to Clipboard Toggle word wrap
    False
トップに戻る
Red Hat logoGithubredditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

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

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

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

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

会社概要

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

Theme

© 2025 Red Hat, Inc.