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の魅力 / osc19tk_yu...
Search
Sponsored
·
Ship Features Fearlessly
Turn features on and off without deploys. Used by thousands of Ruby developers.
→
yukirii
November 24, 2019
Technology
1k
3
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
コンテナオーケストレーションにとどまらないKubernetesの魅力 / osc19tk_yukirii_k8s
https://www.ospn.jp/osc2019-fall/modules/eguide/event.php?eid=62
yukirii
November 24, 2019
More Decks by yukirii
See All by yukirii
Operator でどう変わる? これからのデータベース運用 / cndt2019_k8s_operator
yukirii
14
6.9k
Other Decks in Technology
See All in Technology
從開發到部署全都交給 AI:實作 AI 驅動的自動化流程
appleboy
0
180
現場のトークンマネジメント
dak2
1
200
自分が詳しくない領域でAIを使う #プロヒス2026
konifar
20
7.9k
Oracle Cloud Infrastructure:2026年6月度サービス・アップデート
oracle4engineer
PRO
1
380
[チョークトーク資料]AWS DevOps Agent を使いこなす / AWS Dev Ops Agent Chalk Talk AWS Summit Japan 2026
kinunori
4
810
ご挨拶「10周年を迎える共創ラボのこれまでとこれから」
iotcomjpadmin
0
150
AWS Security Hub CSPMの成功・失敗体験
cmusudakeisuke
0
590
CVE-2026-20833_脆弱性対応とAES 化について
jukishiya
0
210
週末にループ・エンジニアリングの理解を深めるためのスライド
nagatsu
0
620
WebGIS AI Agentの紹介
_shimizu
0
590
テスト設計の本質を改めて考えてみる~生成AIを活用する時代だからこそ、作ったテストの説明性を高めよう~
yamasaki696
1
150
飲食店もAIで。レジ締めやハンディシステムをつくってる話 / Using AI for restaurant management
vtryo
0
210
Featured
See All Featured
SEO in 2025: How to Prepare for the Future of Search
ipullrank
3
3.6k
BBQ
matthewcrist
89
10k
Building AI with AI
inesmontani
PRO
1
1.1k
No one is an island. Learnings from fostering a developers community.
thoeni
21
3.8k
The Director’s Chair: Orchestrating AI for Truly Effective Learning
tmiket
1
200
VelocityConf: Rendering Performance Case Studies
addyosmani
333
25k
Principles of Awesome APIs and How to Build Them.
keavy
128
18k
コードの90%をAIが書く世界で何が待っているのか / What awaits us in a world where 90% of the code is written by AI
rkaga
62
44k
Designing Experiences People Love
moore
143
24k
KATA
mclloyd
PRO
35
15k
Amusing Abliteration
ianozsvald
1
210
Writing Fast Ruby
sferik
630
63k
Transcript
ίϯςφΦʔέετϨʔγϣϯʹ ͱͲ·Βͳ͍ ,VCFSOFUFTͷັྗ גࣜձࣾαΠόʔΤʔδΣϯτ ٕज़ຊ෦αʔϏεϦϥΠΞϏϦςΟάϧʔϓ ۅҪ༞थ 0QFO4PVSDF$POGFSFODF5PLZP'BMM!໌େֶ
"CPVUNF 2 ,*3**:VLJ *OGSBTUSVDUVSF&OHJOFFS גࣜձࣾαΠόʔΤʔδΣϯτ ٕज़ຊ෦αʔϏεϦϥΠΞϏϦςΟάϧʔϓ $FSUJpFE,VCFSOFUFT"ENJOJTUSBUPS ZVLJSJJ ZVLJSJJ@
,VCFSOFUFTͷಛͱಈ࡞Λ͓͞Β͍ w %FDMBSBUJWF"1* w 3FDPODJMJBUJPO-PPQ w $VTUPN3FTPVSDF$VTUPN$POUSPMMFS ,VCFSOFUFTͷಛΛ׆༻͢Δ
w ,VCFSOFUFT0QFSBUPS w $MVTUFS"1* ·ͱΊ 3
,VCFSOFUFTͷಛͱಈ࡞ ͓͞Β͍ ಛ%FDMBSBUJWF એݴతͳ "1*ͱઃఆ w ϢʔβγεςϜͷl·͍͠ঢ়ଶz EFTJSFETUBUF Λఆٛ w
"1*Λհͯ͠ΫϥελʹొˠϦιʔεΦϒδΣΫτ͕࡞͞ΕΔ Service apiVersion: v1 kind: Service metadata: name: my-service spec: type: LoadBalancer ports: - protocol: TCP port: 80 targetPort: 8080 selector: app: my-app my-service.yaml ྫ4FSWJDF UZQF-PBE#BMBODFS Ϣʔβެ։͢ΔΞϓϦέʔγϣϯϓϩτίϧϙʔτ൪߸Λࢦఆ create/modify object Kubernetes API kubectl apply Cloud
,VCFSOFUFTͷಛͱಈ࡞ ͓͞Β͍ ಛίϯτϩʔϥʹΑΔ3FDPODJMJBUJPO-PPQ ௐϧʔϓ w ,VCFSOFUFTΫϥελ༷ʑͳίϯτϩʔϥͷΈ߹ΘͤͰಈ͍͍ͯΔ w ֤ίϯτϩʔϥࣗͷ୲͢ΔϦιʔεΦϒδΣΫτΛಡΈऔΓ ఆٛ͞Εͨཁ݅Λຬͨ͢Α͏ʹϦιʔεͷ࣮ମ
BDUSVBMTUBUF Λૢ࡞ Service LB Service Controller watch create/modify 0CTFSWF %J⒎ "DU Cloud ΦϒδΣΫτͷ ߋ৽Λݕ ΦϒδΣΫτͷ༰ͱ ࣮ࡍͷϦιʔεͷঢ়ଶΛ ൺֱ ͕ࠩ͋Δ߹ ࣮ࡍͷϦιʔεΛ मਖ਼͢Δ
,VCFSOFUFTͷಛͱಈ࡞ ͓͞Β͍ ಛϢʔβಠࣗͷϦιʔείϯτϩʔϥΛ࣮Ͱ͖Δ w $VTUPN3FTPVSDF w ϢʔβʹΑͬͯಠࣗʹఆٛ͞ΕͨϦιʔε w $VTUPN3FTPVSDF%FpOJUJPOT $3%T
ʹΑͬͯLT"1*Λ֦ு͢Δͱѻ͑Δ w $VTUPN$POUSPMMFS w ϢʔβʹΑͬͯಠࣗʹ࣮͞Εͨίϯτϩʔϥ $VTUPN3FTPVSDF %FpOJUJPO %BUBCBTF$MVTUFS $POUSPMMFS $VTUPN$POUSPMMFS %BUBCBTF$MVTUFS $VTUPN3FTPVSDF kind: DatabaseCluster kind: CustomResourceDefinition spec: names: kind: DatabaseCluster Kubernetes API watch Reconcile Loop
,VCFSOFUFTͷಛΛ׆༻͢Δ ಛ%FDMBSBUJWF"1*ͱઃఆ ಛίϯτϩʔϥʹΑΔ3FDPODJMJBUJPO-PPQ ಛಠࣗͷϦιʔείϯτϩʔϥΛ࣮Ͱ͖Δ ,VCFSOFUFT0QFSBUPS ΞϓϦέʔγϣϯΫϥυϦιʔεΛࣗཧ $MVTUFS"1* ,TΫϥελͰ,TΫϥελΛ࡞ͬͯཧ͢Δ ୯ʹίϯςφΛσϓϩΠ͢Δ͚ͩͰͳ͘ ͜ΕΒͷಛΛ׆͔ͨ͠։ൃɾӡ༻Λ͢Δʹʜ
,VCFSOFUFT0QFSBUPS 8 ಛఆͷΞϓϦέʔγϣϯΛ,VCFSOFUFT্Ͱ࣮ߦɾཧ͢ΔͨΊͷ ιϑτΣΞ ίϯτϩʔϥ w த$3%ͱΧελϜίϯτϩʔϥ w ΞϓϦέʔγϣϯͷӡ༻্ͷφϨοδΛίϯτϩʔϥͱ࣮ͯ͠
w ίϯτϩʔϥࣗମίϯςφԽ͞ΕͨΞϓϦͱͯ͠,VCFSOFUFT্Ͱಈ࡞͢Δ %BUBCBTF$MVTUFS $POUSPMMFS $VTUPN$POUSPMMFS %BUBCBTF$MVTUFS $VTUPN3FTPVSDF watch Reconcile Loop %BUBCBTF$MVTUFS
,VCFSOFUFT0QFSBUPS 9 ಛఆͷΞϓϦέʔγϣϯΛ,VCFSOFUFT্Ͱ࣮ߦɾཧ͢ΔͨΊͷ ιϑτΣΞ ίϯτϩʔϥ w த$3%ͱΧελϜίϯτϩʔϥ w ΞϓϦέʔγϣϯͷӡ༻্ͷφϨοδΛίϯτϩʔϥͱ࣮ͯ͠
w ίϯτϩʔϥࣗମίϯςφԽ͞ΕͨΞϓϦͱͯ͠,VCFSOFUFT্Ͱಈ࡞͢Δ %BUBCBTF$MVTUFS $POUSPMMFS $VTUPN$POUSPMMFS %BUBCBTF$MVTUFS $VTUPN3FTPVSDF watch Reconcile Loop %BUBCBTF$MVTUFS ྫσʔλϕʔεγεςϜ ϊʔυΛͭʹઃఆ
,VCFSOFUFT0QFSBUPS 10 ಛఆͷΞϓϦέʔγϣϯΛ,VCFSOFUFT্Ͱ࣮ߦɾཧ͢ΔͨΊͷ ιϑτΣΞ ίϯτϩʔϥ w த$3%ͱΧελϜίϯτϩʔϥ w ΞϓϦέʔγϣϯͷӡ༻্ͷφϨοδΛίϯτϩʔϥͱ࣮ͯ͠
w ίϯτϩʔϥࣗମίϯςφԽ͞ΕͨΞϓϦͱͯ͠,VCFSOFUFT্Ͱಈ࡞͢Δ %BUBCBTF$MVTUFS $POUSPMMFS $VTUPN$POUSPMMFS %BUBCBTF$MVTUFS $VTUPN3FTPVSDF watch Reconcile Loop %BUBCBTF$MVTUFS ରԠ͢Δίϯτϩʔϥ͕ ઃఆΛͱʹ1PEΛσϓϩΠ
,VCFSOFUFT0QFSBUPS 11 0QFSBUPSͰͲΜͳ͜ͱ͕Ͱ͖Δʁ ྫσʔλϕʔε w Ϋϥελͷ࡞আ w Ϋϥελͷεέʔϧ w োͷݕͱ෮چ
w όοΫΞοϓϦετΞͷࣗಈԽ ྫΫϥυ w Ϋϥυ্ͷϦιʔεͷཧ w Ϛωʔδυ%# w ΦϒδΣΫτετϨʔδͷόέοτ w ͳͲʜ
,VCFSOFUFT0QFSBUPS 12 0QFSBUPSΛ͕͢͞ʹʁ BXFTPNFPQFSBUPST ެ։͞Ε͍ͯΔ0QFSBUPSΛΞϓϦέʔ γϣϯ͝ͱʹूͨ͠υΩϡϝϯτ 0QFSBUPS)VCJP 0QFSBUPSΛΞϓϦέʔγϣϯ։ൃ ϑΣʔζผʹ·ͱΊͨαΠτ
,VCFSOFUFT0QFSBUPS 13 IUUQTTQFBLFSEFDLDPNZVLJSJJDOEULTPQFSBUPS 0QFSBUPSʹؔ͢ΔΑΓৄ͍͠ղઆʜ
$MVTUFS"1* w ,VCFSOFUFTͷαϒϓϩδΣΫτ w $MVTUFS-JGFDZDMF4*(ͷͱ։ൃ͕ਐΊΒΕ͍ͯΔ w ΫϥελͷϥΠϑαΠΫϧʹؔΘΔૢ࡞Λ,Tͷએݴతͳ"1*Ͱఏڙ͢Δ w Ϋϥελͷʮ࡞ɾεέʔϧɾΞοϓάϨʔυɾআʯ w
֤छΫϥυΦϯϓϨϛεͳͲͷڥͰར༻Մೳ 5IF$MVTUFS"1*#PPL IUUQTDMVTUFSBQJTJHTLTJP
,VCFSOFUFTΫϥελͷߏஙɾӡ༻େมʂ Πϯϑϥߏங 44-ূ໌ॻͷཧ ωοτϫʔΫ 7. ετϨʔδ ߋ৽ ൃߦ ϊʔυஔ ιϑτΣΞͷཧ
ύοέʔδͷΠϯετʔϧ ΫϥελΞυΦϯͷಋೖ LTͷόʔδϣϯΞοϓ $MVTUFS"1*͕ొͨ͠എܠ
ΫϥελϚωδϝϯτ༻ͷ༷ʑͳπʔϧ͕ొ w LVCFTQSBZ,VCFSOFUFTΛΠϯετʔϧ͢Δ"OTJCMF1MBZCPPL w LPQT"84ڥʹ,VCFSOFUFTΫϥελΛߏஙɾཧ͢Δπʔϧ w LVCFBENΫϥελίϯϙʔωϯτͷϒʔτετϥοϓʹಛԽͨ͠πʔϧ ͳͲʜɹ πʔϧʹΑͬͯ࡞ۀϥΫʹͳͬͨʂ͕ɺ ͜ͷΑ͏ʹͰ͖Δͱ͏Ε͍͠
w ڥπʔϧʹґଘ͠ͳ͍ڞ௨ͷΫϥελཧํ๏͕΄͍͠ wରԠڥΛՃ͢ΔͨΊͷ࣮؆୯ʹ࣮Ͱ͖Δͱ͏Ε͍͠ w ΫϥελͷϊʔυͷεέʔϧΞοϓσʔτΛࣗಈԽ͍ͨ͠ w ͜ΕΒͷૢ࡞Λએݴతͳ"1*ઃఆͰ࣮ݱ͍ͨ͠ Ͳ͏ͬͯղܾ͢Δʁʁ $MVTUFS"1*͕ొͨ͠എܠ
$MVTUFS"1*͕ొͨ͠എܠ ,VCFSOFUFT͕͢Ͱʹ͍࣋ͬͯΔΞΠσΟΞΛ͏ ࠶ͼ4FSWJDFͷྫ w ઃఆ :".-ϚχϑΣετ ͷ༰ڥඇґଘ˞ w ֤Ϋϥυ͚ͷίϯτϩʔϥ͕ڥʹ߹Θͤͯ-#Λઃఆ Service
Service apiVersion: v1 kind: Service metadata: name: my-service spec: type: LoadBalancer ports: - protocol: TCP port: 80 targetPort: 8080 selector: app: my-app my-service.yaml apply apply GCLB LBaaS cloud-provider gcp cloud-provider openstack watch create watch create ˞ઃఆ༰ʹΑͬͯҟͳΔڥͰ༻Ͱ͖ͳ͍ͷ͋Γ·͢ ྫBOOPUBUJPOΛͬͨΫϥυڥݻ༗ͷઃఆͳͲ
1SPWJEFS*NQMFNFOUBUJPOT ڥݻ༗ͷॲཧ$MVTUFS"1*1SPWJEFSͱͯ͠ຊମ͔ΒΓग़͞Ε͍ͯΔ ֤छΠϯϑϥڥ#PPUTUSBQํ͚ࣜʹϓϩόΠμ͕։ൃ͞Ε͍ͯΔ https://cluster-api.sigs.k8s.io/reference/providers.html *OGSBTUSVDUVSF1SPWJEFS Ϋϥυڥʹ7.-#ͳͲͷ ඞཁͳϦιʔεΛ࡞ w "84 w
"[VSF w #BSF.FUBM w ($1 w 0QFO4UBDL w W4QIFSF w FUDʜ #PPUTUSBQ1SPWJEFS 7.ʹ,TͷίϯϙʔωϯτΛ Πϯετʔϧ͢ΔεΫϦϓτΛੜ w LVCFBEN w 5BMPT
$MVTUFS"1*ʹΑΔΫϥελߏஙɾཧ ৽͍͠ΫϥελΛͭ͘Δʹ ˠΫϥελ $MVTUFS ͱϊʔυ .BDIJOF ͷ:".-Λ༻ҙ͢Δ apiVersion: cluster.x-k8s.io/v1alpha2
kind: Cluster metadata: name: my-cluster spec: clusterNetwork: pods: cidrBlocks: [“192.168.0.0/16”] infrastructureRef: # লུ # Ϋϥυڥݻ༗ͷઃఆͷࢀর cluster.yaml apiVersion: cluster.x-k8s.io/v1alpha2 kind: MachineDeployment metadata: name: my-first-cluster-node01 spec: replicas: 3 template: spec: version: v1.15.3 bootstrap: # লུ # k8sίϯϙʔωϯτͷbootstrapͷ # ํ๏Λఆٛͨ͠ઃఆͷࢀর infrastructureRef: # Ϋϥυڥݻ༗ͷઃఆͷࢀর machine.yaml
$MVTUFS"1*ʹΑΔΫϥελߏஙɾཧ Cloud Environment Management Cluster Cluster Infrastructure Cluster Machine Infrastructure
Machine Bootstrap Config Cluster API Infrastructure Provider CRDs Controller Bootstrap Provider Workload Cluster kind: Cluster kind: Machine CRDs Controller CRDs Controller
$MVTUFS"1*ʹΑΔΫϥελߏஙɾཧ Cloud Environment Management Cluster Cluster Infrastructure Cluster Machine Infrastructure
Machine Bootstrap Config Cluster API Infrastructure Provider CRDs Controller Bootstrap Provider Workload Cluster kind: Cluster kind: Machine CRDs Controller CRDs Controller ଞͷΫϥελΛཧ͢ΔΫϥελ $MVTUFS"1*ͷίϯϙʔωϯτ͕ Πϯετʔϧ͞Ε͍ͯΔ
$MVTUFS"1*ʹΑΔΫϥελߏஙɾཧ Cloud Environment Management Cluster Cluster Infrastructure Cluster Machine Infrastructure
Machine Bootstrap Config Cluster API Infrastructure Provider CRDs Controller Bootstrap Provider Workload Cluster kind: Cluster kind: Machine CRDs Controller CRDs Controller ϥΠϑϥΠΫϧΛཧ͞Ε͍ͯΔΫϥελ ࣮ࡍͷΞϓϦέʔγϣϯΛಈ࡞ͤ͞Δ ϫʔΫϩʔυ༻Ϋϥελͱͯ͠ΘΕΔ
$MVTUFS"1*ʹΑΔΫϥελߏஙɾཧ Cloud Environment Management Cluster Cluster Infrastructure Cluster Machine Infrastructure
Machine Bootstrap Config Cluster API Infrastructure Provider CRDs Controller Bootstrap Provider Workload Cluster kind: Cluster kind: Machine CRDs Controller CRDs Controller $MVTUFSͱ.BDIJOFͷ ΦϒδΣΫτΛ࡞
$MVTUFS"1*ʹΑΔΫϥελߏஙɾཧ Cloud Environment Management Cluster Cluster Infrastructure Cluster Machine Infrastructure
Machine Bootstrap Config Cluster API Infrastructure Provider CRDs Controller Bootstrap Provider Workload Cluster kind: Cluster kind: Machine CRDs Controller CRDs Controller $MVTUFS"1*ίϯτϩʔϥ͕ ΫϥελߏஙʹඞཁͳใΛੜ
$MVTUFS"1*ʹΑΔΫϥελߏஙɾཧ Cloud Environment Management Cluster Cluster Infrastructure Cluster Machine Infrastructure
Machine Bootstrap Config Cluster API Infrastructure Provider CRDs Controller Bootstrap Provider Workload Cluster kind: Cluster kind: Machine CRDs Controller CRDs Controller Ϋϥυڥʹ7.͕࡞͞Ε Ϋϥελ্ཱ͕͕ͪΔ
<ٕज़ॻయ>͡ΊΔ$MVTUFS"1* 26 IUUQTUFDIJFNFEJBCPPUIQNJUFNT lΫϥελͰΫϥελΛ࡞Γཧ͢ΔzΛ ମݧ͢ΔͨΊͷղઆॻ ʲ༰ʳ $MVTUFS"1*ͷഎܠͱ֓ཁ "84ڥʹΫϥελΛͭ͘Δ
ϋϯζΦϯ ,VCFSOFUFTͷΤίγεςϜͱ Έ߹Θ͔ͤͯͭ͏ #005)ʹͯిࢠॻ੶൛ൢചதʂ ຊͷ04$ϒʔε ʹͯ ൦͍ͯ͠·͢ʂ
·ͱΊ w ,VCFSOFUFTએݴతͳ"1* ίϯτϩʔϥͰߏ͞ΕΔ w lίϯςφͷσϓϩΠz͚ͩʹͱͲ·Βͣ ,VCFSOFUFTͷΈ͞·͟·ͳతʹԠ༻Ͱ͖Δ w ,VCFSOFUFT0QFSBUPS ΞϓϦέʔγϣϯݻ༗ͷӡ༻ૢ࡞Λ,VCFSOFUFTʹͤΔ
w $MVTUFS"1* LTΫϥελͰLTΫϥελΛͭ͘Δ એݴతͳ"1*Ͱ͞·͟·ͳΫϥυڥΫϥελΛσϓϩΠ ʮϓϥοτϑΥʔϜΛͭ͘ΔͨΊͷϓϥοτϑΥʔϜʯ ͱͯ͠,VCFSOFUFTΛ׆༻͍ͯ͜͠͏ʂ