Slide 1

Slide 1 text

-*/&גࣜձࣾ *5αʔϏεηϯλʔ 7FSEB 1MBUGPSNࣨ 7,4νʔϜ ιϑτ΢ΣΞΤϯδχΞ ޒ൓ాਖ਼ଠ࿠ $"JOGSB d,VCFSOFUFTBTB4FSWJDFd 7FSEB ,VCFSOFUFT4FSWJDF $MVTUFS"1*ಋೖ΁ͷνϟϨϯδ

Slide 2

Slide 2 text

ޒ൓ా ਖ਼ଠ࿠ -*/&גࣜձࣾ *5αʔϏεηϯλʔ 7FSEB1MBUGPSNࣨ 7,4νʔϜॴଐ ೥౓৽ଔೖࣾ ࣗݾ঺հ @sgotand (twitter/github)

Slide 3

Slide 3 text

7FSEB-*/&ͷ1SJWBUF$MPVE ͷ঺հ ,VCFSOFUFTBTB4FSWJDFΛ࡞Δʹ͸ʁ 7,4 7FSEB ,VCFSOFUFT4FSWJDF ͱ3BODIFS 3BODIFS͸ਏ͍Α $MVTUFS"1*ͱ͸ʁ $MVTUFS"1*Ҡߦ΁ͷऔΓ૊Έ ·ͱΊ $POUFOUT

Slide 4

Slide 4 text

7FSEB-*/&ͷ1SJWBUF$MPVEͷ঺հ • )ZQFSWJTPS • 7. • ,VCFSOFUFT • $MVTUFS • /PEF • .VMUJ3FHJPO .VMUJ"; • ౦ژ "; ɺ େࡕɺγϯΨϙʔϧɺ EFW

Slide 5

Slide 5 text

7FSEB-*/&ͷ1SJWBUF$MPVEͷ঺հ

Slide 6

Slide 6 text

,VCFSOFUFTBTB4FSWJDFͱ͸ʁ Kubernetesクラスタをいい感じに構築&管理して ユーザーに提供してくれるサービス Azure Kubernetes Service Amazon EKS

Slide 7

Slide 7 text

