Slide 1

Slide 1 text

Masaya Aoyama CyberAgent KubeCon + CloudNativeCon NA 2022 Overview + Recap: Towards Something Better Than CRDs In a Post-Operator World Kubernetes Meetup Tokyo #54 amsy810 @amsy810

Slide 2

Slide 2 text

- Co-chair ⻘⼭真也 + CREATIONLINE - 技術アドバイザ + SAKURA Internet Research Center – 客員研究員 + 3-shake 技術顧問 + PLAID - Organizer - KaaS Product Owner - Publications Twitter: @amsy810

Slide 3

Slide 3 text

No content

Slide 4

Slide 4 text

Event info

Slide 5

Slide 5 text

KubeCon + CloudNativeCon NA 2022 開催⽇︓2022/10/24 – 2022/10/28 (10/24– 10/25 は Co-located event) 会場︓ Detriot, MI + Virtual platform

Slide 6

Slide 6 text

【Day 1 – 10/24】 • BackstageCon • EnvoyCon • gRPCConf • KnativeCon • Kubernetes Batch + HPC Day • Open Observability Day • Cloud Native Wasm Day • Cloud Native eBPF Day • Cloud Native Telco Day • Cloud Native SecurityCon (Day 1) • Kubernetes Contributors Summit 【Day 2 – 10/25】 • GitOpsCon • Kubernetes AI Day • Kubernetes on Edge Day • PrometheusDay • ServiceMeshCon • SigstoreCon • Cloud Native SecurityCon (Day 2) $/$'IPTUFE$PMPDBUFE&WFOU CNCF が主催する Co-located イベント︓16 + 1 個 CNCF 以外が主催する Co-located イベント︓ 21 個

Slide 7

Slide 7 text

ίϩφલͷ ,VCF$PO $/$PO /" すべてがオフライン参加 ⽇本からの参加者数が 3 番⽬

Slide 8

Slide 8 text

ίϩφલͷ ,VCF$PO $/$PO /" すべてがオフライン参加 ⽇本からの参加者数が 3 番⽬

Slide 9

Slide 9 text

ίϩφޙͷ ,VCF$PO $/$PO /" オフライン参加者数

Slide 10

Slide 10 text

,VCF$PO $/$PO /" オフライン参加者数

Slide 11

Slide 11 text

,VCF$PO $MPVE/BUJWF$PO /"ͷ೔ຊਓࢀՃऀ • CyberAgent • ZOZO • Mercari • Cybozu (現地ではお⾒かけせず) • NEC • NTT DOCOMO • NTT DATA • KDDI • Softbank C&S • CREATIONLINE • ⽇本仮想化技術 • SCSK • 伊藤忠 • エーピーコミュニケーションズ • IBM • F5 • Apple • その他数社 合計 40 名程度

Slide 12

Slide 12 text

KubeCon + CloudNativeCon NA 2022 会場到着時は毎⽇ワクチン 接種済みのチェック 会場内ではマスク着⽤必須

Slide 13

Slide 13 text

KubeCon + CloudNativeCon NA 2022 セッション会場の満員制限などは無し ⽴ち⾒なども許容 セッション会場内での飲⾷は禁⽌

Slide 14

Slide 14 text

Kubernetes Contributors Summit

Slide 15

Slide 15 text

Next KubeCon + CloudNativeCon in 2023 3FGIUUQTUXJUUFSDPNLBTMJOGJFMETTUBUVT TU/FBL9R;6L5MSQ7QO"6X

Slide 16

Slide 16 text

Towards Something Better Than CRDs In a Post-Operator World Stefan Schimanski, Red Hat https://sched.co/182Hm Seeding "kubectl bind” – getting over operators and CRDs as a community Stefan Schimanski, Red Hat & Moath Qasim https://sched.co/1CXMX Kcp: Towards 1,000,000 Clusters, Name^WWorkspaced CRDs Stefan Schimanski, Red Hat https://sched.co/182I7

Slide 17

Slide 17 text

kcp 最⼩限の Kubernetes API-like なコントロールプレーンを提供 ⼀つの kcp 上複数の API Server の領域(Workspace)を⽣成可能 1,000,000+ Pod や Service などの基本リソースを持たず、 CRD などのみが登録される想定の空の API Server Cluster Cluster Cluster Cluster Cluster Cluster

Slide 18

Slide 18 text

kube-bind kcp を利⽤して SaaS-like に API を使⽤することが可能な仕組み Operator などを Kubernetes クラスタにデプロイ・管理することなく利⽤可能

Slide 19

Slide 19 text

これまでの Controller / CRD の利⽤例 Service Provider Controller CustomResource CRD CustomResource request CRD や Controller の 更新時の影響調査などの責務有り ユーザーのクラスタには Controller などが必要

Slide 20

Slide 20 text

kube-bind 利⽤時の Controller / CRD の利⽤例 Service Provider CustomResource CRD CRD CustomResource CustomResource CustomResource sync sync Controller request CRDのバージョン管理などは SaaS Provider 側で提供 ユーザーのクラスタでは Controller などが不要

