Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Kubernetes と CI/CD の 活用について

k725
January 27, 2021

Kubernetes と CI/CD の 活用について

k725

January 27, 2021
Tweet

More Decks by k725

Other Decks in Technology

Transcript

  1. ୭ • ύʔιϧΩϟϦΞגࣜձࣾ 
 αʔϏεاը։ൃຊ෦ • খྛ Ղ࢙ • ۀ຿:

    Πϯϑϥ, ηΩϡϦςΟͷ ΞυόΠεɾۀ຿؀ڥվળͳͲ • झຯ: ϓϩάϥϛϯά, OPSEC, OSINT, ͓ण࢘޷͖
  2. ͦ΋ͦ΋͜Ε͸…? • ݱࡏӡ༻͍ͯ͠Δ CAREER POCKET* ͷத৺తͳσʔλϕʔε • σʔλϕʔεͷϓϩδΣΫτ໊͸ Candicom •

    Candidate (ީิ) + Communication (΍ΓͱΓ) = Candicom • αΠϘ΢ζࣾͷ Kintone Λར༻͍͕ͯͨ͠ 
 ࣾ಺ͷنఆʹΑΓར༻Λଓ͚Δͷ͕೉͘͠ͳͬͨ • ؆୯ͳಡΈॻ͖͢Δ API Λඋ͑ͨɺϛχαΠζͷΫϩʔϯ * CAREER POCKET ʹ͍ͭͯ͸ޙड़
  3. Kubernetes (k8s) ͱ͸ • Google ͕ઃܭͨ͠ίϯςφΦʔέ ετϨʔγϣϯγεςϜ • ίϯςφΛΫϥελ (ෳ਺ͷϚγϯ

    ͷଋ) ಺Ͱԣஅͯ͠σϓϩΠ, ε έʔϦϯά͢ΔͨΊͷϓϥοτ ϑΥʔϜ Kubernetes - Wikimedia Commons / CC BY 4.0
  4. Pros and Cons • Pros ☺ • ಛఆͷίϯϙʔωϯτͷΈͷߋ৽ͷ৔߹ɺӨڹൣғ͕ݶΒΕΔ • εέʔϦϯά,

    Autohealing, ϩΪϯά, ϝτϦΫεऔಘͷԸܙ͕ 
 Kubernetes ʹΑͬͯಘΒΕΔ (ओʹϚωʔδυͳ Kubernetes ͷ৔߹) • Cons • Kubernetes ୯ମͰͷӡ༻͸͸͖ͬΓݴͬͯͭΒ͍ [ཁग़య] • σϓϩΠपΓͳͲ͸ॳظͷஈ֊Ͱؾͮ͘ • ಛʹεςʔτΛ࣋ͭϦιʔε (DB, ΩϟογϡͳͲ) Λ 
 ΫϥελʹࠞͥΔͱ໽հͳଘࡏʹͳΔ
  5. Կ΋ߟ͑ͳ͍ͱ٧·Δ • ಛʹ kubectl yaml ؔ࿈ • Q. ࠷৽ͷΠϝʔδΛৗʹ࢖͏Α͏ʹ͢Δʹ͸ʁ •

    ΠϝʔδλάΛมߋ͠ͳ͍ͱ৽͍͠ίϯςφ͕σϓϩΠ͞Εͳ͍ • Ͱ΋ɺ೴ࢮͰ docker pull [image]:latest ͍ͨ͠ • Q. ։ൃ, εςʔδϯά, ঎༻؀ڥͰͷ஋ͷ੾Γସ͑Λߦ͏ʹ͸ʁ • ௕ʑ͍͠ yaml ΛίϐϖࡇΓͨ͘͠ͳ͍ • Q. ൿಗʹ͢΂͖৘ใ͸Ͳ͏΍ͬͯӅ͢ʁ • ྲྀੴʹ؀ڥม਺ʹϕλॻ͖͸ͭΒ͍
  6. ࠷৽ͷΠϝʔδΛৗʹ࢖͍͍ͨ • 1. Skaffold* ͰΠϝʔδͷ Ϗϧυɾϓογϡ • 2. latest λά΋Ϗϧυ͠

    ͨΠϝʔδʹ͚ͭͯ͋͛ ͯϓογϡ͢Δ • 3. Skaffold Ͱ Kubernetes Ϋϥελ΁ͷσϓϩΠ * Skaffold ʹ͍ͭͯ͸ޙड़
  7. Skaffoldͱ͸ • Google Ͱ࡞ΒΕͨ Kubernetes ΁ͷσϓϩΠΛศརʹ͢Δπʔϧ • kubectl, kustomize, helm

    ͳͲΛΑ͠ͳʹ࣮ߦͯ͘͠ΕΔ • ϥούʔ + Ұ෦ಠࣗͷػೳ ͷΑ͏ͳ…
  8. ൿಗ৘ใΛ͍࣋ͪͨ • Β͘Β͘ίʔε (ඪ४ػೳ) • Ϋϥελ΁ͷ؅ཧݖݶΛ࣋ͬͯΔͱ༨༟ͰσʔλΛݟΔ͜ͱ͕ग़དྷΔ • GCP ͷ؅ཧը໘͔Β Key-Value

    ͷ Key ͸֬ೝՄೳ • ͜ͷϦιʔεࣗମ΋ yaml ͰදݱͰ͖Δ͕ɺ͜ͷํ๏Λ࢖͏৔߹͸ 
 ҙਤతʹ yaml Λॻ͔ͳ͍ํ͕ྑͦ͞͏ɻ (git ʹίϛοτͱ͔ͷՄೳੑ)
  9. ൿಗ৘ใΛ͍࣋ͪͨ • ηΩϡΞίʔε • HashiCorp Vault • جຊతͳ Key-Value ܗࣜͰͷอ؅Ҏ֎ʹɺಈతͳ

    IAM ੜ੒ɺ σʔλͷ༗ޮظݶɺ؂ࠪϩάɺσʔλͷ҉߸Խ/෮߸Խ ͳͲͳͲ ߦ͑Δ • AWS KMS, Cloud KMS, Cloud Secret Manager ͳͲ
  10. ͨͩ͠ • (ͲͷΈͪ) Ϋϥελ, Pod ಺ʹ৵ೖ͞ΕΔͱ͍͘Β IAM Λߜ͍ͬͯͯ ΋Ωπ͍෦෼΋͋Δ (RBAC

    ͷ࢖༻ͰΧόʔग़དྷΔ෦෼΋͋Δ) • ϓϩάϥϜଆ΋ϝϞϦʹೝূ৘ใͳͲΛ࣋ͭ͜ͱʹͳΔͷͰɺϦʔυ ΦϯϦʔίϯςφ & γΣϧΞΫηεണୣͩͬͨΓ͢Δ΂͖ (?) • ͜ͷลΓ͸ GKE ͷυΩϡϝϯτͳͲΛಡΈ·͕࣮ͨ֬͠ͳͷ͸ෆ ໌…
  11. END