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
KubernetesのPetSetsの話
Search
Kazuto Kusama
September 16, 2016
Technology
240
1
Share
KubernetesのPetSetsの話
社内コンテナ勉強会で喋った機能。
PetSetsを使うことで、従来のStatefulなアプリケーションもKubernetes上で動かしやすくなります
Kazuto Kusama
September 16, 2016
More Decks by Kazuto Kusama
See All by Kazuto Kusama
プラットフォームエンジニアリングはAI時代の開発者をどう救うのか
jacopen
9
5.1k
OpenClawで回す組織運営
jacopen
3
1.1k
SREの仕事を自動化する際にやっておきたい5つのポイント
jacopen
6
1.6k
AI時代のインシデント対応 〜時代を切り抜ける、組織アーキテクチャ〜
jacopen
4
380
AI時代の開発とPlatform Engineeringについて考える
jacopen
0
200
AI によってシステム障害が増える!? ~AI エージェント時代だからこそ必要な、インシデントとの向き合い方~
jacopen
4
400
インシデント対応に必要となるAIの利用パターンとPagerDutyの関係
jacopen
0
390
今日からはじめるプラットフォームエンジニアリング
jacopen
8
5k
Platform Engineeringで クラウドの「楽しくない」を解消しよう
jacopen
8
2k
Other Decks in Technology
See All in Technology
TypeScriptはどのようにどこまで推論できるのか ─ とにかく as は禁止で
ypresto
3
420
その英語学習、AWSで代替できませんか?
suzutatsu
1
250
イベントで大活躍する電子ペーパー名札 〜その3〜 / ビジュアルプログラミングIoTLT vol.23
you
PRO
0
140
コーディングエージェントはTypeScriptの 型エラーをどう自己修正しているのか
melonps
4
480
ラズパイ & Picoで入門:Zephyr(RTOS)の環境構築からビルドまでの紹介
iotengineer22
0
240
【禁断】Obsidianの第二の脳に「知の巨人」と呼ばれた師匠の脳をロードしてみた
nagatsu
0
6.5k
LLM時代のリファクタリング戦略_AIエージェントによる段階的・安全なTS移行方法
play_inc
0
180
A Harness for Behaviour: how to get AI to generate code that does what we intend, or "TDD in the age of AI"
xpmatteo
0
420
Gradle×GitHub_ActionsでCI時間を約50%短縮 ジョブ分割の設計と落とし穴 / Cutting CI Time by ~50% with Gradle and GitHub Actions: Job-Splitting Design and Pitfalls
takatty
0
120
Typiaで配信JSONの安全性を構造的に担保する(TSKaigi2026)
righttouch
PRO
1
170
GitHub Copilot のこれまでとこれから: From Copilot to Collaborative Agents
yuriemori
1
180
「使われるデータ基盤」を目指してデータアナリストとワークショップをやった話
jackojacko_
2
860
Featured
See All Featured
AI in Enterprises - Java and Open Source to the Rescue
ivargrimstad
0
1.3k
Tips & Tricks on How to Get Your First Job In Tech
honzajavorek
1
510
Breaking role norms: Why Content Design is so much more than writing copy - Taylor Woolridge
uxyall
0
290
Taking LLMs out of the black box: A practical guide to human-in-the-loop distillation
inesmontani
PRO
3
2.2k
DevOps and Value Stream Thinking: Enabling flow, efficiency and business value
helenjbeal
1
190
A designer walks into a library…
pauljervisheath
211
24k
Fireside Chat
paigeccino
42
3.9k
New Earth Scene 8
popppiees
3
2.3k
Un-Boring Meetings
codingconduct
0
300
Everyday Curiosity
cassininazir
0
210
Collaborative Software Design: How to facilitate domain modelling decisions
baasie
1
220
B2B Lead Gen: Tactics, Traps & Triumph
marketingsoph
0
120
Transcript
LTͷ1FU4FUTͷ
Kazuto Kusama @jacopen
࠷ۙͷ ࠷ۙͷ͕ͬͯΔϓϩδΣΫτͰɺͳΜͱ͔ελοΫͷͳΜͱ͔ ͍ͬͯ͏ͭΛ͍ͬͯΔͷͰɺRabbitMQ͕ඞཁʹͳͬͨ ӡ༻ج൫ʹk8sΛ͍ͬͯΔΜͰɺRabbitMQΫϥελΛk8sʹ͏
k8sͰී௨ʹ্͛ͨ߹ (Deployments, Replication Controller) kind: Deployment metadata: name: rabbitmq spec:
replicas: 3 template: metadata: labels: app: rabbitmq spec: containers: - name: rabbitmq image: rabbitmq:latest
k8sͰී௨ʹ্͛ͨ߹ (Deployments, Replication Controller) jacopen@ssh2:~/kubernetes$ kubectl get pods NAME READY
STATUS RESTARTS AGE rabbitmq-4239234776-8bs65 1/1 Running 0 2m rabbitmq-4239234776-amzjt 1/1 Running 0 2m rabbitmq-4239234776-wq6s4 1/1 Running 0 2m
MQ MQ MQ 3ඖͷRabbitMQ
MQ MQ MQ 3ඖͷRabbitMQ ΫϥελΛΜͰΈΑ͏
$ rabbitmqctl join_cluster rabbit@rabbitmq-0 OR rabbitmq.config [ { rabbit, [
{loopback_users, []}, {cluster_nodes, {[‘rabbit@rabbitmq-0', 'rabbit@rabbitmq-1'], ram}} ] } ].
MQ MQ MQ ΄ɺϗετ໊ɾɾɾ rabbitmq-4239234776-8bs65 rabbitmq-4239234776-amzjt rabbitmq-4239234776-wq6s4 ܾ·ͬͨϗετ໊ʹͳΒͳ্͍ʹɺ૬ޓͷ௨৴खஈ͕ͳ͍
MQ MQ MQ ແཧཧk8sͰ࣮ݱ rabbitmq-4239234776-8bs65 rabbitmq-4239234776-amzjt rabbitmq-4239234776-wq6s4 Service rabbitmq-0 Service
rabbitmq-1 Service rabbitmq-2
MQ MQ MQ ແཧཧk8sͰ࣮ݱ rabbitmq-4239234776-8bs65 rabbitmq-4239234776-amzjt rabbitmq-4239234776-wq6s4 Service rabbitmq-0 Service
rabbitmq-1 Service rabbitmq-2
MQ MQ MQ yamlࠈ rabbitmq-4239234776-8bs65 rabbitmq-4239234776-amzjt rabbitmq-4239234776-wq6s4 Service rabbitmq-0 Service
rabbitmq-1 Service rabbitmq-2 yaml yaml yaml yaml yaml yaml
MQ MQ MQ ϝϯςͷͨΊʹఀࢭ͠Α͏ $ kubectl delete -f … rabbitmq-4239234776-8bs65
rabbitmq-4239234776-amzjt rabbitmq-4239234776-wq6s4 Service rabbitmq-0 Service rabbitmq-1 Service rabbitmq-2 yaml yaml yaml yaml yaml yaml
ϝϯςͷͨΊʹఀࢭ͠Α͏ rabbitmq-4239234776-8bs65 rabbitmq-4239234776-amzjt rabbitmq-4239234776-wq6s4
$BUUMF Ոச
Cattle or Pets • εέʔϧ͢ΔΞʔΩςΫνϟͷͨΊʹɺ֤ϊʔυΛՈசͷΑ ͏ʹѻ͏ඞཁ͕͋Δ • ΫϥυωΠςΟϒͳੈքͰׂͱ;ͭʔ • ͱ͍͑ɺશͯͷΞϓϦ͕ͦ͏࡞ΕΔΘ͚͡Όͳ͍
PetSets is Կ • ݱߦͷk8s 1.3ͰΞϧϑΝ൛͕࣮͞Εͨػೳ • ΫϥυωΠςΟϒͰͳ͍;ͭʔͷΞϓϦέʔγϣϯΛ k8sͰಈ͔͘͢͠͠Α͏ͥ ɹͱ͍͏ػೳ
PetSetͰ্͛ͨ߹ jacopen@ssh2:~/kubernetes$ kubectl get pods NAME READY STATUS RESTARTS AGE
rabbitmq-0 1/1 Running 0 18s rabbitmq-1 1/1 Running 0 12s rabbitmq-2 1/1 Running 0 7s
root@rabbitmq-0:/# hostname rabbitmq-0 root@rabbitmq-0:/# ip a 1: lo: <LOOPBACK,UP,LOWER_UP> mtu
65536 qdisc noqueue state UNKNOWN group default qlen 1 link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 inet 127.0.0.1/8 scope host lo valid_lft forever preferred_lft forever inet6 ::1/128 scope host valid_lft forever preferred_lft forever 727: eth0@if728: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1350 qdisc noqueue state UP group default link/ether 02:42:ac:20:52:11 brd ff:ff:ff:ff:ff:ff inet 172.32.82.17/24 scope global eth0 valid_lft forever preferred_lft forever inet6 fe80::42:acff:fe20:5211/64 scope link tentative dadfailed valid_lft forever preferred_lft forever root@rabbitmq-0:/# ping rabbitmq-1.rabbitmq PING rabbitmq-1.rabbitmq.petset.svc.cluster.local (172.32.41.13) 56(84) bytes of data. 64 bytes from 172.32.41.13: icmp_seq=1 ttl=62 time=0.575 ms 64 bytes from 172.32.41.13: icmp_seq=2 ttl=62 time=0.752 ms
0 1 2 0൪͔Βॱ൪ʹ্͛ͯ͘ΕΔ
0 1 2 େ͖͍൪߸͔Βॱʹམͱͯ͘͠ΕΔ ŋŋŋͣ
http://kubernetes.io/docs/user-guide/petset/
ॴײ • ·ͩ·ͩαͳͷͰ͓͔͠ͳಈ͖ଟ͠ • ࣮ઓೖ·ͩແཧɻ1.41.5͋ͨΓʹظ • ͱ͍͑ɺStateless͚ͩͰͳ͘Statefulαϙʔτ͢ΔྲྀΕ ແࢹग़དྷͳ͍Ͷ