Slide 21

Slide 21 text

マルチテナント向け Controller の実装パターン kcp 側にデプロイされている Controller は複数のクラスタを対象に⼀元管理 バージョン管理などもすべて Service provider 側で提供

Slide 22

Slide 22 text

マルチテナント向け Controller の実装パターン Service Provider 側は提供する API と CRD のセットを事前定義

Slide 23

Slide 23 text

kube-bind あ ユーザークラスタのリソースの 同期⽅法は push/pull 両対応

Slide 24

Slide 24 text

AKE – Kubernetes as a Service ͷ֓ཁ

Slide 25

Slide 25 text

ClusterAPI-based Kubernetes as a Service 2017 年頃に OpenStack Heat ベースで実装、2022年に ClusterAPI ベースの実装に移⾏ v1.19.7 v1.20.5 v1.21.3 kind: Cluster metadata: name: test-cluster-01 spec: topology: version: v1.21.2 controlPlane: replicas: 3 workers: machineDeployments: - class: type1-workers name: cpu-nodepool-01 replicas: 5 kind: Cluster metadata: name: test-cluster-01 spec: topology: version: v1.21.2 controlPlane: replicas: 3 workers: machineDeployments: - class: type1-workers name: cpu-nodepool-01 replicas: 5 kind: Cluster metadata: name: test-cluster-01 spec: topology: version: v1.19.7 controlPlane: replicas: 3 workers: machineDeployments: - class: type1-workers name: cpu-nodepool-01 replicas: 5 管理クラスタ ユーザークラスタ

Slide 26

Slide 26 text

ユーザークラスタ郡に対するエコシステムの管理 管理クラスタ上にデプロイ 管理クラスタ ユーザークラスタ 「ユーザー側では直接利⽤しないもの」 「KaaS としての⾃動管理系の機能」 などで利⽤ e.g. Cluster Autoscaler 管理クラスタからユーザクラスタの状態を監視し、スケールが必要になったらスケールアウト e.g. Node Auto Repair 管理クラスタから、ユーザークラスタのノードの状態を確認し、問題が⽣じたら修復 ユーザー向けクラスタ上にデプロイ 管理クラスタ ユーザークラスタ 「ユーザが直接利⽤する必要があるもの」 「ユーザクラスタ上の情報が必要なもの」 などで利⽤ e.g. Cert Manager CRD を含む⼀式をデプロイし、ユーザーの Ingress などで証明書が利⽤できるように e.g. Prometheus / Exporter 類 ユーザのクラスタ上でメトリクスを収集する(管理クラスタへ集約)

Slide 27

Slide 27 text

Kubernetes as a Service での要件 複数クラスタを容易に管理できる 各クラスタの Kubernetes バージョンごとに適切なマニフェストがデプロイできる 各クラスタで利⽤する機能(アドオン、アプリケーション)の Enable/Disable が切り替えられる v1.19.7 Prometheus, Cert-manager v1.20.5 CSI (A) v1.21.3 CSI (B), Cluster Autoscaler 管理クラスタ ユーザークラスタ ApplicationSet + ブランチ管理などで実現

Slide 28

Slide 28 text

マニフェスト管理におけるブランチ管理 v1.19.7 Prometheus, Cert-manager v1.20.5 CSI (A) v1.21.3 CSI (B), Cluster Autoscaler 管理クラスタ ユーザークラスタ kind: Application metadata: name: cert-manager spec: source: repoURL: https://github.com/xxx.git targetRevision: v1.19-ake.4 path: manifests/cert-manager kind: ApplicationSet metadata: name: cert-manager spec: generators: - clusters: {...}

Slide 29

Slide 29 text

現在の構成での問題点 • ユーザーのクラスタにデプロイされた Controller 類の監視が必要 • GitOps の sync • Pod Ready • 1クラスタにつき、1 Controllerを起動する必要がありリソース効率が悪い • バージョン管理を Git リポジトリで⾏う困難さ v1.19.7 Prometheus, Cert-manager v1.20.5 CSI (A) v1.21.3 CSI (B), Cluster Autoscaler 管理クラスタ ユーザークラスタ

Slide 30

Slide 30 text

現在の構成での問題点 • ユーザーのクラスタにデプロイされた Controller 類の監視が必要 • GitOps の sync • Pod Ready • 1クラスタにつき、1 Controllerを起動する必要がありリソース効率が悪い • バージョン管理を Git リポジトリで⾏う困難さ v1.19.7 Prometheus, Cert-manager v1.20.5 CSI (A) v1.21.3 CSI (B), Cluster Autoscaler 管理クラスタ ユーザークラスタ

Slide 31

Slide 31 text

その他の Recap https://techfeed.io/entries/6373422d5e052a55de9cd6a8 Resize Your Pods In-Place With Deterministic eBPF Triggers Fluent Bit v2.0 and WASM plugin support Docker WasmEdge runtime support

Slide 32

Slide 32 text

Thank you for your attention Twitter: @amsy810