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

Cloud Controller Manager 超入門 / Cloud Controller Manager 101

Ad22fcf5773b906c08330f4d57242212?s=47 Kohei Ota
November 10, 2020

Cloud Controller Manager 超入門 / Cloud Controller Manager 101

Ad22fcf5773b906c08330f4d57242212?s=128

Kohei Ota

November 10, 2020
Tweet

Transcript

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

    Kubernetes Internal #2
  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
  3. © 2020 Cloud Native Computing Foundation 3 Today’s goal Cloud

    Controller Manager完全に理解した
  4. 小話: DockerとKubernetesの 生まれた時期と経緯

  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!
  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つの顔
  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つの顔
  8. © 2020 Cloud Native Computing Foundation 8 SIGってなに? • SIGs(Special

    Interest Groups) ◦ ドキュメント管理やリリース管理から、各コンポーネントの実装 に至るまで、さまざまなSIGがある ▪ あらゆる決定は基本的にSIGによって行われる ◦ SIGごとに異なる組織からのチェア(代表)がいる • Kubernetesそのものがコンポーネントごとに分かれたマイクロ サービス ◦ 組織もまた必要に合わせ分割(SIG, WG) ◦ 各SIGがそれぞれの目的のために日々頑張っている
  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 などといった各主要クラウド基盤たちが名を連ね、標準化に勤しん でいる
  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 などといった各主要クラウド基盤たちが名を連ね、標準化に勤しん でいる
  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つが作られたことで、新たな基盤への依存 を外部注入できることができるように
  12. CCM Design overview

  13. © 2020 Cloud Native Computing Foundation 13 CCM Design overview

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

    Controller ◦ IaaSとNode Objectのつなぎ込み、メタデータの取得 • Route Controller ◦ ServiceをOverlay networkで使うために各クラウドのネット ワーク経路を制御 • Service Controller ◦ type: LoadBalancerの実体の管理、ターゲットのヘルス チェックなど、クラウドアプライアンスとService Objectのつな ぎ込み
  15. CCMと併せて知っておきたい 他のプロジェクト

  16. © 2020 Cloud Native Computing Foundation 16 CCMと他のエコシステム • Cluster

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

    な仕組み • type: LoadBalancerを使っている人はCCMのは たらきに感謝しましょう • bellさんのセッションに期待!
  18. info@cncf.io This presentation is available at: https://github.com/cncf/presentations Please follow up

    with CNCF