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でKafkaクラスターを動かしてみた
Search
hhiroshell
March 15, 2018
Technology
4.1k
2
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
KubernetesでKafkaクラスターを動かしてみた
Kafka Meet Up Japan #4 (#kafkajp)の発表資料です。
hhiroshell
March 15, 2018
More Decks by hhiroshell
See All by hhiroshell
Maximizing Launch Reliability: Controlled Lift-off for Reliable Application Startup on Kubernetes
hhiroshell
0
93
Kubernetes Multi-tenancy: Principles and Practices for Large Scale Internal Platforms
hhiroshell
0
270
Platform Engineering from the CNCF Perspective
hhiroshell
0
93
Maximizing the Launch Reliability: Ensuring Stable Application Lift-off and Orbit on Kubernetes
hhiroshell
0
140
CNCFの視点で捉えるPlatform Engineering - 最新動向と展望 / Platform Engineering from the CNCF Perspective
hhiroshell
0
410
Cloud Native Scalability for Internal Developer Platforms
hhiroshell
5
940
LINEヤフーにおける超大規模プラットフォーム実現への挑戦と学び / Challenges and Lessons in Building an Ultra-Large-Scale Platform at LY Corporation
hhiroshell
3
1.9k
Architecting Kubernetes-Based Internal Developer Platforms: Essential Patterns and Practices
hhiroshell
0
340
Discover Your Tailored Platform Strategy with Real-World Practice
hhiroshell
1
320
Other Decks in Technology
See All in Technology
え、こんなに早く改修できるの?──新人エンジニアとスクラムマスターの2人が語る、AI×アジャイル開発の現場
ysasago
2
530
時うどん〜Socket.getifaddrsで学ぶネットワーク編 / Tokiudon: The Socket.getifaddrs Edition
coe401_
3
120
データ界隈LT祭 第1回LT登壇
taromatsui_cccmkhd
2
1.5k
SREは、MCPとAutopilotをこう使え!
kazumax55
3
910
EventBridge に「合流」はない ― サーバーレスのワークフローを育てるということ / No Join in EventBridge
yusukeshimizu
2
270
Claude Code本って、 読む必要あるの?
oikon48
2
490
【技術的負債conf】事業成長に伴う技術的負債の説明責任とAIによるモニタリング、認知的負債について
i35_267
3
1.8k
AIで社員の自主発信に広報目線を組み込む
_mossann_t
0
130
2026_devsumi_ozono.pdf
o3
3
530
Cloudflare Workers 向けアプリを C# で構築する ~WASM Native AOT への道~
nenonaninu
1
530
幾何アルゴリズムで なめらかなピン操作を / iOSDC Japan 2026 / smoothpin
kazumanagano
0
360
顧客に向き合う開発組織へ。リアーキテクチャとフィーチャーチーム化で挑む組織改革
safie
0
2.1k
Featured
See All Featured
The Cost Of JavaScript in 2023
addyosmani
55
10k
New Earth Scene 8
popppiees
4
2.6k
Site-Speed That Sticks
csswizardry
13
1.5k
Agile that works and the tools we love
rasmusluckow
331
22k
The Hidden Cost of Media on the Web [PixelPalooza 2025]
tammyeverts
2
500
Raft: Consensus for Rubyists
vanstee
142
7.7k
Organizational Design Perspectives: An Ontology of Organizational Design Elements
kimpetersen
PRO
1
830
Making Projects Easy
brettharned
120
6.8k
Code Review Best Practice
trishagee
74
20k
Conquering PDFs: document understanding beyond plain text
inesmontani
PRO
4
3.1k
HU Berlin: Industrial-Strength Natural Language Processing with spaCy and Prodigy
inesmontani
PRO
0
700
Connecting the Dots Between Site Speed, User Experience & Your Business [WebExpo 2025]
tammyeverts
11
1k
Transcript
Cloud Native Developers JP Kubernetesで Kafkaクラスターを動かしてみた @hhiroshell 1
Cloud Native Developers JP • 早川 博(はやかわ ひろし) • 日本オラクル所属
– Java SE/EE, Microservices, DevOps • Ergodoxユーザー 2 自己紹介 @hhiroshell
Cloud Native Developers JP 発端 • KubernetesとKafkaを組み合わせたら、こんなことができるんじゃ ないかと思った – コマンドひとつでスケールアウト(brokerを追加)
– brokerが落ちたときに、オペレーションなしで自律回復 • やってみよう! 3
Cloud Native Developers JP と、その前に…。 Kubernetesとはなにか1分で解説します。 4
Cloud Native Developers JP Kubernetesが実現すること 5 大きなリソースのプール
Cloud Native Developers JP Kubernetesが実現すること 動け! 6
Cloud Native Developers JP Kubernetesが実現すること コンテナ化されたアプリ はい! 7
Cloud Native Developers JP Kubernetesが実現すること コンテナ化されたアプリ はい! 8
Cloud Native Developers JP Kubernetesが実現すること 利用者からのリクエスト わー! 9
Cloud Native Developers JP Kubernetesが実現すること がんばれ! 10
Cloud Native Developers JP Kubernetesが実現すること 11 はい! 自動で複数のマシンに分散配置 (HWを意識しない)
Cloud Native Developers JP Kubernetesが実現すること わー! コンテナが落ちたら自動で新たに立ち上げる 12
Cloud Native Developers JP 発端(再掲) • KubernetesとKafkaを組み合わせたら、こんなことができる気がし てきた。 – コマンドひとつでスケールアウト(brokerを追加)
– brokerが落ちたときに、オペレーションなしで自律回復 13
Cloud Native Developers JP KubernetesでKafkaを動かすまで 14
Cloud Native Developers JP どうやってKafkaを動かすか • Kubernetesにデプロイするモノの定義は、manifestファイル (json/yaml)に記述することができる • Kubernetesの管理用CLI(kubectl)を、manifestを噛ませて実行する
と、所望のオブジェクト群がKubernetesに配備される → Kafka用のmanifestファイルを用意してkubectl実行! 15
Cloud Native Developers JP manifestファイルの準備 • 先人の知恵を借りました m(_ _)m –
https://github.com/Yolean/kubernetes-kafka – 手元のKubernetesのバージョン(1.7.x)に合わせて、Release v2.1.0を利用 – 環境に合わせて一部手直し • (参考)Helmを使って配備するものもあります – https://github.com/kubernetes/charts/tree/master/incubator/kafka 16 Helmは複数のmanifestをパッケージとして管理するためのツール。 多数のKubernetesオブジェクトのセットをデプロイするのに便利です。 i
Cloud Native Developers JP Kubernetesでbroker群が立ち上がる仕組み • zookeeperが配備済みの状態から説明します 17 zookeeper Kubernetesクラスター
ストレージ (e.g. AWS EBS)
Cloud Native Developers JP Kubernetesでbroker群が立ち上がる仕組み • server.propertiesのテンプレートとそれを編集するスクリプトを ConfigMapオブジェクトに含めて配備する 18 zookeeper
broker-config init.sh server.properties Kubernetesクラスター ストレージ (e.g. AWS EBS) ConfigMap server.propertiesのテンプレート server.propertiesを編集するスクリプト
Cloud Native Developers JP Kubernetesでbroker群が立ち上がる仕組み • brokerを動かすためのPodの配備を開始 • VolumeにConfigMap内のファイルがコピーされる 19
zookeeper broker-config init.sh server.properties init.sh server.properties Kubernetesクラスター ストレージ (e.g. AWS EBS) kafka-0 Pod ファイルをコピー Volume
Cloud Native Developers JP Kubernetesでbroker群が立ち上がる仕組み • initContanerが立ち上がり、前ページのVolumeをマウント • init.shを実行して、環境に合わせてserver.propertiesを書き換え 20
zookeeper broker-config init.sh server.properties init.sh server.properties Kubernetesクラスター ストレージ (e.g. AWS EBS) kafka-0 init-cofnig マウント init.shを実行して server.propertiesを書き換え initContainer
Cloud Native Developers JP Kubernetesでbroker群が立ち上がる仕組み • brokerを可動させるコンテナを起動 • brokerのデータを保持するためのVolumeオブジェクトをマウント 21
zookeeper kafka-0 broker-config init.sh server.properties broker init.sh server.properties Kubernetesクラスター ストレージ (e.g. AWS EBS) Container マウント
Cloud Native Developers JP Kubernetesでbroker群が立ち上がる仕組み • PersistentVolumeClaim(PVC)に記述されたストレージの要件(容量、 サービスレベルなど)に従い、StorageClassがプロビジョニング 22 zookeeper
kafka-0 broker-config init.sh server.properties broker init.sh server.properties Kubernetesクラスター ストレージ (e.g. AWS EBS) PersistentVolumeClaim(PVC) StorageClass PVCに記述された要件に従い、 StorageClassがストレージを プロビジョニング
Cloud Native Developers JP Kubernetesでbroker群が立ち上がる仕組み • brokerのプロセスを起動する 23 zookeeper kafka-0
broker-config init.sh server.properties broker init.sh server.properties Kubernetesクラスター ストレージ (e.g. AWS EBS) brokerのプロセスを起動
Cloud Native Developers JP Kubernetesでbroker群が立ち上がる仕組み • brokerが起動した状態 24 zookeeper kafka-0
broker-config init.sh server.properties broker init.sh server.properties Kubernetesクラスター ストレージ (e.g. AWS EBS)
Cloud Native Developers JP Kubernetesでbroker群が立ち上がる仕組み • 設定されたレプリカ数に達するまで繰り返し 25 zookeeper kafka-0
broker-config init.sh server.properties broker container init.sh server.properties Kubernetesクラスター ストレージ (e.g. AWS EBS) kafka-1 init.sh server.properties kafka-1 繰り返し…
Cloud Native Developers JP チュートリアルも公開中 • 具体的な操作手順やmanifestの中身については、チュートリアルを 参照ください – https://github.com/oracle-japan/cndjp3/blob/master/handson1.md
26
Cloud Native Developers JP Demo 27
Cloud Native Developers JP Demoでやること • Kubernetesにbrokerを配備 • スケールアウト •
brokerの障害からの自律的な回復 28
Cloud Native Developers JP まとめ • KubernetesでKafkaがちゃんと動いた • スケールアウトは道半ば –
broker追加まではいいが、そのあとパーティションをリバランスするところ でもうひと工夫必要 • brokerに障害があっても自律回復できることがわかった • manifestがありさえすればどこのKubernetes環境にもデプロイOK 29
Cloud Native Developers JP お知らせ Cloud NativeなOSSの勉強会シリーズ 「Cloud Native Developers
JP」 30 https://cnd.connpass.com/event/
Cloud Native Developers JP Fin. 31