Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
Kubernetesを知る
Search
Takuto Nagami
December 02, 2024
Technology
7.4k
24
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Kubernetesを知る
2024/12/2 ゼミでの発表に使った資料です。
Takuto Nagami
December 02, 2024
More Decks by Takuto Nagami
See All by Takuto Nagami
GopherCon @シアトル に行ってきました
logica0419
0
570
型落ちシンクライアント端末のPoEモジュールを自作したかった話
logica0419
0
580
The Journey of Connecting Japan to the Global Go Community
logica0419
1
120
Discovering Cilium: What eBPF Enabled in K8s Networking
logica0419
0
120
Do Gophers Dream of Stack Overflow?
logica0419
0
59
今こそ学びたいKubernetesネットワーク ~CNIが繋ぐNWとプラットフォームの「フラッと」な対話
logica0419
10
1.4k
キャリア科目では教えてくれない、就活を生き抜く法則
logica0419
2
320
歴史から学ぶ、Goのメモリ管理基礎
logica0419
17
4.4k
【2025改訂版】ITエンジニアとして知っておいてほしい、電子メールという大きな穴
logica0419
2
350
Other Decks in Technology
See All in Technology
俺の仕事は AIに奪われないし、たぶんその BIも要らない
hikaruri
0
340
2026-09-11 【Snowflake World Tour Tokyo 2026】Snowflakeを起点に、AI Agentが自律稼働し続ける未来へ / Driving AI Agents with Snowflake
civitaspo
0
380
SREは、MCPとAutopilotをこう使え!
kazumax55
1
170
例外の正しい扱い方 そのエラー try-catchして大丈夫?
jinwatanabe
3
480
range over func 2年間の軌跡 Issue #56413 はGoのエコシステムをどう変えたか
ryujicre8ive
0
130
AIネイティブプロダクトで顧客価値を最大化するプロダクトエンジニアとFDEの協働
righttouch
PRO
0
270
すぐできる衛星通信対応 あとは山奥に行くだけ
tatetate55
0
110
コスト最適化の「めんどくさい」を AWS FinOps Agent でチョット楽にする
classmethod_kaz
0
330
作品が生態系になった ─ Mini Tokyo 3D から世界へ
nagix
0
180
Tab5をRubyで動くパソコンにする
kishima
2
360
AI時代の「技術的負債」の変質ー概念の終焉と再解釈、エージェントと共に向かう先
nwiizo
0
1k
Screen Lens - 今見てる画面を翻訳する
komagata
0
270
Featured
See All Featured
Imperfection Machines: The Place of Print at Facebook
scottboms
270
14k
WENDY [Excerpt]
tessaabrams
13
39k
Skip the Path - Find Your Career Trail
mkilby
1
230
The Curse of the Amulet
leimatthew05
2
14k
End of SEO as We Know It (SMX Advanced Version)
ipullrank
3
4.4k
Six Lessons from altMBA
skipperchong
29
4.5k
Kristin Tynski - Automating Marketing Tasks With AI
techseoconnect
PRO
0
520
Navigating the moral maze — ethical principles for Al-driven product design
skipperchong
2
530
The Cult of Friendly URLs
andyhume
79
7k
Templates, Plugins, & Blocks: Oh My! Creating the theme that thinks of everything
marktimemedia
31
2.9k
Building Adaptive Systems
keathley
44
3.2k
What Being in a Rock Band Can Teach Us About Real World SEO
427marketing
0
1.1k
Transcript
logica X: @logica0419 GitHub: @logica0419 Kubernetesを知る
コンテナ仮想化と オーケストレーションシステム
サーバー上でアプリを動かす • Webサーバーを動かすとき、生のコンピュータでは不便 ◦ リソースの食い合い、セキュリティ懸念 など
計算リソースの仮想化 • リソースの配分ができるようになる • OSを変更できる • セキュリティ向上
従来の仮想化 (VM) の欠点 • 仮想化 = ハードウェアをシミュレーション ◦ 非常にリソースを圧迫 •
ハイパーバイザによる効率化は限定的
カーネル - OSのコア • OS: コンピューター全体の動作を管理・制御する • カーネル: OSの中でも、ハードウェアの制御を担う ◦
一番重要な部品
コンテナ型仮想化 • カーネルまではホストOSを使い回す = 軽い!
コンテナ仮想化 • 実態は「あるプロセスを隔離する」技術 ◦ Linuxは1つの親プロセスを起点としたプロセスの木 • コンテナを支える技術 ◦ Namespace -
PID / Network / File System など ▪ プロセスをグループ化し、隔離空間を作る ◦ cgroup - プロセスグループへのリソース制限 ◦ Capability - プロセスグループへの権限付与
爆発するコンテナ数 • 同内容のコンテナを増やし、ロードバランシングしたい • 企業だと数千〜数万は当たり前になってくる ◦ 個別に管理するのはとても大変
コンテナオーケストレーション • アプリケーションを大規模に展開するため、コンテナの 管理を自動化する
Kubernetes • コンテナオーケストレーションシステムの一つ • Google内製のシステム「Borg」を元に作られた汎用的 なインフラ基盤
Kubernetesの提供する リソース (モノ) の例
Pod • 便利になったコンテナ、Kubernetesの最小単位 • 1つのソフトウェアを構成する単位 ◦ ≒ 1つのIPアドレスでくくって良い範囲
ReplicaSet / Deployment • Podをまとめて管理するための仕組み • ReplicaSet: 同じ内容のPodを指定個数立てる • Deployment:
ReplicaSetを使い安全にバージョン移行
Service • 同じ内容のPod群に、均等に通信を振り分ける • Pod群を1つのIPアドレスでまとめることができる
宣言型のオブジェクト管理 • 「これをして下さい」でなく「この状態にして下さい」 ◦ 「マニフェスト」であるべき状態を書く • 暗黙知のない 安定した稼働
とにかく大量のコンテナを 楽に管理するための ノウハウが全て詰まっている 紹介した他にも、権限管理など様々なリソースがあります
Kubernetesの実態: リソース定義 と Reconciliation Loop
Reconciliation Loop • リソースを理想の状態に持っていくための操作
Reconciliation Loop • 以下の操作を一定時間ごとに繰り返す ◦ 理想の状態 (宣言されたマニフェスト) を取得 ◦ 実際の状態を観測
◦ 理想の状態と実際の状態を比較 ◦ 2つの差を埋めるように、実際の状態を変更する • Controllerと呼ばれる部品がこれを担当する • Self-Healingが簡単に実装できる
例: DeploymentがPodになるまで • 単純なReconciliation Loopの積み重ねで複雑性を実現
リソース定義 • 同じリソースについて「理想の状態」「実際の状態」を 同じ構造で表したい! • リソース定義で、どんなプロパティを持つのか定義する
定義されたリソースに対して Reconciliation Loopを回す ただそれだけのシステム ベースのアイデアは非常に単純
無限の拡張性
学校に行くバッグの準備を管理する • これにリソース定義とReconciliation Loopを回すと、 常に毎朝同じバッグの中身を保つことができる 即ち、ありとあらゆるモノは リソース定義とReconciliation Loopで管理できる! (と信じている人たちがKubernetesを作っている)
Kubernetesを拡張する • Custom Resource Definition ◦ ユーザー独自のリソース定義 • Custom Controller
◦ ユーザー独自のReconciliation Loopを回す • この二つの組み合わせがOperator Pattern ◦ これを使ってKubernetesを無限に拡張できる
Kubernetesエコシステム • Kubernetesを拡張して便利にするソフトウェア群
Kubernetesエコシステム • 最近はAI方面もアツい ◦ GPUを扱えるようにしたり、機械学習特化のジョブ スケジューラーだったり…
拡張性が、Kubernetesに どんな環境でも使える 汎用性を与えている これからも発展し続けて欲しい
まとめ
今日話したこと • コンテナ仮想化という技術 • 大規模なコンテナ管理を担うKubernetes • Kubernetesが提供するリソース • リソース定義とReconciliation Loop
• 無限の拡張性
ありがとう ございました Kubernetesを好きになろう