Slide 1

Slide 1 text

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

Slide 2

Slide 2 text

© 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

Slide 3

Slide 3 text

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

Slide 4

Slide 4 text

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

Slide 5

Slide 5 text

© 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!

Slide 6

Slide 6 text

© 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つの顔

Slide 7

Slide 7 text

© 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つの顔

Slide 8

Slide 8 text

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

Slide 9

Slide 9 text

© 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 などといった各主要クラウド基盤たちが名を連ね、標準化に勤しん でいる

Slide 10

Slide 10 text

© 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 などといった各主要クラウド基盤たちが名を連ね、標準化に勤しん でいる

Slide 11

Slide 11 text

© 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つが作られたことで、新たな基盤への依存 を外部注入できることができるように

Slide 12

Slide 12 text

CCM Design overview

Slide 13

Slide 13 text

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

Slide 14

Slide 14 text

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

Slide 15

Slide 15 text

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

Slide 16

Slide 16 text

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

Slide 17

Slide 17 text

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

Slide 18

Slide 18 text

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