Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Apache Kafka on Kubernetes 基礎編 ワークショップ QA 2021...
Search
suzukiry
November 30, 2021
Technology
160
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Apache Kafka on Kubernetes 基礎編 ワークショップ QA 2021-11-24 / Apache Kafka Workshop QA 2021-11-24
suzukiry
November 30, 2021
More Decks by suzukiry
See All by suzukiry
OpenShiftの内部レジストリって何?/What's OpenShift Image Registry
suzukiry
1
1.9k
Strimzi Kafka Operator を試す Part 3 / Try Strimzi Part3
suzukiry
0
640
Apache Kafka on Kubernetes 基礎編 ワークショップ QA 2022-01-12 / Apache Kafka Workshop QA 2022-01-12
suzukiry
0
130
GitOps と Apache Kafka Part 1 / GitOps and Apache Kafka Part 1
suzukiry
0
330
Strimzi Kafka Operator を試す Part 2 / Try Strimzi Part2
suzukiry
0
400
Apache KafkaとKubernetes / Kafka and K8s
suzukiry
1
1.6k
Other Decks in Technology
See All in Technology
20260804_Q4AzureUpdateBite_FabricDataAgentの精度を高める設計.pdf
matayuuu
1
120
AI駆動開発は個人技からチーム戦へ:組織でAIを使いこなすための実践設計
moongift
PRO
0
480
攻撃と防御で学ぶAI時代のプロダクトセキュリティ演習
recruitengineers
PRO
8
2.2k
ラジオの科学
frievea
0
280
クラウドセキュリティ入門 ~安全なクラウド利用のための基礎知識~
lhazy
12
8.4k
AI ネイティブな組織に Gemini Enterprise Agent Platform がなぜ必要なのか
asei
1
190
もう一度考える SRE チームの作り方・育て方 / Rethinking SRE #1: Building and Growing SRE Teams
rrreeeyyy
6
1k
つくって納得、つかって実感! 大規模言語モデルことはじめ ver2.0
recruitengineers
PRO
4
1.2k
Data Hubグループ 紹介資料
sansan33
PRO
0
3.2k
JavaScript 研修 (2026)
recruitengineers
PRO
2
470
Invisible to AI? Making TYPO3 Sites Quotable by AI Search Systems
wolfgangwagner
0
170
Service Connect 上のサービスに ECS Service の外側から到達できなかった話
ota1022
1
190
Featured
See All Featured
Reflections from 52 weeks, 52 projects
jeffersonlam
356
21k
The World Runs on Bad Software
bkeepers
PRO
72
12k
My Coaching Mixtape
mlcsv
0
210
Ten Tips & Tricks for a 🌱 transition
stuffmc
0
160
The Art of Programming - Codeland 2020
erikaheidi
57
14k
New Earth Scene 8
popppiees
3
2.5k
Rebuilding a faster, lazier Slack
samanthasiow
85
9.6k
DevOps and Value Stream Thinking: Enabling flow, efficiency and business value
helenjbeal
1
310
Improving Core Web Vitals using Speculation Rules API
sergeychernyshev
21
1.6k
Effective software design: The role of men in debugging patriarchy in IT @ Voxxed Days AMS
baasie
0
470
Leo the Paperboy
mayatellez
8
2.1k
YesSQL, Process and Tooling at Scale
rocio
174
15k
Transcript
Apache Kafka on Kubernetes基礎編 ワークショップ QA 2021.11.24 分
Strimzi • Apache KafkaのクラスタをKubernetes上で管理するOperator ◦ オープンソースプロジェクト( Apache License 2.0) ◦
Cloud Native Computing Foundation (CNCF) • Strimzi で提供するもの: ◦ Apache Kafka, Connect, Zookeeper, MirrorMaker2 の コンテナイメージ ◦ Apache Kafka clusters, topics and users を管理するKubernetes Operators
QA
Note: 冪等性はありますか? • Kafkaと外部サービス(DBなど)とが接続する場合、冪等性を完全に保つことはでき ません。 ◦ メッセージの重複が発生する可能性があります *。 • Kafka
StreamsにはExactly Once Semantics (EOS)があります。 ◦ KIP-129: Streams Exactly-Once Semantics • よって、メッセージの重複検知の仕組みが必要。 ◦ ◦ EIPのIdempotent Consumerパターン ◦ Outboxパターン** Q. *O’Reilly, Designing Event-DriveSystems:Chapter 12: Transactions, but Not as We Know Them - What Can’t Transactions Do? **マイクロサービスとメッセージングのなぜ [疑問編]:https://rheb.hatenablog.com/entry/microservices_messaging_2
Kafkaにおける冪等性の関連設定 • Kafka Producer ◦ Kafka内のイベントの重複、順序性 *を保証する設定の追加 ▪ “enable.idempotence=true” ◦
Producerのゾンビプロセス対策として、ユニークなトランザクション IDを利用 ▪ “transactional.id” (default null) • Kafka Consumer ◦ Commitされたレコードのみを poll ▪ “isolation.level=read_commited” (default read_uncommited) • Kafka Streams ◦ Kafka Streams内のConsumer/Producerにトランザクション処理を行う設定の追加 ▪ “processing.guarantee=exactly_once” (default at_least_once) * Consumerの障害時には順序性は保証されなくなるので注意。
Note: Partition 0 Partition 1 Partition 2 Partition 3 Topic
T1 Consumer1 Consumer Group Consumer2 Consumer3 Consumer4 Partition 0 Partition 1 Partition 2 Partition 3 Topic T1 Consumer1 Consumer Group Consumer2 Consumer3 Consumer4 リバランシング 図 Consumer 追加変更・障害時のリバランシング • Consumer グループ内のConsumerの設定変更や障害があった場合、該当パー ティションをその他のConsumerが引き継ぎます。 • ConsumerリーダーとGroupCoordinatorの連携によって各Consumerへのパー ティション割り当てを行います。 リバランシングとは? Q.
リバランシングConsumer グループ • Consumer リーダー ◦ Consumer Groupに最初に参加したConsumerはリーダー。 ◦ Consumer
リーダーは、Group Coordinator(後述)と連携し、各Consumerに パーティションのサブセットを割り当てます。 ◦ 割り当て方には、パーティション割り当てポリシー(PartitionAssignor)が使われ ます。 ▪ Defaultポリシーには、RangeとRoundRobinとStickyAssignorがある。 ▪ 独自の割り当て戦略を実装することも可能。
リバランシングConsumer グループ • GroupCoordinator ◦ 各Consumerグループに対して、Kafka Brokerに一つ存在。 ◦ GroupCoordinatorは、各Consumerとハートビートを行い、死活監視を行う。 ◦
Consumerの離脱を検知した時、GroupCoordinatorは生きているConsumerの みのリストをConsumerリーダーに受け渡す。その後、Consumerリーダーを任せ れたConsumerが、グループ内のConsumerのアサインメントを決める(次の図)
新しいコンシューマが参加または離脱すると、パーティションを 再割り当てするリバランシングが行われている(Eager Rebalancing) リバランシング • 動作の流れ 参考:Consumer Group Internals: Rebalancing,
Rebalancing.... Coordinatorから リーダーを任されている 各Consumerへの アサインメントの決定 メンバーのハートビートが切れるとリバ ランスのステートへ
Note: Eager Rebalancing = Stop-the-world Rebalancing • Stop-the-world Rebalancing ◦
リバランシングが起きるとパーティションをリリースしないといけない(すべてのグループメンバーを 停止) ◦ 運用や障害時にこのリバランシングではコストが大きい ◦ 例: ▪ スケールアップ・ダウン ▪ Kubernetes プロセスダウン ▪ ローリングアップグレード/アップデート Note: • Incremental Cooperative Rebalancing ◦ 稼働しているプロセスやタスクはそのままに、リバ ランシングを行う。 ◦ まだデフォルト設定になっていないようなので、利 用時の設定方法は要確認。 KIP Applied to Released in KIP-429 Kafka Consumer 2.4.0 KIP-415 Kafka Connect 2.3.0 KIP-441 Kafka Stream 2.6.0 そこで Incremental Cooperative Rebalancing Note:
その他
AMQ Streams • Apache Kafka のエンタープライズ向けディストリビューション ◦ 2018年から Kafka をサポート、Kubernetes
上でも提供 ◦ Red Hat AMQ Streams としてローンチ • 提供形態 ◦ Red Hat Enterprise Linux ◦ Red Hat OpenShift Container Platform Apache Kafka on Kubernetes 基礎編 ワークショップ: https://redhat-open.connpass.com/ Strimzi/AMQ Streamsをハンズオンをしてみたい
Thank you