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の魅力 / 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
1.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
7k
Other Decks in Technology
See All in Technology
詳解 never 型 - ボトム型の性質を深掘り
nealle
0
160
コードレビューをなくして見えたもの
henteko
0
140
SLOを阻む不安
sraku2159
0
230
Context Ontology Accelerator 入門 (業務データの意味を、AI エージェントに渡す)
inariku
PRO
3
510
TSKaigi Sendai 2026 - tsgo時代のTypeScript Playgroundはどう動くか
teamlab
PRO
0
110
The future of architectural work
ufried
0
180
`go get`したらELFが降ってきた件
taiyow
0
190
Microsoft Entra Kerberos で実現するクラウド デバイス管理
tamaiyutaro
2
640
内製アプリとClaudeスキルのセキュリティチェック、 Backlogの課題で回しています。
ayaka_egaaa
0
140
BALLAS Technology Deck
ballas_inc
0
140
続・ソフトウェアアーキテクトのための意思決定術: Decision Readiness, Revisited — When AI Changes the Economics of Software Architecture
snoozer05
PRO
9
2.7k
Technical Project Manager の役割とやりがい、少しだけ AI
yoshiiryo1
0
600
Featured
See All Featured
Making the Leap to Tech Lead
cromwellryan
135
10k
Marketing Yourself as an Engineer | Alaka | Gurzu
gurzu
0
360
The Invisible Side of Design
smashingmag
301
52k
Intergalactic Javascript Robots from Outer Space
tanoku
273
28k
Designing for Performance
lara
612
70k
The Spectacular Lies of Maps
axbom
PRO
1
1.1k
Git: the NoSQL Database
bkeepers
PRO
433
67k
Fireside Chat
paigeccino
43
4.1k
Statistics for Hackers
jakevdp
799
230k
Information Architects: The Missing Link in Design Systems
soysaucechin
1
1.3k
職位にかかわらず全員がリーダーシップを発揮するチーム作り / Building a team where everyone can demonstrate leadership regardless of position
madoxten
70
68k
Abbi's Birthday
coloredviolet
4
11k
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Λ׆༻͍ͯ͜͠͏ʂ