Slide 1

Slide 1 text

© Copyright 2021 Rancher. All Rights Reserved. 1 © Copyright 2021 Rancher. All Rights Reserved. 1 Fleet アーキテクチャ Deep Dive RancherJP Online Meetup #03 2021.11.30 Wenhan Shi Rancher Support Engineer

Slide 2

Slide 2 text

© Copyright 2021 Rancher. All Rights Reserved. 2 https://github.com/rancher/fleet Rancher Continuous Delivery - • Rancherが開発した独立のプロジェクト • Rancher v2.5/v2.6 built-in • GitOpsで 1 - 1,000,000のKubernetes クラスタを一元管理 • 各店舗・ATM・車上のk8s cluster • Policy/Application Deployment/Infraを操作可能 • UIでデプロイ状況が可視化 • クラスタをグルーピングして操作可能 • エリア・HWスペック・用途に分けて操作可能

Slide 3

Slide 3 text

© Copyright 2021 Rancher. All Rights Reserved. 3 Cluster Group demo commit Deploy Deploy Monitoring Deploy

Slide 4

Slide 4 text

© Copyright 2021 Rancher. All Rights Reserved. 4 アーキテクチャ

Slide 5

Slide 5 text

© Copyright 2021 Rancher. All Rights Reserved. 5 Fleet Manager Fleet Controller/Manager • Runs on a central k8s cluster • Typically, Rancher Server • Generating resource object and orchestration deployment

Slide 6

Slide 6 text

© Copyright 2021 Rancher. All Rights Reserved. 6 gitjob / gitRepos Gitjob • Communicates with a Git repository • Pull model (No.1) GitRepos • A Git repository monitored by Fleet • Can specify a branch and a specific folder within a repo

Slide 7

Slide 7 text

© Copyright 2021 Rancher. All Rights Reserved. 7 Fleet Manager/gitjob

Slide 8

Slide 8 text

© Copyright 2021 Rancher. All Rights Reserved. 8 GitRepos

Slide 9

Slide 9 text

© Copyright 2021 Rancher. All Rights Reserved. 9 Bundle Bundle • The collection of resources to be deployed to a cluster • YAML, Helm, Kustomize • Core unit of deployment • Automatically created by Fleet based on the configured GitRepo • Convert to Helm charts by Agent BundleDeployment • The Bundle generated for a specific cluster • Instance of Bundle which includes cluster- specific customisations

Slide 10

Slide 10 text

© Copyright 2021 Rancher. All Rights Reserved. 10 Bundles

Slide 11

Slide 11 text

© Copyright 2021 Rancher. All Rights Reserved. 11 Clusters / Cluster Groups Clusters • A Rancher-managed k8s cluster • Labels can be assigned, such as “environment”, “region”, etc Cluster Groups • Simplifies managing a large number of clusters • Cluster groups are defined based on labels

Slide 12

Slide 12 text

© Copyright 2021 Rancher. All Rights Reserved. 12 Clusters / Cluster Groups

Slide 13

Slide 13 text

© Copyright 2021 Rancher. All Rights Reserved. 13 Agent Agents • One per cluster • Deploys bundles as Helm charts • Watch the status of resources(BundleDeployment) • Pull model (No 2.) • Not required to be running • Can run only during scheduled window

Slide 14

Slide 14 text

© Copyright 2021 Rancher. All Rights Reserved. 14 Agent

Slide 15

Slide 15 text

© Copyright 2021 Rancher. All Rights Reserved. 15 How these works - Manager GitJobs • Detects new commit from Git Manager • Run fleet apply from Git source • Generate a bundle resource and save in k8s • Run as a k8s Job Manager • Create BundleDeployments, 1 per target cluster

Slide 16

Slide 16 text

© Copyright 2021 Rancher. All Rights Reserved. 16 How these works - Agent Agent • Watches BundleDeployment in cluster dedicated namespace Agent • Download content from Fleet manager • Generate helm chart • Run helm Agent • Update BundleDeployment status Agent • Live monitors resources • Helm installation manifest is desired state • Update BundleDeployment status when things change

Slide 17

Slide 17 text

© Copyright 2021 Rancher. All Rights Reserved. 17 17 おまけ – 競合

Slide 18

Slide 18 text

© Copyright 2021 Rancher. All Rights Reserved. 18 比較 • Argo CD • コンセプトが似ているがAPPでデプロイがPush方式 • マルチクラスタに対応していますが、クラスタグループがない • Flux • Pull方式 • Git以外セントラルコントロールがない

Slide 19

Slide 19 text

© Copyright 2021 Rancher. All Rights Reserved. 19 19 Questions?