|Index|SUSE Edge ドキュメント|コンポーネント|Fleet
Applies to SUSE Edge 3.6

6 Fleet

Fleetは、ユーザーがローカルクラスタをより詳細に制御し、GitOpsを通じて継続的に監視できるように設計された、コンテナ管理およびデプロイメントエンジンです。Fleetはスケーリング能力だけでなく、クラスターに何がインストールされているかを正確に監視するための高度な制御と可視性をユーザーに提供します。

Fleetは、生のKubernetes YAML、Helmチャート、Kustomize、またはこれら3つの任意の組み合わせのGitからのデプロイメントを管理できます。ソースに関係なく、すべてのリソースは動的にHelmチャートに変換され、Helmがクラスター内のすべてのリソースをデプロイするためのエンジンとして使用されます。その結果、ユーザーはクラスターの高度な制御、一貫性、および監査可能性を享受できます。

Fleetの仕組みの詳細については、 Fleet Architectureを参照してください。

6.1 Helmを使用したFleetのインストール

FleetはRancherに組み込まれていますが、Helmを使用して任意のKubernetesクラスター上にスタンドアロンアプリケーションとして インストールすることもできます。

6.2 RancherでのFleetの使用

RancherはFleetを使用して、管理対象クラスター全体にアプリケーションをデプロイします。Fleetによる継続的デリバリは、大規模なGitOpsを導入し、多数のクラスターで実行されるアプリケーションを管理するように設計されています。

FleetはRancherの統合コンポーネントとして優れた機能を発揮します。Rancherで管理されるクラスターには、インストール/インポートプロセスの一環としてFleetエージェントが自動的にデプロイされ、そのクラスターは直ちにFleetによる管理が可能になります。

6.3 Rancher UIでのFleetへのアクセス

FleetはRancherにプリインストールされており、Rancher UIの*Continuous Delivery*オプションによって管理されます。

fleet dashboard

継続的デリバリセクションは、以下の項目で構成されています。

6.3.1 ダッシュボード

すべてのワークスペースにわたるすべてのGitOpsリポジトリの概要ページ。リポジトリを持つワークスペースのみが表示されます。

6.3.2 Gitリポジトリ

選択したワークスペース内のGitOpsリポジトリのリストです。ページ上部のドロップダウンリストを使用して、アクティブなワークスペースを選択します。

6.3.3 クラスタ

管理対象クラスタのリストです。デフォルトでは、すべてのRancher管理対象クラスタが`fleet-default`ワークスペースに追加されます。fleet-local`ワークスペースには、ローカル(管理)クラスタが含まれます。ここから、クラスタの `Pause または Force update を実行するか、もしくはクラスタを別のワークスペースに移動することが可能です。クラスタを編集すると、クラスタのグループ化に使用されるラベルや注釈を更新できます。

6.3.4 クラスタグループ

このセクションでは、セレクタを使用してワークスペース内のクラスタをカスタムグループ化できます。

6.3.5 詳細

「詳細」セクションでは、ワークスペースやその他の関連するFleetリソースを管理できます。

6.4 Rancherダッシュボードを使用してRancherおよびFleetでKubeVirtをインストールする例

  1. `fleet.yaml`ファイルを含むGitリポジトリを作成します。

    defaultNamespace: kubevirt
    helm:
      chart: "oci://registry.suse.com/edge/charts/kubevirt"
      version: "306.0.2+up0.7.0"
      # kubevirt namespace is created by kubevirt as well, we need to take ownership of it
      takeOwnership: true
  2. Rancherダッシュボードで、*☰ > Continuous Delivery > Git Repos*に移動し、`Add Repository`をクリックします。

  3. リポジトリ作成ウィザードに従ってGitリポジトリを作成します。名前リポジトリURL(前のステップで作成したGitリポジトリを参照)を入力し、適切なブランチまたはリビジョンを選択します。より複雑なリポジトリの場合は、*パス*を指定して、単一のリポジトリ内で複数のディレクトリを使用します。

    fleet create repo1
  4. `Next`をクリックします。

  5. 次のステップでは、ワークロードのデプロイ先を定義できます。クラスタの選択にはいくつかの基本的なオプションがあります。クラスタを選択しない、すべてのクラスタを選択する、または特定の管理対象クラスタやクラスタグループ(定義されている場合)を直接選択することができます。「詳細」オプションを使用すると、YAMLを介してセレクタを直接編集できます。

    fleet create repo2
  6. `Create`をクリックします。リポジトリが作成されます。これ以降、ワークロードはリポジトリ定義に一致するクラスタ上にインストールされ、同期が維持されます。

6.5 デバッグと問題解決

「詳細」ナビゲーションセクションでは、低レベルのFleetリソースの概要を提供します。 バンドルは、Gitからのリソースのオーケストレーションに使用される内部リソースです。Gitリポジトリがスキャンされると、1つ以上のバンドルが生成されます。

特定のリポジトリに関連するバンドルを見つけるには、Gitリポジトリの詳細ページに移動し、`Bundles`タブをクリックします。

fleet repo bundles

各クラスターについて、バンドルは作成されたBundleDeploymentリソースに適用されます。BundleDeploymentの詳細を表示するには、Gitリポジトリ詳細ページの右上にある`Graph`ボタンをクリックします。 *リポジトリ > バンドル > BundleDeployments*のグラフが読み込まれます。グラフ内のBundleDeploymentをクリックして詳細を確認し、`Id`をクリックしてBundleDeploymentのYAMLを表示します。

fleet repo graph

Fleetのトラブルシューティングのヒントに関する詳細については、 こちらを参照してください。

6.6 Fleetの例

Edgeチームは、Fleetを使用してEdgeプロジェクトをインストールする例を含む リポジトリを管理しています。

Fleetプロジェクトには、 fleet-examplesリポジトリが含まれており、 Gitリポジトリ構造のすべてのユースケースを網羅しています。