Slide 1

Slide 1 text

NGINX Ingress Controller Λ׆༻ͨ͠ Retty ͷαʔϏε։ൃͱϞχλϦϯά Yuya Koda 2022/04/15 NGINX Ϣʔβʔձ 2022 य़

Slide 2

Slide 2 text

ࣗݾ঺հ ໊લ ޾ా༏࠸ ͜͏ͩΏ͏΍  ͓࢓ࣄ ΠϯϑϥΤϯδχΞ ޷͖ͳ͓ళ 4"70:ຑ෍े൪ళ ΧϨʔͷళΨϯδʔ ޷͖ͳ΋ͷ ւ઱ྉཧίʔώʔࣗಈԽLT 5XJUUFS !QPOLJP@P IUUQTVTFSSFUUZNF

Slide 3

Slide 3 text

͋ͳͨʹ#&45ͳ ͓ళ͕ݟ͔ͭΔ ໊࣮ܕάϧϝαʔϏε Retty

Slide 4

Slide 4 text

ΞδΣϯμ  ։ൃ؀ڥͷ֓ཁ B ։ൃ؀ڥͷͳΓͨͪ C ։ൃ؀ڥͷߏ੒  ϩʔυόϥϯαʔͷߏ੒ݕ౼  ϞχλϦϯάͷӡ༻ࣄྫͱϋϚͬͨͱ͜Ζ  ·ͱΊ

Slide 5

Slide 5 text

ࣾ಺։ൃ؀ڥͷͳΓͨͪ ● ϩʔΧϧ։ൃ࣌ʹ։ൃஈ֊ͷ΋ͷ͕ϨϏϡʔͰ͖ͳ͍ ○ OHSPLΛ࢖͍ͬͯͨ ■ ্ཱ͍ͪ͛ͯΔ͔ؒ͠ݟΕͳ͍ͷͰෆศ ● ։ൃ%#΍"1*ͱͷ࿈ܞ ○ खݩͷEPDLFSDPNQPTFͰ্ཱͪ͛ͨ.Z42-Ͱ͸ͳ͘։ൃ༻ͷ %#Λࢀর͍ͨ͠ ○ ผγεςϜͷ"1*Λࢀরͯ͠࿈ܞ෦෼ͷಈ࡞֬ೝΛߦ͍͍ͨ ■ ˠϙʔτϑΥϫʔσΟϯάͳͲ͕ඞཁ ։ൃ͢Δʹ͍͔͋ͨͬͯͭ͘ͷ՝୊͕͋ͬͨ

Slide 6

Slide 6 text

։ൃͷྲྀΕ  ϩʔΧϧ؀ڥͰ։ൃमਖ਼  मਖ਼ͨ͠ΠϝʔδΛ&$3ʹΞοϓϩʔυ  εΫϦϓτΛ࢖༻ͯࣗ͠෼ͷ%FQMPZNFOUͷΠϝʔδΛͰΞοϓϩʔυ ͨ͠΋ͷʹมߋ  ൓ө֬ೝ ԼهͷΑ͏ͳྲྀΕͰ։ൃʙ֬ೝΛߦ͏

Slide 7

Slide 7 text

ࣾ಺։ൃ؀ڥͷߏ੒ ˞ϗετ໊ͳͲ͸͢΂ͯՍۭͷ΋ͷ IUUQT\VTFS^\TFSWJDF@OBNF^EFWSFUUZNF ʹΞΫηεͯ͠දࣔ֬ೝ εΫϦϓτͰ%FQMPZNFOUͷΠϝʔδΛมߋ͢Δ ։ൃऀYαʔϏεຖʹ*OHSFTT4FSWJDF%FQMPZNFOU͕ଘࡏ͢Δ มߋΛDPNNJU CVJMEQVTI

Slide 8

Slide 8 text

ϩʔυόϥϯαʔͷߏ੒ʹ͍ͭͯ

Slide 9

Slide 9 text

ϩʔυόϥϯαʔͷߏ੒Ҋ ։ൃ؀ڥߏங౰ॳ ೥݄ࠒ ͸ҎԼͷΑ͏ͳબ୒ࢶ͕͋ΓɺͦΕͧΕΛൺֱݕ౼ ͠·ͨ͠ɻ ● "-#*OHSFTT ● $-# /-#  /(*/9*OHSFTT$POUSPMMFS ● "-#*OHSFTT /(*/9*OHSFTT$POUSPMMFS

Slide 10

Slide 10 text

