Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Speaker Deck
PRO
Sign in
Sign up
for free
Cloud Controller Manager 超入門 / Cloud Controller Manager 101
Kohei Ota
November 10, 2020
Technology
0
220
Cloud Controller Manager 超入門 / Cloud Controller Manager 101
https://k8sinternal.connpass.com/event/194015/
Kohei Ota
November 10, 2020
Tweet
Share
More Decks by Kohei Ota
See All by Kohei Ota
inductor
0
1.1k
inductor
1
210
inductor
0
120
inductor
1
730
inductor
1
130
inductor
0
180
inductor
5
1.6k
inductor
5
750
inductor
8
1.1k
Other Decks in Technology
See All in Technology
aamine
4
950
tj8000rpm
0
250
hmatsu47
1
180
oracle4engineer
0
120
supership
0
200
thehajime
0
130
kanaugust
PRO
0
210
tatsy
0
140
kanaugust
PRO
0
120
you
0
130
ocise
0
140
soracom
0
250
Featured
See All Featured
reverentgeek
167
7.3k
holman
288
130k
carmenhchung
35
1.6k
vanstee
118
4.9k
jrom
116
7.2k
bkeepers
PRO
409
58k
cassininazir
347
20k
maggiecrowley
10
550
searls
204
37k
nonsquared
81
3.4k
bermonpainter
343
26k
ufuk
57
5.5k
Transcript
Cloud Controller Manager 超入門 Kohei Ota, CNCF Ambassador/HPE Solutions Architect
Kubernetes Internal #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
© 2020 Cloud Native Computing Foundation 3 Today’s goal Cloud
Controller Manager完全に理解した
小話: DockerとKubernetesの 生まれた時期と経緯
© 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!
© 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つの顔
© 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つの顔
© 2020 Cloud Native Computing Foundation 8 SIGってなに? • SIGs(Special
Interest Groups) ◦ ドキュメント管理やリリース管理から、各コンポーネントの実装 に至るまで、さまざまなSIGがある ▪ あらゆる決定は基本的にSIGによって行われる ◦ SIGごとに異なる組織からのチェア(代表)がいる • Kubernetesそのものがコンポーネントごとに分かれたマイクロ サービス ◦ 組織もまた必要に合わせ分割(SIG, WG) ◦ 各SIGがそれぞれの目的のために日々頑張っている
© 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 などといった各主要クラウド基盤たちが名を連ね、標準化に勤しん でいる
© 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 などといった各主要クラウド基盤たちが名を連ね、標準化に勤しん でいる
© 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つが作られたことで、新たな基盤への依存 を外部注入できることができるように
CCM Design overview
© 2020 Cloud Native Computing Foundation 13 CCM Design overview
kube-api-server経由でリソース の差分をチェック 必要なリソースを作成するために Cloud Provider APIを呼ぶ
© 2020 Cloud Native Computing Foundation 14 CCMの責務範囲 • Node
Controller ◦ IaaSとNode Objectのつなぎ込み、メタデータの取得 • Route Controller ◦ ServiceをOverlay networkで使うために各クラウドのネット ワーク経路を制御 • Service Controller ◦ type: LoadBalancerの実体の管理、ターゲットのヘルス チェックなど、クラウドアプライアンスとService Objectのつな ぎ込み
CCMと併せて知っておきたい 他のプロジェクト
© 2020 Cloud Native Computing Foundation 16 CCMと他のエコシステム • Cluster
API ◦ Kindやkubeadmなどで使われる「クラスターを自動生成、管 理する」ためのAPI仕様 ◦ 今後さまざまなシーンでクラスターの自動化に使われていくこ とが予想され、クラウド基盤との連携も重要 • Cluster Autoscaler ◦ いわゆる「クラウドのオートスケーリング」をクラスターと連携さ せるための仕組み ◦ AWSやGCPなど主要クラウドのマネージドKubernetesで触 れる動的なスケーリングなどへの利用においてCCMと密接に 関わっている
© 2020 Cloud Native Computing Foundation 17 まとめ • CCMはクラウドでKubernetesを動かすための重要
な仕組み • type: LoadBalancerを使っている人はCCMのは たらきに感謝しましょう • bellさんのセッションに期待!
info@cncf.io This presentation is available at: https://github.com/cncf/presentations Please follow up
with CNCF