7FSEB ,VCFSOFUFT 4FSWJDF 7,4 ͷػೳྫ • Ϋϥελߏங • WLTDUM DSFBUFDMVTUFSNZDMVTUFS • ϊʔυૢ࡞ • WLTDUM DSFBUFOPEFQPPM BWBJMBCJMJUZ[POFB[OQB[ • WLTDUM TDBMFOPEFQPPM OQB[ XPSLFST • ΞυΦϯ˞؅ཧ • WLTDUM BEEPOLVCFSOFUFTEBTICPBSEFOBCMF • WLTDUM BEEPOLVCFSOFUFTEBTICPBSEVSM ※ クラスタ上で動き、クラスタの機能を拡張・改善するアプリケーション及びk8sリソース

Slide 8

Slide 8 text

,VCFSOFUFTBTB4FSWJDFΛ࡞Δʹ͸ʁ

Slide 9

Slide 9 text

,VCFSOFUFTBTB4FSWJDFΛ࡞Δʹ͸ʁ • ,VCFSOFUFTΫϥελͷߏஙɺ؅ཧ

Slide 10

Slide 10 text

,VCFSOFUFTBTB4FSWJDFΛ࡞Δʹ͸ʁ • ,VCFSOFUFTΫϥελͷߏஙɺ؅ཧ • ΞυΦϯ˞ͷ։ൃɺӡ༻ ※ クラスタ上で動き、クラスタの機能を拡張・改善するアプリケーション及びk8sリソース

Slide 11

Slide 11 text

,VCFSOFUFTBTB4FSWJDFΛ࡞Δʹ͸ʁ • ,VCFSOFUFTΫϥελͷߏஙɺ؅ཧ • ΞυΦϯͷ։ൃɺӡ༻ • ϞχλϦϯάɺো֐ରԠ

Slide 12

Slide 12 text

,VCFSOFUFTΫϥελΛ࡞Δʹ͸ʁ • Ϧιʔεͷ४උ • 7. -#౳ • ֤छίϯϙʔωϯτͷΠϯετʔϧ • LVCFBQJTFSWFS FUDE LVCFMFU౳ • ূ໌ॻɺೝূ৘ใ౳ͷ؅ཧ • FUD https://kubernetes.io/docs/concepts/overview/components/

Slide 13

Slide 13 text

,VCFSOFUFTΫϥελΛ࡞Δʹ͸ʁ

Slide 14

Slide 14 text

• 3BODIFS-BCT͕։ൃ͢Δ044 • 0QFOTUBDL "1*Λར༻ͯ͠7.؅ཧ͕Մೳ • 7FSEBͷ"1*׆༻Ͱ͖Δ • %PDLFSΛ׆༻ͨ͠OPEFˍίϯτϩʔϧϓϨʔϯͷ؅ཧ • Ϋϥελ؂ࢹͷ࢓૊Έ΋ఏڙ 7,4ʹ͓͚ΔΫϥελߏஙɾ؅ཧ https://www.rancher.com

Slide 15

Slide 15 text

7,4ʹ͓͚ΔΫϥελߏஙɾ؅ཧ ϦΫΤετ ૢ࡞ LVCFDUM౳ User Cluster ߏஙɺ؅ཧ

Slide 16

Slide 16 text

7,4ʹ͓͚ΔΫϥελߏஙɾ؅ཧ ߏஙɺ؅ཧ User Cluster VKS GW API VKS GW Proxy ૢ࡞ LVCFDUM౳ WLTDUM PSXFC6* ϦΫΤετͷ ิ׬ɺม׵ɺWBMJEBUJPO౳ 認証等

Slide 17

Slide 17 text

7,4(8"1* 1SPYZ ͷ֓ཁ • Go⾔語実装 • Rancherの抽象化 • 開発者の学習コスト・認知コストの削減 • リスクや運⽤コストの削減 • 例:デフォルトの構成情報の管理 • “vksctl create cluster クラスタ名” でクラスタが作れる • Verda固有の仕組みの実現 • クラスタのプロジェクトや作成者、操作情報等の記録 • 割り当て数の管理 • Keystone(Openstack・Verdaの認証機構)ベースの認証・認可 • アドオンの管理機構の提供

Slide 18

Slide 18 text

࣭໰,VCFSOFUFTBTB4FSWJDFΛ࡞Δʹ͸ʁ • ,VCFSOFUFTΫϥελͷߏஙɺ؅ཧɺߋ৽ٴͼͦͷࣗಈԽ 3BODIFSΛந৅Խ͠7,4ಠࣗͷ"1*Λ։ൃɾఏڙ • ΞυΦϯͷ։ൃɺӡ༻ • ϞχλϦϯάɺো֐ରԠ

Slide 19

Slide 19 text

7,4ʹ͓͚ΔΞυΦϯ Ϋϥελػೳͷ࣮૷ɾ֦ுͷͨΊʹΞυΦϯ͕ඞཁ • 1FSTJTUFOU7PMVNF 7PMVNF؅ཧ • 7FSEB $$. -PBECBMBODFS 4FSWJDF؅ཧ • &YQPSUFST LVCFTUBUFNFUSJDT EPDLFSFYQPSUFS౳ • $MVTUFS.POJUPSJOH 1SPNFUIFVT౳ʹΑΔ؂ࢹػߏ • ౳

Slide 20

Slide 20 text

7,4ʹ͓͚ΔΞυΦϯ؅ཧ User Cluster 7,4"EEPO4UBSUFS • 3BODIFS͔ΒఆظతʹΫϥελ৘ใΛऔಘ • Ϋϥελຖ"EEPO$POUSPMMFSΛσϓϩΠ • ֤छ৘ใͷड͚౉͠౳΋ • ؀ڥ LVCFDPOGJH 7,4BEEPODPOUSPMMFS • ϚχϑΣετͷςϯϓϨʔτ KTPOOFU Λऔಘ • %PDLFS *NBHFͱͯࣾ͠಺ϨδετϦʹอଘ • ֤छ৘ใΛ΋ͱʹɺNBOJGFTUͷੜ੒ • ؀ڥ৘ใ Ϋϥελ৘ใ ΞυΦϯઃఆ৘ใ • ఆظతʹNBOJGFTUΛBQQMZ VKS addon starter VKS Addon Controller User Cluster VKS Addon Controller クラスタ情報 取得 デプロイ apply manifests テンプレート取得

Slide 21

Slide 21 text

,VCFSOFUFTBTB4FSWJDFΛ࡞Δʹ͸ʁ • ,VCFSOFUFTΫϥελͷߏஙɺ؅ཧ 3BODIFSΛந৅Խ͠7,4ಠࣗͷ"1*Λ։ൃɾఏڙ • ΞυΦϯͷ։ൃɺӡ༻ "EEPO4UBSUFS"EEPO$POUSPMMFSʹΑΓఆظతʹ"QQMZ • ϞχλϦϯάɺো֐ରԠ 1SPNFUIFT "MFSUNBOBHFS (SBGBOBϕʔεͰ؂ࢹ

Slide 22

Slide 22 text

7,4ͷΞʔΩςΫνϟ֓ཁ ैདྷ VKS addon starter User Cluster VKS Addon Controller クラスタ情報 取得 デプロイ apply manifests VKS GW API VKS GW Proxy 操作 (vksctl or WebUI) 操作 (kubectl等) クラスタ、プロジェクト の管理情報を保存 リクエストのvalidation, 補完等 認証等 manifest 雛形取得

Slide 23

Slide 23 text

7FSEB-*/&ͷ1SJWBUF$MPVE ͷ঺հ ,VCFSOFUFTBTB4FSWJDFΛ࡞Δʹ͸ʁ 7,4 7FSEB ,VCFSOFUFT4FSWJDF ͱ3BODIFS 3BODIFS͸ਏ͍Α $MVTUFS"1*ͱ͸ʁ $MVTUFS"1*Ҡߦ΁ͷऔΓ૊Έ ·ͱΊ $POUFOUT

Slide 24

Slide 24 text

3BODIFSͷਏΈ 3BODIFSΛϕʔεͱ࣮ͨ͠૷ʹ͞·͟·ͳ՝୊͕஝ੵ • ಠࣗΧελϚΠζʹΑΔίʔυϕʔεͷဃ཭ • 3BODIFS΁ͷ஌ݟͷ૕ࣦɺಠࣗϑϨʔϜϫʔΫͷֶशίετ • ن໛૿େʹΑΔෆ҆ఆԽ

Slide 25

Slide 25 text

3BODIFSͷ໰୊ɿίʔυϕʔεͷဃ཭ • 7,4Ͱ͸3BODIFSΛϑΥʔΫͯ͠ΧελϜ • 7,4W • ࠷৽W • 3BODIFS͸ෳ਺ͷϦϙδτϦͰߏ੒ • ͭͷมߋΛऔΓࠐΉͷʹɺෳ਺ϦϙδτϦͰ࡞ۀ͕ඞཁʹͳΔ৔߹΋ • ػೳ௥Ճ΍όάमਖ਼ͷऔΓࠐΈ͕ࠔ೉ʹ

Slide 26

Slide 26 text

3BODIFSͷ໰୊ɿ஌ݟͷ૕ࣦwֶशίετ • νʔϜϝϯόʔͷೖΕସΘΓʹΑΔ஌ݟͷ૕ࣦ • ্ཱͪ͛࣌ͷϝϯόʔ͕શһస৬ • ϝϯόʔͷ໿൒਺͕ࡏ੶̍೥ະຬʢ೥݄࣌఺ʣ • 3BODIFSಠࣗͷϑϨʔϜϫʔΫʹΑΓֶशίετ͕ߴ͍ • OPSNBO΍XSBOHMFS TUFWFͱ͍ͬͨಠࣗϑϨʔϜϫʔΫʹґଘ • DPOUSPMMFSSVOUJNF΍LVCFCVJMEFS౳ͷ஌ݟ͕׆͔ͤͳ͍ • ֶश΁ͷϞνϕʔγϣϯ΋ੜΈग़ͮ͠Β͍ • ࠾༻౳ͷ؍఺͔Β΋͋·Γྑ͘ͳ͍

Slide 27

Slide 27 text

3BODIFSͷ໰୊ɿن໛૿େʹΑΔෆ҆ఆԽ Ϋϥελ਺ͷ૿େɺϢʔεέʔεͷଟ༷Խ • Ϋϥελ਺ ૯ϊʔυ਺ Þ֬཰తʹൃੜ͢Δ໰୊ͷස౓͕૿Ճ ÞΦϖϨʔγϣϯίετ૿Ճ 3BODIFS͸6TFS$MVTUFSͷϊʔυຖʹ8FC4PDLFUͷηογϣϯΛுͬͯ؅ཧ ÞϦιʔε࢖༻ྔ૿େ Þ౓ʑ8FC4PDLFUηογϣϯपΓͷ໰୊͕ൃੜ

Slide 28

Slide 28 text

3BODIFSͷਏΈ 3BODIFSΛϕʔεͱ࣮ͨ͠૷ʹ͞·͟·ͳ՝୊͕஝ੵ • ಠࣗΧελϚΠζʹΑΔίʔυϕʔεͷဃ཭ • 3BODIFS΁ͷ஌ݟͷ૕ࣦɺಠࣗϑϨʔϜϫʔΫͷֶशίετ • ن໛૿େʹΑΔෆ҆ఆԽ Þ$MVTUFS"1* ಋೖ

Slide 29

Slide 29 text

$MVTUFS"1*ͱ͸ʁ • $MVTUFSͷߏஙɺ؅ཧɺߋ৽Λ,VCFSOFUFT্Ͱ࣮ݱ͢Δπʔϧ • $MVTUFS΍.BDIJOFͱ͍ͬͨ$3%Ͱ؅ཧ • 3BODIFSͷ࢓૊Έͱ͍ۙ • ,TίϛϡχςΟ͕։ൃΛओಋ • TJHDMVTUFSMJGFDZDMF • ۙ೥։ൃ͕׆ൃ • Ϛϧνϕϯμʔαϙʔτ • "84΍0QFO4UBDL޲͚ͷ֦ு࣮૷͕ଘࡏ

Slide 30

Slide 30 text

$MVTUFS"1*ͷେ·͔ͳ࢓૊Έ ̐ͭͷϓϩόΠμʹ෼͚ͯΫϥελΛ؅ཧ • $PSF • $MVTUFS΍.BDIJOF౳جຊతͳϦιʔεͱ ͦͷίϯτϩʔϥ • *OGSBTUSVDUVSFϓϩόΠμ • 7.΍-#ͷ४උ౳ɺ Ϧιʔε४උ΍ΧελϜ෦෼Λ୲౰ • #PPUTUSBQϓϩόΠμ • 7.Λ,Tͷ/PEFʹϓϩϏδϣϯ • ,VCFBENϕʔεͷ࣮૷౳͕ଘࡏ • $POUSPM1MBOFϓϩόΠμ • $POUSPM1MBOF FUDEؚΉ Λ୲౰ • ,VCFBENϕʔεͷ࣮૷͕ଘࡏ https://cluster-api.sigs.k8s.io/user/concepts.html

Slide 31

Slide 31 text

$MVTUFS"1*ʹΑΔਏΈͷղܾ • ಠࣗΧελϚΠζʹΑΔίʔυϕʔεͷဃ཭ • ಠࣗͷมߋΛ*OGSBTUSBDUVSFϓϩόΠμʹด͡ࠐΊΒΕΔ • 1BUDIͷিಥ౳ͷ՝୊ͷফࣦ • 3BODIFS΁ͷ஌ݟͷ૕ࣦɺಠࣗϑϨʔϜϫʔΫͷֶशίετ • LVCFCVJMEFS DPOUSPMMFSSVOUJNFͱ͍ͬͨҰൠతͳϥΠϒϥϦར༻ • ৽نϝϯόʔͷΩϟονΞοϓίετݮ • ଞνʔϜͱ΋஌ݟΛڞ༗ • Ϋϥελ਺૿େʹΑΔෆ҆ఆԽ • 3BODIFSϊʔυ୯ҐͰ௚઀؂ࢹ • $MVTUFS"1*ϢʔβʔͷLT"1*ܦ༝ͰϊʔυΛ؂ࢹ • ΑΓεέʔϥϒϧͰ͋Δ ͱظ଴͍ͯ͠Δ

Slide 32

Slide 32 text

$MVTUFS"1*Ҡߦ΁ͷϚΠϧετʔϯ طଘͷ7,4ͷ্Ͱ$MVTUFS"1*ϕʔεͷΫϥελΛఏڙ 3BODIFSϕʔεͷΫϥελΛ$MVTUFS"1*ϕʔεͷΫϥελʹҠߦ શΫϥελ$MVTUFS"1*Խ3BODIFSͷ׬શͳഉআ ˞ ࠓ೔ͷൃදͰ͸TUεςοϓ͚ͩ طଘͷΫϥελͷҠߦͷ࿩͸͠·ͤΜ

Slide 33

Slide 33 text

*OGSBTUSVDUVSFϓϩόΠμͷ࣮૷ $MVTUFS"1*1SPWJEFS0QFOTUBDLͱ͍͏࣮૷͕ଘࡏ Þ ͨͩ͠ɺ0QFOTUBDLͷόʔδϣϯ΍7FSEBͷ-#ͷ"1*͕߹Θͳ͍ͨΊɺ௚઀͸࢖͑ͳ͍ Þ $MVTUFS"1*1PSWJEFS 7FSEB $"17 ͷ։ൃ ࣮૷ʹ͸0QFSBUPS4%,Λ࢖༻ 7,4ͷΧελϜػೳ΋Ұ෦ͪ͜Βʹ࣮૷ • 4UBUJD*1/PEFQPPM ػೳ • /PEF΁ͷಠࣗϥϕϧ෇༩ʢ3BDLɺ"WBJMBCJMJUZ;POF౳ʣ • ౳

Slide 34

Slide 34 text

従来⼿法 Addon Starter • Rancherからクラスタ情報を取得 • Addon Controllerをクラスタ毎にデプロイ Addon Controller • テンプレートと個別設定からマニフェスト⽣成 • 定期的にクラスタにApply VKS addon starter VKS addon controller VKS addon controller クラスタ情報 取得 デプロイ マニフェスト apply ΞυΦϯͷ$MVTUFS"1*ରԠ

Slide 35

Slide 35 text

VKS addon starter VKS addon controller VKS addon starter VKS addon controller VKS GW API VKS addon controller VKS addon controller VKS addon controller VKS addon controller クラスタ情報 取得 クラスタ情報 取得 デプロイ デプロイ マニフェスト apply マニフェスト apply ΞυΦϯͷ$MVTUFS"1*ରԠσϓϩΠฤ

Slide 36

Slide 36 text

VKS addon controller マニフェスト⽣成 drivetType=rancher 共通テンプレート (jsonnet) Rancher クラスタ⽤ マニフェスト VKS addon controller マニフェスト⽣成 drivetType=capi ClusterAPI クラスタ⽤ マニフェスト ΞυΦϯͷ$MVTUFS"1*ରԠϚχϑΣετฤ

Slide 37

Slide 37 text

ࠓޙͷ՝୊ • $MVTUFS"1*.BOBHFNFOU$MVTUFSͷηϧϑϗετ • ݱঢ়͸3BODIFSϕʔεͷΫϥελͰ$"1*ͷίϯτϩʔϥΛಈ͔͍ͯ͠Δ • 3BODIFSϕʔεͷΫϥελͷ$MVTUFS"1*΁ͷҠߦ • औಘͨ͠FUDE εφοϓγϣοτ͔ΒͷΫϥελͷ෮چ • 1.ରԠ • ΑΓॊೈͳ$MVTUFS6QHSBEF1PMJDZͷରԠ • ݱঢ়͸/PEF1PPM୯ҐͰͷϊʔυͷ࠶࡞੒ʹΑΔ3PMMJOH6QEBUFͷΈରԠ • $MVTUFS"1*1SPWJEFS7FSEBͷεέʔϥϏϦςΟͷ޲্ • 0QFO4UBDL"1*ʹෛՙΛ͔͚ͯ͠·͏࣮૷ʹͳ͍ͬͯΔ • ʜ

Slide 38

Slide 38 text

·ͱΊ • 7FSEB -*/&ͷ1SJWUF $MPVE Ͱ͸,VCFSOFUT BTB4FSWJDF 7,4 Λఏڙ • ैདྷͷ7,4͸3BODIFSͰ࣮ݱ • 3BODIFSʹؔ࿈͢Δ՝୊ͷ஝ੵ • $MVTUFS"1*ͷಋೖͱͦΕʹΑΔ՝୊ͷղܾ

Slide 39

Slide 39 text

5)"/,:06

Slide 40

Slide 40 text

• Rancherあるいはそのカスタムが提供していた以下機能をアドオン化 • CNI Plugin • metrics-server • Keystoneベースの認可の為のClusterRole等 • etcd backup • RancherとKubeadmでのControl Plane のnode roleラベルの差異対応 • Rancher: node-role.kubernetes.io/controlplane • Kubeadm: node-role.kubernetes.io/control-plane $MVTUFS"1*ରԠམͪึर͍