A) ALB Ingress "84"-#Λ*OHSFTTͱͯ͠࢖༻͢Δ&,4ͩͱఆ൪ ͷߏ੒ ● ϝϦοτ ○ ߏ੒͕ඇৗʹγϯϓϧ ○ "-#ͷػೳ͕࢖͑Δ ● σϝϦοτ ○ "-#Λ*OHSFTTͱͯ͠ར༻͢ΔͷͰ"-#ͷ੍໿Λͦͷ··ड͚Δ ■ ਖ਼نදݱ͕࢖͑ͳ͍😭  ■ 4FSWJDF2VPUB ● λʔήοτͷొ࿥਺͸σϑΥϧτͰ Ҿ্͖͛Մೳ  ● λʔήοτͷొ࿥਺͸૿͑ΔՄೳੑ͕͋ͬͨ

Slide 11

Slide 11 text

B) CLB / (NLB) + NGINX Ingress /(*/9*OHSFTTΛUZQF-PBE#BMBODFSͰެ։ͯ͠ɺશͯͷϧʔςΟϯάΛ/(*/9 ʹ೚ͤΔํࣜ ● ϝϦοτ ○ /(*/9ͰϧʔςΟϯάͰ͖Δ ■ ਖ਼نදݱ΋࢖͑Δ͠ϔομʔ΋৮ΕΔ ● σϝϦοτ ○ $-#Λ࢖͏ඞཁ͕͋ͬͨ ݱࡏ͸/-#͕ར༻Մೳ  ■ ౰ॳ͸UZQF-PBE#BMBODFSͳ4FSWJDFͰ࢖༻Ͱ͖Δ&-#͕ $-#ͷΈͩͬͨ

Slide 12

Slide 12 text

C) ALB Ingress + NGINX Ingress "-#*OHSFTTΛϑϩϯτʹ഑ஔͭͭ͠ɺͦͷޙΖͰ/(*/9*OHSFTTΛಈ͔ͯ͠ͲͪΒ΋ ࢖͏ํࣜɻ"ͱ#ͷ͍͍ͱ͜औΓߏ੒ ● ϝϦοτ ○ /(*/9ͰϧʔςΟϯάͰ͖Δ ■ "-#Ͱ΋Ͱ͖Δ͠"-#ͷػೳ΋࢖͑Δ ○ ౰࣌ͱͯ͠͸ $-#Λ࢖Θͳͯ͘΋͍͍ ● σϝϦοτ ○ *OHSFTT$POUSPMMFSΛෳ਺؅ཧ͢Δඞཁ͕͋Δ ■ ͱ͸͍͑ӡ༻͍ͯͯ͠େมͩͳͱײͨ͜͡ͱ͕ͳ͍

Slide 13

Slide 13 text

ύλʔϯ C Λ࠾༻ͨ͠ཧ༝ ओʹ$-#Λ࢖͍ͨ͘ͳ͍ͱ͍͏ͷ͕େ͖ͳཧ༝ "84-PBE#BMBODFS$POUSPMMFSͷొ৔ʹΑΓݱࡏղফ͍ͯ͠Δ໰୊΋ଟ͍ ● ౰࣌͸ $-#Λ࢖Θͳ͍બ୒ࢶ͕͜Ε͔͠ͳ͔ͬͨ ○ ྩ࿨ʹ$-#Λ৽ن࡞੒͢Δͷ͸ͪΐͬͱʜ ● &,4PO'BSHBUF΁ͷ৐Γ׵͑ͷՄೳੑ͕͋ͬͨ ○ ίετ؍఺͔Β'BSHBUF΁ͷҠߦ͸݁ՌతʹߦΘͣ  ○ ౰࣌͸ PO'BSHBUFͷ৔߹͸"-#*OHSFTTΛ࢖͏͔͠ͳ͔ͬͨ ● "-#୯ମͩͱػೳෆ଍Λײͨ͡ ○ ϧʔςΟϯάͷઃఆ ○ Ϧεφʔϧʔϧͷ্ݶ͕σϑΥϧτͩͱ Ҿ্͖͛Մೳ

Slide 14

Slide 14 text

࠷ऴతͳߏ੒ ˞ϗετ໊ͳͲ͸͢΂ͯՍۭͷ΋ͷ

Slide 15

Slide 15 text

ӡ༻ࣄྫ

Slide 16

Slide 16 text

