$30 off During Our Annual Pro Sale. View Details »

KubeCon + CNCon NA 2022 Overview & Towards Something Better Than CRDs In a Post-Operator World / k8sjp54-kubecon-recap

KubeCon + CNCon NA 2022 Overview & Towards Something Better Than CRDs In a Post-Operator World / k8sjp54-kubecon-recap

KubeCon Overview / Towards Something Better Than CRDs In a Post-Operator World - 青山真也 (Twitter: @amsy810, GitHub: MasayaAoyama), CyberAgent

Masaya Aoyama (@amsy810)

November 24, 2022
Tweet

More Decks by Masaya Aoyama (@amsy810)

Other Decks in Programming

Transcript

  1. 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
  2. - Co-chair ⻘⼭真也 + CREATIONLINE - 技術アドバイザ + SAKURA Internet

    Research Center – 客員研究員 + 3-shake 技術顧問 + PLAID - Organizer - KaaS Product Owner - Publications Twitter: @amsy810
  3. None
  4. Event info

  5. KubeCon + CloudNativeCon NA 2022 開催⽇︓2022/10/24 – 2022/10/28 (10/24– 10/25

    は Co-located event) 会場︓ Detriot, MI + Virtual platform
  6. 【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 個
  7. ίϩφલͷ ,VCF$PO $/$PO /" すべてがオフライン参加 ⽇本からの参加者数が 3 番⽬

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

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

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

  11. ,VCF$PO $MPVE/BUJWF$PO /"ͷ೔ຊਓࢀՃऀ • CyberAgent • ZOZO • Mercari •

    Cybozu (現地ではお⾒かけせず) • NEC • NTT DOCOMO • NTT DATA • KDDI • Softbank C&S • CREATIONLINE • ⽇本仮想化技術 • SCSK • 伊藤忠 • エーピーコミュニケーションズ • IBM • F5 • Apple • その他数社 合計 40 名程度
  12. KubeCon + CloudNativeCon NA 2022 会場到着時は毎⽇ワクチン 接種済みのチェック 会場内ではマスク着⽤必須

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

  14. Kubernetes Contributors Summit

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

  16. 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
  17. kcp 最⼩限の Kubernetes API-like なコントロールプレーンを提供 ⼀つの kcp 上複数の API Server

    の領域(Workspace)を⽣成可能 1,000,000+ Pod や Service などの基本リソースを持たず、 CRD などのみが登録される想定の空の API Server Cluster Cluster Cluster Cluster Cluster Cluster
  18. kube-bind kcp を利⽤して SaaS-like に API を使⽤することが可能な仕組み Operator などを Kubernetes

    クラスタにデプロイ・管理することなく利⽤可能
  19. これまでの Controller / CRD の利⽤例 Service Provider Controller CustomResource CRD

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

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

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

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

  24. AKE – Kubernetes as a Service ͷ֓ཁ

  25. 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 管理クラスタ ユーザークラスタ
  26. ユーザークラスタ郡に対するエコシステムの管理 管理クラスタ上にデプロイ 管理クラスタ ユーザークラスタ 「ユーザー側では直接利⽤しないもの」 「KaaS としての⾃動管理系の機能」 などで利⽤ e.g. Cluster

    Autoscaler 管理クラスタからユーザクラスタの状態を監視し、スケールが必要になったらスケールアウト e.g. Node Auto Repair 管理クラスタから、ユーザークラスタのノードの状態を確認し、問題が⽣じたら修復 ユーザー向けクラスタ上にデプロイ 管理クラスタ ユーザークラスタ 「ユーザが直接利⽤する必要があるもの」 「ユーザクラスタ上の情報が必要なもの」 などで利⽤ e.g. Cert Manager CRD を含む⼀式をデプロイし、ユーザーの Ingress などで証明書が利⽤できるように e.g. Prometheus / Exporter 類 ユーザのクラスタ上でメトリクスを収集する(管理クラスタへ集約)
  27. 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 + ブランチ管理などで実現
  28. マニフェスト管理におけるブランチ管理 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: {...}
  29. 現在の構成での問題点 • ユーザーのクラスタにデプロイされた 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 管理クラスタ ユーザークラスタ
  30. 現在の構成での問題点 • ユーザーのクラスタにデプロイされた 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 管理クラスタ ユーザークラスタ
  31. その他の 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
  32. Thank you for your attention Twitter: @amsy810