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

Cloud Controller Manager 超入門 / Cloud Controller Manager 101

Kohei Ota
November 10, 2020

Cloud Controller Manager 超入門 / Cloud Controller Manager 101

Kohei Ota

November 10, 2020
Tweet

More Decks by Kohei Ota

Other Decks in Technology

Transcript

  1. Cloud Controller Manager
    超入門
    Kohei Ota, CNCF Ambassador/HPE Solutions Architect
    Kubernetes Internal #2

    View Slide

  2. © 2020 Cloud Native Computing Foundation
    2
    Who am I
    Kohei Ota (@inductor)
    •CNCF Ambassador
    •Cloud Native Solution Architect at HPE
    •Kubernetes SIG-Docs Japanese owner
    •Docker Meetup Tokyo Organizer
    •CloudNative Days Tokyo Organizer
    •Docker enthusiast

    View Slide

  3. © 2020 Cloud Native Computing Foundation
    3
    Today’s goal
    Cloud Controller Manager完全に理解した

    View Slide

  4. 小話: DockerとKubernetesの
    生まれた時期と経緯

    View Slide

  5. © 2020 Cloud Native Computing Foundation
    5
    Containers
    Cloud
    Native
    Kubernetes (2015)
    •Googleが15年近く前から作っていたBorgという基盤
    技術の思想がベース
    – インフラを抽象化して必要なリソースをアプリに提供す
    るためのプラットフォーム
    •Borgの思想をフルにOSSとして展開
    Open
    Source
    IaaS
    PaaS
    Open
    Source
    PaaS
    Virtualiza-
    tion
    2000 2001 2006 2009 2010 2011
    Non-
    Virtualized
    Hardware
    2013 2015
    IaaS
    here!

    View Slide

  6. © 2020 Cloud Native Computing Foundation
    6
    Marketing Committee
    Technical
    Oversight
    Committee
    Governing
    Board
    End User
    Community
    Container
    Orchestration
    Distributed
    system
    Platform
    for
    Platforms
    • 複数の「ノード」を束ねる
    クラスタリング
    • 柔軟なジョブスケジューリング
    • Raftベースの分散KVS
    • 高速で簡単なスケーリング
    • ロードバランサーとの統合
    • 柔軟で簡単なデプロイ手段
    • インフラ基盤との強力な連携
    • 拡張を前提に作られた APIやリソース
    • 大きなコミュニティとエコシステム
    Kubernetesの3つの顔

    View Slide

  7. © 2020 Cloud Native Computing Foundation
    7
    Marketing Committee
    Technical
    Oversight
    Committee
    Governing
    Board
    End User
    Community
    Container
    Orchestration
    Distributed
    system
    Platform
    for
    Platforms
    • 複数の「ノード」を束ねる
    クラスタリング
    • 柔軟なジョブスケジューリング
    • Raftベースの分散KVS
    • 高速で簡単なスケーリング
    • ロードバランサーとの統合
    • 柔軟で簡単なデプロイ手段
    • インフラ基盤との強力な連携
    • 拡張を前提に作られた APIやリソース
    • 大きなコミュニティとエコシステム
    SIG Cloud Provider
    が各クラウド基盤と
    の連携部分を担って
    いる
    Kubernetesの3つの顔

    View Slide

  8. © 2020 Cloud Native Computing Foundation
    8
    SIGってなに?
    ● SIGs(Special Interest Groups)
    ○ ドキュメント管理やリリース管理から、各コンポーネントの実装
    に至るまで、さまざまなSIGがある
    ■ あらゆる決定は基本的にSIGによって行われる
    ○ SIGごとに異なる組織からのチェア(代表)がいる
    ● Kubernetesそのものがコンポーネントごとに分かれたマイクロ
    サービス
    ○ 組織もまた必要に合わせ分割(SIG, WG)
    ○ 各SIGがそれぞれの目的のために日々頑張っている

    View Slide

  9. © 2020 Cloud Native Computing Foundation
    9
    SIGってなに?
    ● SIGs(Special Interest Groups)
    ○ ドキュメント管理やリリース管理から、各コンポーネントの実装
    に至るまで、さまざまなSIGがある
    ■ あらゆる決定は基本的にSIGによって行われる
    ○ SIGごとに異なる組織からのチェア(代表)がいる
    ● Kubernetesそのものがコンポーネントごとに分かれたマイクロ
    サービス
    ○ 組織もまた必要に合わせ分割(SIG, WG)
    ○ 各SIGがそれぞれの目的のために日々頑張っている
    SIG Cloud Provider
    各クラウド基盤とのAPIをよしなにする実装を考える人たちのあつ
    まり
    サブプロジェクトにはprovider-aws、provider-azure、provider-gcp
    などといった各主要クラウド基盤たちが名を連ね、標準化に勤しん
    でいる

    View Slide

  10. © 2020 Cloud Native Computing Foundation
    10
    SIGってなに?
    ● SIGs(Special Interest Groups)
    ○ ドキュメント管理やリリース管理から、各コンポーネントの実装
    に至るまで、さまざまなSIGがある
    ■ あらゆる決定は基本的にSIGによって行われる
    ○ SIGごとに異なる組織からのチェア(代表)がいる
    ● Kubernetesそのものがコンポーネントごとに分かれたマイクロ
    サービス
    ○ 組織もまた必要に合わせ分割(SIG, WG)
    ○ 各SIGがそれぞれの目的のために日々頑張っている
    SIG Cloud Provider
    各クラウド基盤とのAPIをよしなにする実装を考える人たちのあつ
    まり
    サブプロジェクトにはprovider-aws、provider-azure、provider-gcp
    などといった各主要クラウド基盤たちが名を連ね、標準化に勤しん
    でいる

    View Slide

  11. © 2020 Cloud Native Computing Foundation
    11
    SIGってなに?
    ● SIGs(Special Interest Groups)
    ○ ドキュメント管理やリリース管理から、各コンポーネントの実装
    に至るまで、さまざまなSIGがある
    ■ あらゆる決定は基本的にSIGによって行われる
    ○ SIGごとに異なる組織からのチェア(代表)がいる
    ● Kubernetesそのものがコンポーネントごとに分かれたマイクロ
    サービス
    ○ 組織もまた必要に合わせ分割(SIG, WG)
    ○ 各SIGがそれぞれの目的のために日々頑張っている
    SIG Cloud Provider
    各クラウド基盤とのAPIをよしなにする実装を考える人たちのあつ
    まり
    サブプロジェクトにはprovider-aws、provider-azure、provider-gcp
    などといった各主要クラウド基盤たちが名を連ね、標準化に勤しん
    でいる
    ● CCM(Cloud Controller Manager)
    ● CPI(Cloud Provider Interface)
    の2つが作られたことで、新たな基盤への依存
    を外部注入できることができるように

    View Slide

  12. CCM Design overview

    View Slide

  13. © 2020 Cloud Native Computing Foundation
    13
    CCM Design overview
    kube-api-server経由でリソース
    の差分をチェック
    必要なリソースを作成するために
    Cloud Provider APIを呼ぶ

    View Slide

  14. © 2020 Cloud Native Computing Foundation
    14
    CCMの責務範囲
    ● Node Controller
    ○ IaaSとNode Objectのつなぎ込み、メタデータの取得
    ● Route Controller
    ○ ServiceをOverlay networkで使うために各クラウドのネット
    ワーク経路を制御
    ● Service Controller
    ○ type: LoadBalancerの実体の管理、ターゲットのヘルス
    チェックなど、クラウドアプライアンスとService Objectのつな
    ぎ込み

    View Slide

  15. CCMと併せて知っておきたい
    他のプロジェクト

    View Slide

  16. © 2020 Cloud Native Computing Foundation
    16
    CCMと他のエコシステム
    ● Cluster API
    ○ Kindやkubeadmなどで使われる「クラスターを自動生成、管
    理する」ためのAPI仕様
    ○ 今後さまざまなシーンでクラスターの自動化に使われていくこ
    とが予想され、クラウド基盤との連携も重要
    ● Cluster Autoscaler
    ○ いわゆる「クラウドのオートスケーリング」をクラスターと連携さ
    せるための仕組み
    ○ AWSやGCPなど主要クラウドのマネージドKubernetesで触
    れる動的なスケーリングなどへの利用においてCCMと密接に
    関わっている

    View Slide

  17. © 2020 Cloud Native Computing Foundation
    17
    まとめ
    ● CCMはクラウドでKubernetesを動かすための重要
    な仕組み
    ● type: LoadBalancerを使っている人はCCMのは
    たらきに感謝しましょう
    ● bellさんのセッションに期待!

    View Slide

  18. [email protected]
    This presentation is available at:
    https://github.com/cncf/presentations
    Please follow up with CNCF

    View Slide