Prometheus + Grafana ʹΑΔϞχλϦϯά ϞχλϦϯά؀ڥͷߏஙʹ͸QSPNFUIFVTPQFSBUPSLVCFQSPNFUIFVTΛ࢖༻ 1SPNFUIFVT(SBGBOB"MFSUNBOBHFSͳͲΛΠΠײ͡ʹηοτΞοϓͰ͖Δ IUUQTHJUIVCDPNQSPNFUIFVTPQFSBUPSLVCFQSPNFUIFVT

Slide 17

Slide 17 text

kube-prometheus vs prometheus-operator QSPNFUIFVTPQFSBUPS͸ʮ1SPNFUIFVTͷ0QFSBUPS ୯ମ ʯͰ(SBGBOB΍֤छ FYQPSUFS͸ผ్Πϯετʔϧ͢Δඞཁ͕͋Δɻ QSPNFUIFVTPQFSBUPSΛ಺แ͠ɺ(SBGBOB"MFSUNBOBHFS&YQPSUFSΛೖΕͯ͘ ΕΔͷ͕LVCFQSPNFUIFVT

Slide 18

Slide 18 text

nginx-prometheus-exporter ͸ඞཁʁ OHJOYJODLVCFSOFUFTJOHSFTTΛ࢖͏৔߹ʹ͸ಉࠝ͞Ε͓ͯΓɺϑϥάͰ༗ޮԽ͢Δ ͚ͩͳͷͰผ్FYQPSUFSΛೖΕͳͯ͘΋ྑ͍ IUUQTHJUIVCDPNOHJOYJODOHJOYQSPNFUIFVTFYQPSUFS

Slide 19

Slide 19 text

exporter ͷઃఆ OHJOYJOHSFTTͷҾ਺ͱͯ͠FOBCMFQSPNFUIFVTNFUSJDTΛ౉ͯ͠ɺεΫϨΠϓ Ͱ͖ΔΑ͏ʹ֘౰ͷϙʔτ ࠓճ͸ Λެ։͢Δ

Slide 20

Slide 20 text

औಘͰ͖ΔϝτϦΫεʹ͍ͭͯ 044൛ͩͱऔಘͰ͖ΔϝτϦΫεׂ͕ͱݶΒΕΔͨΊɺΑΓৄࡉʹϞχλϦϯά͢Δ ৔߹͸/(*/91MVT͕ྑͦ͞͏ ։ൃ؀ڥͩͱࢮ׆؂ࢹͰ͖Ε͹े෼ͳͷͰࠓͷͱ͜Ζ໰୊ͳ͠ ● $PNNPO ○ OHJOYFYQPSUFS@CVJME@JOGP ○ OJHOY@VQ ● 4UBUVT ○ OHJOY@DPOOFDUJPOT@BDDFQUFE ○ OHJOY@DPOOFDUJPOT@BDUJWF ○ OHJOY@DPOOFDUJPOT@IBOEMFE ○ OHJOY@DPOOFDUJPOT@SFBEJOH ○ OHJOY@DPOOFDUJPOT@XBJUJOH ○ OHJOY@DPOOFDUJPOT@XSJUJOH ○ OHJOY@IUUQ@SFRVFTUT@UPUBM 044/(*/9ͰऔಘͰ͖ΔϝτϦΫεҰཡ

Slide 21

Slide 21 text

·ͱΊ

Slide 22

Slide 22 text

·ͱΊ ● &,4ͷ৔߹͸"-#*OHSFTT SEQBSUZ*OHSFTTͷ૊Έ߹Θͤ͸ΞϦ ○ "-#ͷػೳΛ࢖͍ͭͭ଍Γͳ͍ՕॴΛิ͑Δ ■ "$.8"'0*%$"VUI ● ϞχλϦϯά؀ڥͷߏஙʹ͸LVCFQSPNFUIFVT͕ศར ○ 2VJDLTUBSUͷ௨Γʹ΍Ε͹Ұ௨ΓΠΠײ͡ʹଗ͏ ○ LVCFQSPNFUIFVTʹݶΒͣ 0QFSBUPSͦͷ΋ͷͷֶशίετ͸͔͔Δ

Slide 23

Slide 23 text

ืूϙδγϣϯ ● ϑϩϯτΤϯυΤϯδχΞ ● όοΫΤϯυΤϯδχΞ ● ΞϓϦΤϯδχΞ ● ΤϯδχΞϦϯάϚωʔδϟʔ ● σʔλΞφϦετ ● σʔλαΠΤϯςΟετ ● σʔλΤϯδχΞ ● ΠϯϑϥΤϯδχΞ ৄࡉ͸ͪ͜Β