---
title: Fleet入門 ～ArgoCDじゃないマルチクラスタ向けGitOpsツール Fleet とは～
tags:  #rancherjp #k8s #rancher  
author: [やっさん🍶](https://www.docswell.com/user/yassan)
site: [Docswell](https://www.docswell.com/)
thumbnail: https://bcdn.docswell.com/page/57GRRP2XEL.jpg?width=480
description: RancherJP Online Meetup #07 の LTスライド https://rancherjp.connpass.com/event/365378/  #Kubernetes #Rancher #GitOps #Fleet
published: August 28, 25
canonical: https://www.docswell.com/s/yassan/5PGJG6-rancherjp-online-meetup-07
---
# Page. 1

![Page Image](https://bcdn.docswell.com/page/57GRRP2XEL.jpg)

2025-08-28 RancherJP Online Meetup #07 LT
Fleet 入門
～ArgoCD じゃないマルチクラスタ向け GitOps ツール Fleet とは～
やっさん
＠yassan168
#rancherjp


# Page. 2

![Page Image](https://bcdn.docswell.com/page/4EQVV2P5JP.jpg)

今日のゴール
ArgoCD以外のGitOpsツールとして
Rancherならすぐ使える Fleet について、
コンセプトや使い所を知ってもらう。


# Page. 3

![Page Image](https://bcdn.docswell.com/page/KJ4MMLYVE1.jpg)

おことわり
Fleet 自体はRancher無しでも利用
可。
が、今回はRancherと組み合わせて使った
場合に限定して話します。


# Page. 4

![Page Image](https://bcdn.docswell.com/page/LE188L647G.jpg)

アーキテクチャの説明
ざっくりな図
Git
リポジトリ
Downstream Cluster A
BundleDeployment(指示)
ﬂeet-agent
K8s
API
pull
ﬂeet-controller
+ gitjob
デプロイリソース
の状態を通知
デプロイリソース
の状態を通知
Downstream Cluster B
K8s API
BundleDeployment(指示)
Fleet Manager（＝Rancher）
ﬂeet-agent
K8s
API


# Page. 5

![Page Image](https://bcdn.docswell.com/page/GEWZZVWZE2.jpg)

主要コンポーネントの説明
コンポーネントと役割
ﬂeet-controller / gitjob
管理クラスタ側のコントローラ群。
Git を監視・取得し、スキャン内容から Bundle を生成、対象クラスタご
とに BundleDeployment を作成。
ﬂeet-agent
下流クラスタに 1 Pod。
管理クラスタの自クラスタ用 Namespace にある BundleDeployment を
watch し、テンプレート（Helm/Kustomize/Raw YAML）をレンダリング＆
適用


# Page. 6

![Page Image](https://bcdn.docswell.com/page/47Z1145LJ3.jpg)

主要カスタムリソースの説明
GitRepo
サイズ制約
に
注意（上限
gzip圧縮し
て 1MB 未満
）
リポジトリとスキャン対象を記述。
paths を使ってフィルタ可能（＝分割して管理出来る）。
リポジトリ中のﬂeet.yaml/Chart.yaml/kustomization.yaml から自動で
判定。これを元にBundleを作成。
Bundle / BundleDeployment
Bundleはリポジトリの論理なデプロイ単位に分けたリソースの集合。
BundleDeploymentは、クラスタ固有のカスタマイズをしたBundleの状態
とデプロイリソース状態も管理。
Cluster / ClusterGroup
クラスタ または クラスタのグループ化 の定義。
Workspace（ﬂeet-default/ﬂeet-local）の概念と紐付き。


# Page. 7

![Page Image](https://bcdn.docswell.com/page/YJ6LL39MEV.jpg)

大事なポイント
基本思想
GitOps × 大規模な”多”クラスタ
二段階 Pull モデル
1. Fleet Controller（Rancher） が Gitリポジトリ から取り込み
2. Downstream Cluster の Fleet Agent が Fleet Controller の K8s
API を読み、指示（BundleDeployment）に基づいて自身のクラスタへ適用
デプロイについて
● GitRepoを元にGitリポジトリをBundle としてまとめる
○
○
Raw YAML(単純なマニフェスト)・Kustomise・Helmは混在してOK
最終的にはHelmに変換して、レンダリングして適用している
● Bundleを対象クラスタごとの BundleDeployment に改変し
ロールアウト状況を監視


# Page. 8

![Page Image](https://bcdn.docswell.com/page/GJ511LNQ74.jpg)

Fleet v0.13の話
正確にはGitOpsからズレるが、、、
• HelmOpsって概念が爆誕
• Helmチャートを直接使った管理方法が追加
•
Helmのvalueについては、Downstream Cluster 側のConﬁgMap・Secretsを使って
最終的に改変出来る（ただし、罠が増えるので注意）
• OCIストレージへの対応
• Bundleはカスタムリソースである事からetcdの制約でサイズが1MB上限
• OCIストレージを使うことでその上限から開放される


# Page. 9

![Page Image](https://bcdn.docswell.com/page/9E211L5WJR.jpg)

あ、うち、
大規模な”多”クラスタじゃないんで、、、


# Page. 10

![Page Image](https://bcdn.docswell.com/page/D7YZZQK9JM.jpg)

大規模な”多”クラスタじゃなくてもアリ。
Fleetにあうのは、、
クラスタ横断で同一に保ちたい基盤とCRD本体を
ルールベースにまとめて配布・維持したい場所
ArgoCDにあうのは、、
アプリとその周辺（CR実体・SLO/監視・ネットワークの穴あけ）を、
頻繁な変更と素早いロールバックで安全に運用したい場所
Fleet向き
●
●
●
●
●
対象はCluster/Globalスコープか
全クラスタで同一にしたいか
変更は月次以下か
失敗時の影響がクラスタ全体に及ぶか
CRDそのものか
ArgoCD向き
●
●
●
●
●
Namespaceスコープ中心か
週次〜日次で変えるか（リリースが多い）
ロールバック即時が欲しいか
監視/Alertがサービス固有か
CR（CRDの実体）か


# Page. 11

![Page Image](https://bcdn.docswell.com/page/VEN33KRDE8.jpg)

参考
● 用語：https://ﬂeet.rancher.io/glossary
● コンセプト
○
https://ﬂeet.rancher.io/concepts
● アーキテクチャ
○
○
○
○
○
○
https://ﬂeet.rancher.io/0.13/architecture
https://ﬂeet.rancher.io/0.13/ref-bundle-stages
https://ﬂeet.rancher.io/0.13/resources-during-deployment
https://ﬂeet.rancher.io/0.13/gitrepo-content#using-helm-values
https://ﬂeet.rancher.io/0.13/namespaces
https://ﬂeet.rancher.io/oci-storage
● Fleet利用する際のGitリポジトリサンプル
○
https://github.com/rancher/ﬂeet-examples
● Best Practices - Argo CD - Declarative GitOps CD for Kubernetes
https://argo-cd.readthedocs.io/en/stable/user-guide/best_practices/
● Top 30 Argo CD Anti-Patterns to Avoid When Adopting Gitops
https://codefresh.io/blog/argo-cd-anti-patterns-for-gitops/
●


# Page. 12

![Page Image](https://bcdn.docswell.com/page/Y7999VM873.jpg)

おまけ。
今回のLT向けに構築した環境のスクショ
Windows11 on WSL2 ＆ Rancher Desktopで、
Rancher DesktopのK8sはオフにして、K3dでクラスタを作ったクラスタで
構成。


# Page. 13

![Page Image](https://bcdn.docswell.com/page/G7899PLZJD.jpg)



# Page. 14

![Page Image](https://bcdn.docswell.com/page/L7LWW1L1ER.jpg)



# Page. 15

![Page Image](https://bcdn.docswell.com/page/4EM99WM57W.jpg)



# Page. 16

![Page Image](https://bcdn.docswell.com/page/PERGGYVZ79.jpg)



# Page. 17

![Page Image](https://bcdn.docswell.com/page/P7XXXGZ17X.jpg)



# Page. 18

![Page Image](https://bcdn.docswell.com/page/37KWW48M7D.jpg)



# Page. 19

![Page Image](https://bcdn.docswell.com/page/LJ311L22E5.jpg)



# Page. 20

![Page Image](https://bcdn.docswell.com/page/8JDXXNZ67G.jpg)



# Page. 21

![Page Image](https://bcdn.docswell.com/page/VEPPP5YZE8.jpg)



# Page. 22

![Page Image](https://bcdn.docswell.com/page/27V22PGM7Q.jpg)



