転職したら Kubernetes だった件 / That Time I Changed Jobs as a Kubernetes.

転職したら Kubernetes だった件 / That Time I Changed Jobs as a Kubernetes.

「ある日、転職した inajob に与えられた仕事は、Kubernetes の一員になることだった!?」
Kubernetesは、コンテナのスケジューリングなどの多くの作業を自動化している一方で、複数のコンポーネントにより構成され中身の理解が難しくなっています。本講演では、各コンポーネントに代わり手作業で機能する Kubernetes クラスタのデモを交えながら、Kubernetesがどのように人間の作業を自動化しているのか説明します。
---
Cloud Native Days Tokyo 2019 (2019/7/23) - https://cloudnativedays.jp/cndt2019/
SUDA Kazuki, @superbrothers
OTSUKA Motohiro, @yuanying
INAZU Kazuma, @ina_ani

9f9df80ab6551776b49c4ad9432ba1b7?s=128

Kazuki Suda

July 23, 2019
Tweet

Transcript

  1. $MPVE/BUJWF%BZT5PLZP   46%",B[VLJLTVEB![MBCDPKQ !TVQFSCSPUIFST 0546,".PUPIJSPNPUPUTVL![MBCDPKQ !ZVBOZJOH */";6,B[VNBLJOBEV![MBCDPKQ !JOB@BOJ 鯄耵׃׋׵ջ,VCFSOFUFTռ׌׏׋⟝

    ։֮׷傈ծ厤;爡ח鯄耵׃׋珗峸ׁ׿ח♷ִ׵׸׋➬✲כծ
 ˑ,VCFSOFUFTך♧㆞˒חז׷ֿה׌׏׋։
  2. */";6,B[VNB!JOBKPC Ӝ 馯㄂כꨵ㶨䊨⡲ד荈㸓ח%فٔٝة׾䭯׏גְ׷ Ӝ չ,VCFSOFUFT㹋騧ⰅꟌպծչ׫׿זך%PDLFS,VCFSOFUFTպⰟ衼剅 46%",B[VLJ!TVQFSCSPUIFST Ӝ َؿ٦吳䒭⠓爡痥➿랲䌒؎ٝؿٓأزؙٓثٍ։,VCFSOFUFT։ Ӝ ,VCFSOFUFT.FFUVQ5PLZP

    $MPVE/BUJWF%FFQ%JWFⰟず⚺⪵罏 Ӝ չ,VCFSOFUFT㹋騧ⰅꟌպծչ׫׿זך%PDLFS,VCFSOFUFTպⰟ衼剅 0546,".PUPIJSP!ZVBOZJOH Ӝ ⯋0QFO4UBDL.BHOVN؝،ٖؽُ، Ӝ չ׫׿זך%PDLFS,VCFSOFUFTպⰟ衼剅
  3. ئحزٓن吳䒭⠓爡;-BC$PSQPSBUJPO Ӝ 䎃ח鏣甧ׁ׸׋َؿ٦吳䒭⠓爡ך㶨⠓爡 Ӝ ؎ٝؿٓ㛇湍䪮遭ך锃叨٥灇瑔Ꟛ涪 Ӝ َؿ٦吳䒭⠓爡ぢֽךوط٦آس,VCFSOFUFT؟٦ؽأךꟚ涪 Ӝ IUUQT[MBCDPKQ

  4. ͜ͷ෺ޠ͸ϑΟΫγϣϯͰ͋Γ ొ৔͢Δஂମ໊ɾձ໊ࣾɾਓ໊ ౳͸Սۭͷ΋ͷͰɺ࣮ࡏ͢Δ ஂମɾձࣾɾਓ෺౳ͱ͸ɺҰ੾ ؔ܎͕͋Γ·ͤΜɻ

  5. ،آؑٝت Ӝ ֿ׸תדך֮׵ׅׄ Ӝ 涫㜥➂暟稱➜ Ӝ ➙傈ך؞٦ٕ Ӝ 痥鑧չ珗峸ׁ׿ծˑ,VCFSOFUFTط؎ذ؍ـ˒⟰噟ח鯄耵ׅ׷պ Ӝ

    痥鑧չ珗峸ׁ׿ծٙ٦ؕ٦ظ٦سחז׷պ Ӝ 痥鑧չ珗峸ׁ׿ծ1PE׾㹋遤ׅ׷պ Ӝ 痥鑧չ갭歊ׁ׿ծ3FQMJDB4FU׾Ⳣ椚ׅ׷պ Ӝ 痥鑧չ珗峸ׁ׿ծ4FSWJDF׾Ⳣ椚ׅ׷պ Ӝ תה׭
  6. ֿ׸תדך֮׵ׅׄ

  7. ֿ׸תדך֮׵ׅׄ 厤;爡כծ鋵⠓爡ַ׵ך⣛걾ד,VCFSOFUFTؙٓأة׾麊欽׃זֽ׸לז׵זֻז׶ת׃׋ָծ չ,VCFSOFUFTך،٦ؗذؙثָٍꨇ׃ֺׅծ麊欽ָדֹזְպהⴻ倖׃ת׃׋կ׃ַ׃ծ⚅ך⚥ כؙٓؐسط؎ذ؍ـדׅկ$ז׿׍ׯ׵$PNQVUJOH'PVOEBUJPO 殛׃ג$/$'刹ֻծؙٓؐسط ؎ذ؍ـ؎؝٦ٕ,VCFSOFUFTדׅկ㎳דָׅծ׉ֲ䙼׏גְ׷➂׮㢳ְדׅկ ⚅ך⚥ך崧׸涸חⰋג׾䬧やדֹזְ׌׹ֲה⠓爡ך♳㾴鿇כⴻ倖׃ת׃׋կչ,VCFSOFUFTד♧殢 ꅾ銲ז؝ٝه٦طٝزכז׿׌պչLVCFBQJTFSWFSדׅկպה֮׷爡㆞ָ瘶ִת׃׋կ ֲֿ׃גծ厤;爡דכծLVCFBQJTFSWFSך׫ָ㼪Ⰵׁ׸ծ׉ך➭׾䩛⡲噟הׅ׷噟⹡ؿٗ٦ָ
 欰ת׸׋ךד׃׋կ

  8. 涫㜥➂暟稱➜

  9. 珗峸ׁ׿JOBKPC Ӝ 厤;爡ח剑鵚鯄耵׃׋ؒٝآص، Ӝ ,VCFSOFUFTؒٝآص،חז׷ֿה׾湡䭷׃גְ׷ 갭歊ׁ׿TVQFSCSPUIFST Ӝ 珗峸ׁ׿ך♳぀ Ӝ ءص،ؒٝآص،ד؝ٝزٗ٦ٕفٖ٦ٝך噟⹡׾䬐䔲ׅ׷

    㣐㝩ׁ׿ZVBOZJOH Ӝ ⠗铡ךٙ٦ؕظ٦سֶׁׄ׿דٌٔ٦ز⹶⹡ Ӝ ˑ,VCFSOFUFT娖ָꞿֻ➂꟦הכ䙼ִזְ傍ׁד噟⹡׾ֿזׅ
  10. ,VCFSOFUFTؙ٦غطذ؍أ Ӝ ׫׿ז㣐㥨ֹծ؝ٝذشؔ٦؛أزٖ٦ءّٝخ٦ٕ Ӝ 醱侧ךظ٦سהㄎל׸׷وءٝ׾勲י׋ؙٓأةח،فٔ؛٦ءّٝ؝ٝذش׾ְְ䠬ׄח رفٗ؎׃גֻ׸׷ Ӝ ⸇ִג؟٦ؽأ׾圓䧭ׅ׷ךח䗳銲ז*5؎ٝؿٓד֮׷ٗ٦سغٓٝ؟ծأزٖ٦آ瘝׮欽䠐׃ גֻ׸׷ Ӝ

    醱侧ך؝ٝه٦طٝزד圓䧭ׁ׸׷ⴓ侔ءأذيדծ،٦ؗذؙثָٍ醱꧟ד⹛⡲ָ״ֻ椚鍑ד ֹזְהְֲ㡮׮֮׷
  11. ➙傈ך؞٦ٕ

  12. ➙傈ך؞٦ٕ ,VCFSOFUFTָוך״ֲח➂꟦ך⡲噟׾荈⹛⻉׃גְ׷ךַ׾濼׷կ ,VCFSOFUFTָװ׏גְ׷ֿהכ➂꟦ָ䩛⡲噟ד㹋倵דֹתׅկ׬׃׹ծ➂꟦ָֿ׸תדװ׏גְ׋ كأزفؙٓذ؍أ׾荈⹛⻉׃גְ׷ה罋ִ׵׸תׅկ,VCFSOFUFTכהג׮䓼⸂דծֿ׸ז׃דכ װ׏גְֽזְ➂׮ְ׷ד׃׳ֲկ ׃ַ׃ծ䔲搫זָ׵,VCFSOFUFTח׮غָؚ֮׶ծהֹחכ㠨׸׷ֿה׮֮׷ד׃׳ֲկ
 ׉ךהֹծ,VCFSOFUFTךぐ؝ٝه٦طٝزך顑⹡כ⡦דծⰧ⡤涸ח⡦׾׃גְ׷ךַ׾䪾䳢׃ג
 ֶֻֿהכꬊ䌢ח㣐ⴖדׅկ

  13. 痥鑧 珗峸ׁ׿ծˑ,VCFSOFUFTط؎ذ؍ـ˒⟰噟ח鯄耵ׅ׷

  14. ➙傈כ珗峸ׁ׿ךⴱ⳿爡傈דׅկ 珗峸չֿך⠓爡ד,VCFSOFUFTךإٔؗ׾魦חאֽגծ$,"ծ$,"%׾《䖤ׅ׸לֿך⯓׃ל׵ֻ כ䒷䩛侧㢳׌պהծת׌ֿךהֹכؙؙٙٙ׃גְת׃׋կ 痥鑧չ珗峸ׁ׿ծˑ,VCFSOFUFTط؎ذ؍ـ˒⟰噟ח鯄耵ׅ׷պ ,VCFSOFUFTךإٔؗכծְת굲ן䫙ֽג碛㕂ך鯄耵ד剣ⵃկ碛%JDF碛*OEFFE1VCMJDLFZ $FSUJFE,VCFSOFUFT"ENJOJTUSBUPS $," 1SPHSBN $FSUJFE,VCFSOFUFT"QQMJDBUJPO%FWFMPQFS $,"%

    1SPHSBN
  15. 痥鑧չ珗峸ׁ׿ծˑ,VCFSOFUFTط؎ذ؍ـ˒⟰噟ח鯄耵ׅ׷պ ؔٔؒٝذ٦ءّٝ׾穄ִ׋珗峸ׁ׿ծ׉ֿחװ׏גֹ׋♳぀ך갭歊ׁ׿ַ׵➙䖓噟⹡ח⢪欽ׅ׷ ٓحفزحف׾「ֽ《׶ת׃׋կ 갭歊չ珗峸ׁ׿ծ֮ז׋ך➬✲כ׉ךٓحفزحف׾⢪׏ג,VCFSOFUFTؙٓأةך♧㆞חז׷ֿ הדׅկ׉ךٓحفزحفדٙ٦ؕظ٦سה׃ג䗳銲זإحز،حف׾㹋倵׃גֻ׌ְׁկպ 珗峸ׁ׿כծ⡦׾鎉׻׸׋ךַ״ֻ׻ַ׶תׇ׿ד׃׋ָծ
 ⯓鰳爡㆞ח鎉׻׸׋הֶ׶חٓحفزحف׾
 إحز،حفׅ׷ֿהח׃ת׃׋կ

  16. ‘’’’’’’’ $/*$/*فؚٓ؎ٝ LVCFMFU ؝ٝذشٓٝة؎ي 04,FSOFM FUDE LVCFBQJTFSWFS LVCFDPOUSPMMFSNBOBHFS LVCFTDIFEVMFS LVCFDUM

    3&45 LVCFQSPYZ وأةظ٦س ٙ٦ؕظ٦س ,VCFSOFUFTך،٦ؗذؙثٍ
  17. 痥鑧չ珗峸ׁ׿ծ,VCFSOFUFTط؎ذ؍ـ˒⟰噟ח鯄耵ׅ׷պד㷕עֿה وءָٝ,VCFSOFUFTظ٦سה׃ג堣腉ׅ׷׋׭חכծְֻאַךⴱ劍إحز،حف׾㹋倵׃׋ך ׍חؙٓأةחآّ؎ٝ׃זֽ׸לז׶תׇ׿կ LVCFBQJTFSWFS NAME STATUS nodes/inajob Unknown LVCFMFU JOBKPCظ٦س

  18. 如כرٌדׅ !

  19. 痥鑧 珗峸ׁ׿ծٙ٦ؕظ٦سחז׷

  20. 痥鑧չ珗峸ׁ׿ծٙ٦ؕظ٦سחז׷պ ➙傈כ珗峸ׁ׿כׄ׭גך噟⹡ך傈דׅկ珗峸ׁ׿ָ⠓爡ח⳿⹶׃גֹת׃׋կ ו׿ז⠓爡ד׮剑ⴱחװ׷ֿהכ⳿⹶涫ꐮׅ׷ֿהדׅկ
 ˑ,VCFSOFUFTط؎ذ؍ـ˒ד֮׷厤;爡חֶֽ׷⳿⹶涫ꐮכ
 䬐䔲ׅ׷ظ٦سךأذ٦ةأ׾刿倜ׅ׷ֿהדׅկ

  21. 如כرٌדׅ ! 痥鑧չ珗峸ׁ׿ծٙ٦ؕظ٦سחז׷պד㷕עֿה LVCFMFUכوءָٝ،فٔ؛٦ءّٝ׾㹋遤ׅ׷彊⪒ָדֹגְ׷ֿה׾爙ׅ׋׭חծ荈魦ך /PEFؔـآؙؑزךأذ٦ةأ׾㹀劍涸ח刿倜ׅ׷ع٦زؽ٦ز LVCFMFU JOBKPCظ٦س LVCFBQJTFSWFS apiVersion: v1

    kind: Node metadata: name: inajob spec: podCIDR: 10.244.1.0/24 status: conditions: - lastHeartbeatTime: "2019-07-18T09:31:13Z" lastTransitionTime: null message: 今日からよろしくお願いします。 reason: 稲津出社 status: "True" type: Ready
  22. 痥鑧չ珗峸ׁ׿ծٙ٦ؕظ٦سחז׷պך酡駈 وءٝךꥺ㹱דLVCFMFUַ׵ך㜠デָ♧㹀劍꟦זֻז׷זודظ٦سָ⨳Ⰻדכזֻז׷ה ,VCFSOFUFTכ➭ך⨳Ⰻזظ٦سד،فٔ؛٦ءّٝ׾㹋遤ׅ׷״ֲחⴖ׶剏ִ׷ LVCFMFU JOBKPCظ٦س LVCFMFU ZVBOZJOHظ٦س LVCFBQJTFSWFS NAME STATUS

    nodes/inajob Ready nodes/yuanying NotReady ZVBOZJOHظ٦سָ娤׿ד׷׏שְַ׵
 ؝ٝذش׾رفٗ؎ׅ׷ךװ׭הֿ 猘כ־׿ֹדׅ "
  23. 痥鑧 珗峸ׁ׿ծ1PE׾㹋遤ׅ׷

  24. 痥鑧չ珗峸ׁ׿ծ1PE׾㹋遤ׅ׷պ ٙ٦ؕظ٦سה׃גך➬✲כծ,VCFSOFUFTךِ٦ؠָծ،فٔ؛٦ءّٝ׾ؙٓأة♳ד㹋遤׃״ ֲה׃׋儗ח㨣ת׶תׅկת׆ծ♳぀ד֮׷갭歊ׁ׿ָ׉ך،فٔ؛٦ءّٝ׾铩ח㹋遤ׇׁ׷ך ַ׾寸׭ծ׉׃גⶴ׶䔲ג׵׸׋䬐䔲ָծ׉ך،فٔ؛٦ءّٝ׾׍ׯ׿ה㹋遤ׅ׷顑⟣׾頾ֲך דׅկ ׍ז׫ח,VCFSOFUFTד،فٔ؛٦ءّٝכ
 1PEهحسהְֲ⽃⡘דرفٗ؎ׁ׸תׅկ

  25. 痥鑧չ珗峸ׁ׿ծ1PE׾㹋遤ׅ׷պד㷕עֿה ,VCFSOFUFTחכ1PEךأ؛آُ٦ٓהծ׉׸׾㹋遤ׅ׷ٙ٦ؕظ٦سָ֮׶תׅկ,VCFSOFUFTכ 㸣Ⰻⴓ噟ⵖד֮׶ծأ؛آُ٦ָٓ1PE׾㹋遤ׅ׷彊⪒ָדֹגְ׷⡭酔ך֮׷ٙ٦ؕظ٦س׾鼅 ׿ד㹋遤׾ֶ격ְׅ׷ךדׅկ LVCFMFU JOBKPCظ٦س LVCFBQJTFSWFS NAME IP NODE

    pods/nginx 10.244.1.2 inajob LVCFTDIFEVMFS LVCFDUM ΍LVCFDUMBQQMZG
 OHJOYQPEZBNM ΎJOBKPCظ٦سח
 أ؛آُ٦ٕ ΏOHJOY1PEך㹋遤
  26. 如כرٌדׅ ! 5IF"MNJHIUZ1BVTF$POUBJOFS*BO-FXJT 1PEهحس

  27. 痥鑧 갭歊ׁ׿ծ3FQMJDB4FU׾Ⳣ椚ׅ׷

  28. 痥鑧չ갭歊ׁ׿ծ3FQMJDB4FU׾Ⳣ椚ׅ׷պ ֿֿדכ♳぀ד֮׷갭歊ׁ׿חؿؓ٦ؕأ׃תׅկ갭歊ׁ׿כծ؝ٝزٗ٦ٕفٖ٦ٝה׃גأ؛ آُ٦ٓך➭ח׮؝ٝزٗ٦ٓوط٦آٍהְֲ盖椚噟⹡׮遤ז׏גְתׅկ 盖椚噟⹡ךאכ1PEךⱔꞿ⻉דׅկ♧菙ח،فٔ؛٦ءّٝכծ 醱侧ך؎ٝأةٝأד圓䧭׃ג〳欽䚍׾䬐⥂׃תׅկ ,VCFSOFUFTדכֿ׸׾3FQMJDB4FUד㹋植׃תׅկ ➙傈כ갭歊ׁ׿ָ3FQMJDB4FU؝ٝزٗ٦ٓה׃ג 崞鬨ׅ׷ֶ鑧דׅկ

  29. 3FQMJDB4FUٖفٔؕإحز Ӝ /⦐ך1PEָ㹋遤ׁ׸גְ׷朐䡾׾⥂א 3FQMJDB4FU ٖفٔؕ侧
 إؙٖةBQQOHJOY ظ٦س" 1PEذٝفٖ٦ز ظ٦س# 1PE$

    BQQOHJOY BQQOHJOY 1PE# BQQOHJOY 1PE" BQQOHJOY 劄ת׃ְ侧植㖈ך侧 如כرٌדׅ !
  30. 痥鑧չ갭歊ׁ׿ծ3FQMJDB4FU׾Ⳣ椚ׅ׷պך酡駈 ,VCFSOFUFT؝ٝزٗ٦ٓכծ"1*ؔـآؙؑزח㹀纏ׁ׸׋չ劄ת׃ְ朐䡾պהؙٓأةךչ植㖈 ך朐䡾պ׾♧荜ׇׁ׷״ֲחչ竰竲涸חպ⹛⡲׃תׅկֿ׸׾锃侭ٕ٦فSFDPODJMJBUJPO-PPQ הㄎןתׅկ LVCFBQJTFSWFS NAME IP NODE pods/web-001 10.244.2.2

    yuanying pods/web-002 10.244.1.3 inajob NAME DESIRED CURRENT READY rs/web 2 2 2 LVCFTDIFEVMFS LVCFDPOUSPMMFSNBOBHFS LVCFMFU ؐؓحثהٔأز
  31. 痥鑧 珗峸ׁ׿ծ4FSWJDF׾Ⳣ椚ׅ׷

  32. 痥鑧չ珗峸ׁ׿ծ4FSWJDF׾Ⳣ椚ׅ׷պ 3FQMJDB4FU׾⢪׏ג醱侧ך1PEٖفٔؕ׾⡲䧭דֹת׃׋ָծ
 1PEח،ؙإأ׃׋ְהֹח׉׸׊׸ך*1ח湫䱸،ؙإأׅ׷ךכ♶⤑דׅկ 
 ➿邌涸ז،سٖأָ֮׏גְְ䠬ׄח
 ٗ٦سغٓٝأ׃ג妜׃ְדׅ״יկ

  33. 4FSWJDF؟٦ؽأ Ӝ ⟎䟝*1$MVTUFS*1הه٦ز Ӝ ٓكٕإؙٖةח״׷1PEךؚٕ٦ؾؚٝ Ӝ -ٗ٦سغٓٝ؟ח湱䔲ׅ׷ ؟٦ؽأך兛麐涸זؒٝسه؎ٝز׾䲿⣘ׅ׷ 4FSWJDF堣腉ך㹋植ח顑⟣׾䭯אךָծ
 ٙ٦ؕظ٦سךLVCFQSPYZדׅկ

    4FSWJDFNZTWD ة؎ف$MVTUFS*1
 إؙٖةBQQOHJOY ه٦زUDQ̔UDQ DMVTUFS*1 1PE" 1PE# 3FQMJDB4FU BQQOHJOY BQQOHJOY
  34. 如כرٌדׅ ! 痥鑧չ珗峸ׁ׿ծ4FSWJDF׾Ⳣ椚ׅ׷պך酡駈 kube-proxy %VNNZJOUFSGBDF  *174 $MJFOU1PE #BDLFOE1PE 

    LVCFBQJTFSWFS NAME TYPE CLUSTER-IP PORT(S) service/web ClusterIP 10.254.10.128 80/TCP NAME ENDPOINTS endpoints/web 10.244.1.3:8080,10.244.2.2:8080 ظ٦س ظ٦س JQUBCMFT %/"5 وأٖؕ٦س #BDLFOE1PE 
  35. 痥鑧չ珗峸ׁ׿ծ4FSWJDF׾Ⳣ椚ׅ׷պ 噟⹡׾鸐ׄגծ珗峸ׁ׿כוֿחְ׏ג׮䛰׆ַ׃ֻזְ甧崢זٙ٦ؕظ٦سחז׶ת׃׋

  36. תה׭

  37. ‘’’’’’’’ $/*$/*فؚٓ؎ٝ LVCFMFU ؝ٝذشٓٝة؎ي 04,FSOFM FUDE LVCFBQJTFSWFS LVCFDPOUSPMMFSNBOBHFS LVCFTDIFEVMFS LVCFDUM

    3&45 LVCFQSPYZ وأةظ٦س ٙ٦ؕظ٦س ,VCFSOFUFTך،٦ؗذؙثٍ
  38. ➙傈ך؞٦ٕ ,VCFSOFUFTָוך״ֲח➂꟦ך⡲噟׾荈⹛⻉׃גְ׷ךַ׾濼׷կ

  39. ⵖ⡲٥衼⡲ 穄 LVCFDUM LVCFBQJTFSWFS FUDE LVCFTDIFEVMFS LVCFDPOUSPMMFSNBOBHFS LVCFMFU LVCFMFU LVCFQSPYZ

    LVCFQSPYZ DPOUBJOFSSVOUJNF LVCFDUM LVCFBQJTFSWFS FUDE 갭歊♧鰛 갭歊♧鰛 珗峸ㄤ熊 LVCFMFU㣐㝩⯋㣛 珗峸ㄤ熊 LVCFQSPYZ㣐㝩⯋㣛 EPDLFS ٍؗأز IUUQTTQFBLFSEFDLDPNTVQFSCSPUIFST أٓ؎س