Upgrade to Pro — share decks privately, control downloads, hide ads and more …

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

    View Slide

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

    View Slide

  3. View Slide

  4. Event info

    View Slide

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

    View Slide

  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 個

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  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 名程度

    View Slide

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

    View Slide

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

    View Slide

  14. Kubernetes Contributors Summit

    View Slide

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

    View Slide

  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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  23. kube-bind

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

    View Slide

  24. AKE – Kubernetes as a Service ͷ֓ཁ

    View Slide

  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
    管理クラスタ
    ユーザークラスタ

    View Slide

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

    View Slide

  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 + ブランチ管理などで実現

    View Slide

  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: {...}

    View Slide

  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
    管理クラスタ
    ユーザークラスタ

    View Slide

  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
    管理クラスタ
    ユーザークラスタ

    View Slide

  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

    View Slide

  32. Thank you for your attention
    Twitter: @amsy810

    View Slide