Slide 1

Slide 1 text

K8S BASIC MONITORING STARTUP THE LEARNING KUBERNETES

Slide 2

Slide 2 text

MY NAME IS NNAO45 ࣗݾ঺հ ˏnnao45 ✓ 26ࡀ(ฏ੒3೥ੜ·Ε) ✓ ࠓ͸ओʹΫϥ΢υ԰ ✓ ཱڭେֶཧֶ෦ԽֶՊଔۀ ✓ ςχεྺ10೥ ✓ ITྺ4೥໨ ✓ Go࠷ߴ!!zsh࠷ߴ!! ✓cndjpษڧձӡӦ ✓גࣜձࣾαΠόʔΤʔδΣϯτॴଐ ✓ ݩISPͷNW͕ϝΠϯ

Slide 3

Slide 3 text

INTRODUCTION OF START UP THE K8S MONITORING. ͱΓ͋͑ͣKUBERNETESͷ෮शͷ΍ͭ ͱΓ͋͑ͣ஫໨ͯ͠Δͱ͔ݴ͓͖ͬͯΌ͍͍ײ͕͋ΔόζͬͯΔ΍ͭɻ ίϯςφ؅ཧʹඞཁͳϚΠΫϩαʔϏε܈ͬͯײ͡ɻ https://www2.wwt.com/all-blog/kubernetes-101/kubernetes-101-3/

Slide 4

Slide 4 text

INTRODUCTION OF START UP THE K8S MONITORING. ͱΓ͋͑ͣKUBERNETESͷ෮शͷ΍ͭ ཁ͸ɺίϯςφʔͷΦʔέετϨʔλʔɻ ·ͨͦΕΛୡ੒͢ΔͨΊͷϚΠΫϩαʔϏε܈ɻ http://dondocker.com/guardar-nuestras-imagenes-docker/

Slide 5

Slide 5 text

INTRODUCTION OF START UP THE K8S MONITORING. ͱΓ͋͑ͣKUBERNETESͷ෮शͷ΍ͭ ImmutableɾɾɾʮෆมʯͳΠϯϑϥɻ Declarationɾɾɾʮએݴʯతઃఆɻ Self-healingɾɾɾࣗݾճ෮͢ΔγεςϜɻ Micro-serviceɾɾɾAPI࿈ܞʹΑΔίϯϙʔωϯτͷ෼཭ɻ Abstractionɾɾɾந৅ԽʹΑΔϙʔλϏϦςΟɻ kubernetesͷࢥ૝

Slide 6

Slide 6 text

INTRODUCTION OF START UP THE K8S MONITORING. ͱΓ͋͑ͣKUBERNETESͷ෮शͷ΍ͭ LinuxͷίϯςφϥϯλΠϜʹΑΓ࿦ཧతʹ෼཭͞Εͨϓϩηεɻ ͲΕ͘Β͍ɺԿΛ෼཭͍ͯ͠Δ͔͸ίϯςφϥϯλΠϜʹΑΔɻ ίϯςφ Container

Slide 7

Slide 7 text

INTRODUCTION OF START UP THE K8S MONITORING. ͱΓ͋͑ͣKUBERNETESͷ෮शͷ΍ͭ kubernetesͷ؅ཧ͢Δίϯςφ܈ͷ࠷খ୯Ґɻ ஫ҙͳͷ͸ɺpod಺ͷίϯςφ͸̍ݸҎ্Ͱ΋podɻ ίϯςφ ίϯςφ ϙου Pod

Slide 8

Slide 8 text

INTRODUCTION OF START UP THE K8S MONITORING. ͱΓ͋͑ͣKUBERNETESͷ෮शͷ΍ͭ KubernetesΛ૸ΒͤΔɺϗετͷࣄΛࢦ͢ɻ ͪͳΈʹϚελʔϊʔυͱ͔ɺϫʔΧʔϊʔυͱ͔͍͏ දݱ͸આ໌ͷ্Ͱ͸ศར͕ͩ͋·Γਖ਼֬͡Όͳ͍ʢͱࢥͬͯΔʣɻ ίϯςφ ίϯςφ ϙου Node ίϯςφ ίϯςφ ϙου ϊʔυ

Slide 9

Slide 9 text

INTRODUCTION OF START UP THE K8S MONITORING. ͱΓ͋͑ͣKUBERNETESͷ෮शͷ΍ͭ ̍ͭͷϚελʔϊʔυ(ਖ਼֬ʹ͸Ұ૊ͷϚελʔϓϩηε)Ͱ ؅ཧ͞ΕΔϫʔΧʔϊʔυʢਖ਼֬ʹ͸೚ҙͷ૊ͷϫʔΧʔϓϩηεʣ܈ ίϯςφ ίϯςφ ϙου Cluster ίϯςφ ίϯςφ ϙου ϊʔυ ίϯςφ ίϯςφ ϙου ίϯςφ ίϯςφ ϙου ϊʔυ Ϋϥελʔ

Slide 10

Slide 10 text

INTRODUCTION OF START UP THE K8S MONITORING. ͱΓ͋͑ͣKUBERNETESͷ෮शͷ΍ͭ ΫϥελʔͷதͰ࿦ཧతʹϙουΛ ؅ཧ͍ͨ͠ͱ͖ʹ࢖͏୯Ґɻແࢦఆͷ৔߹defaultωʔϜεϖʔεɻ ίϯςφ ίϯςφ ϙου NameSpace ίϯςφ ίϯςφ ϙου ϊʔυ ίϯςφ ίϯςφ ϙου ίϯςφ ίϯςφ ϙου ϊʔυ Ϋϥελʔ ίϯςφ ίϯςφ ϙου ίϯςφ ίϯςφ ϙου ωʔϜ εϖʔε ωʔϜ εϖʔε ϊʔυΛ·ͨ͛Δͷ஌ͬͯͨʁ

Slide 11

Slide 11 text

LOOK AT THE K8S DEFAULT FUNCTION. kubernetes͸μΠφϛοΫͳϥΠϑαΠΫϧΛඪ४Ͱ૷උɻ Liveness Lifecycle Logging Kube-health

Slide 12

Slide 12 text

LOOK AT THE K8S DEFAULT FUNCTION. kubernetes͸μΠφϛοΫͳϥΠϑαΠΫϧΛඪ४Ͱ૷උɻ Liveness ʮLiveness probeʯʹΑΔϓϩηε؂ࢹ ʮReadiness probeʯʹΑΔAPI؂ࢹ Lifecycle Logging Kube-health

Slide 13

Slide 13 text

LOOK AT THE K8S DEFAULT FUNCTION. kubernetes͸μΠφϛοΫͳϥΠϑαΠΫϧΛඪ४Ͱ૷උɻ Liveness ʮLiveness probeʯʹΑΔϓϩηε؂ࢹ ʮReadiness probeʯʹΑΔAPI؂ࢹ Lifecycle Logging Kube-health

Slide 14

Slide 14 text

ʮLiveness probeʯʹΑΔϓϩηε؂ࢹ LOOK AT THE K8S DEFAULT FUNCTION. apiVersion: v1 kind: Pod ~snip~ livenessProbe: exec: command: - cat - /tmp/healthy initialDelaySeconds: 5 periodSeconds: 5 ~snip~ pods/probe/exec-liveness.yaml ✓ ͦͷίϯςφͷਖ਼ৗੑΛ httpϦΫΤετ΍ɺpingɺ ϑΝΠϧଘࡏͳͲͰ֬ೝ͢Δɻ ࣦഊͰ֘౰pod࠶ىಈ Pod Kubernetes cluster /tmp/healthy

Slide 15

Slide 15 text

LOOK AT THE K8S DEFAULT FUNCTION. kubernetes͸μΠφϛοΫͳϥΠϑαΠΫϧΛඪ४Ͱ૷උɻ Liveness ʮLiveness probeʯʹΑΔϓϩηε؂ࢹ ʮReadiness probeʯʹΑΔAPI؂ࢹ Lifecycle Logging Kube-health

Slide 16

Slide 16 text

ʮReadiness probeʯʹΑΔ४උঢ়ଶͷ؂ࢹ LOOK AT THE K8S DEFAULT FUNCTION. apiVersion: v1 kind: Pod ~snip~ readinessProbe: tcpSocket: port: 8080 initialDelaySeconds: 40 periodSeconds: 10 ~snip~ pods/probe/exec-readiness.yaml ✓ ͦͷίϯςφ͕࠷ॳ͸ ϦΫΤετΛड͚෇͚ͳ͍ঢ়ଶͰ ىಈͯ͠ɺReadiness͕OKޙɺ ϦΫΤετΛड͚ΔΑ͏ʹ͢Δɻ

Slide 17

Slide 17 text

ʮReadiness probeʯɾɾɾʁ ɹɹɹʮLiveness probeʯɾɾɾʁ LOOK AT THE K8S DEFAULT FUNCTION.

Slide 18

Slide 18 text

LOOK AT THE K8S DEFAULT FUNCTION. kubernetes͸μΠφϛοΫͳϥΠϑαΠΫϧΛඪ४Ͱ૷උɻ Liveness Lifecycle Logging Kube-health

Slide 19

Slide 19 text

LOOK AT THE K8S DEFAULT FUNCTION. kubernetes͸μΠφϛοΫͳϥΠϑαΠΫϧΛඪ४Ͱ૷උɻ Liveness Lifecycle ʮReplica SetʯʹΑΔ߹ܭPod਺؅ཧɻ ʮDaemon SetʯʹΑΔper nodeͳPod਺؂ࢹ Logging Kube-health

Slide 20

Slide 20 text

LOOK AT THE K8S DEFAULT FUNCTION. kubernetes͸μΠφϛοΫͳϥΠϑαΠΫϧΛඪ४Ͱ૷උɻ Liveness Lifecycle ʮReplica SetʯʹΑΔ߹ܭPod਺؅ཧɻ ʮDaemon SetʯʹΑΔper nodeͳPod਺؂ࢹ Logging Kube-health

Slide 21

Slide 21 text

ʮReplica SetʯʹΑΔ߹ܭPod਺؅ཧɻ LOOK AT THE K8S DEFAULT FUNCTION. Kubernetes Cluster Worker Node Pod Pod Pod Worker Node ✓ʮશ෦Ͱ3ݸɺSlaveͷDB ͕ཉ͍͠ʯ࣌ͳͲʹ࢖͏ɻ apiVersion: apps/v1 kind: ReplicaSet metadata: name: frontend labels: app: guestbook tier: frontend spec: # this replicas value is default # modify it according to your case replicas: 3 ~snip~ controllers/frontend.yaml

Slide 22

Slide 22 text

LOOK AT THE K8S DEFAULT FUNCTION. Kubernetes Cluster Worker Node Worker Node ෛՙ͕গͳ͍Node͔Β શ෦ͰPodΛ̏ݸ࡞Ζ͏ɻ ReplicaSet Controller DEPLOY DEPLOY DEPLOY apiVersion: apps/v1 kind: ReplicaSet metadata: name: frontend labels: app: guestbook tier: frontend spec: # this replicas value is default # modify it according to your case replicas: 3 ~snip~ controllers/frontend.yaml ʮReplica SetʯʹΑΔ߹ܭPod਺؅ཧɻ

Slide 23

Slide 23 text

LOOK AT THE K8S DEFAULT FUNCTION. ReplicaSet Controller Kubernetes Cluster Worker Node Pod Pod Pod Worker Node શ෦Ͱ3ݸ͋Δ͔ΒOK apiVersion: apps/v1 kind: ReplicaSet metadata: name: frontend labels: app: guestbook tier: frontend spec: # this replicas value is default # modify it according to your case replicas: 3 ~snip~ controllers/frontend.yaml ʮReplica SetʯʹΑΔ߹ܭPod਺؅ཧɻ

Slide 24

Slide 24 text

LOOK AT THE K8S DEFAULT FUNCTION. ReplicaSet Controller Kubernetes Cluster Worker Node Pod Pod Pod Worker Node ͋ɺ̍ݸམͪͨʂ apiVersion: apps/v1 kind: ReplicaSet metadata: name: frontend labels: app: guestbook tier: frontend spec: # this replicas value is default # modify it according to your case replicas: 3 ~snip~ controllers/frontend.yaml ʮReplica SetʯʹΑΔ߹ܭPod਺؅ཧɻ

Slide 25

Slide 25 text

LOOK AT THE K8S DEFAULT FUNCTION. apiVersion: apps/v1 kind: ReplicaSet metadata: name: frontend labels: app: guestbook tier: frontend spec: # this replicas value is default # modify it according to your case replicas: 3 ~snip~ controllers/frontend.yaml ReplicaSet Controller Kubernetes Cluster Worker Node Pod Pod Pod Worker Node ̏ݸΛΩʔϓ͠ͳ͖Όɻ ̍ݸσϓϩΠʔʂ DEPLOY ʮReplica SetʯʹΑΔ߹ܭPod਺؅ཧɻ

Slide 26

Slide 26 text

LOOK AT THE K8S DEFAULT FUNCTION. apiVersion: apps/v1 kind: ReplicaSet metadata: name: frontend labels: app: guestbook tier: frontend spec: # this replicas value is default # modify it according to your case replicas: 3 ~snip~ controllers/frontend.yaml ReplicaSet Controller Kubernetes Cluster Worker Node Pod Pod Pod Worker Node શ෦Ͱ3ݸ͋Δ͔ΒOK Pod ʮReplica SetʯʹΑΔ߹ܭPod਺؅ཧɻ

Slide 27

Slide 27 text

LOOK AT THE K8S DEFAULT FUNCTION. kubernetes͸μΠφϛοΫͳϥΠϑαΠΫϧΛඪ४Ͱ૷උɻ Liveness Lifecycle ʮReplica SetʯʹΑΔ߹ܭPod਺؅ཧɻ ʮDaemon SetʯʹΑΔper nodeͳPod਺؂ࢹ Logging Kube-health

Slide 28

Slide 28 text

ʮDaemon SetʯʹΑΔper nodeͳPod਺؂ࢹ LOOK AT THE K8S DEFAULT FUNCTION. Kubernetes Cluster Worker Node apiVersion: apps/v1 kind: DaemonSet metadata: name: fluentd-elasticsearch namespace: kube-system labels: k8s-app: log ~snip~ controllers/daemonset.yaml Worker Node Worker Node log log Pod Pod ✓ʮಛఆͷϊʔυʹ̍ݸͣͭɺ ϩάͷPod͕ཉ͍͠ʯͳͲ ͷ࣌ʹ࢖͏ɻ

Slide 29

Slide 29 text

ʮDaemon SetʯʹΑΔper nodeͳPod਺؂ࢹ LOOK AT THE K8S DEFAULT FUNCTION. Kubernetes Cluster Worker Node tagͰࢦఆͨ͠ϊʔυʹ ̍ݸͣͭͰσϓϩΠɻ ReplicaSet Controller DEPLOY DEPLOY apiVersion: apps/v1 kind: DaemonSet metadata: name: fluentd-elasticsearch namespace: kube-system labels: k8s-app: log ~snip~ controllers/daemonset.yaml Worker Node log log Worker Node

Slide 30

Slide 30 text

ʮDaemon SetʯʹΑΔper nodeͳPod਺؂ࢹ LOOK AT THE K8S DEFAULT FUNCTION. Kubernetes Cluster Worker Node tagͰࢦఆͨ͠ϊʔυʹ ̍ݸͣͭ͋Δ͔ΒOKɻ ReplicaSet Controller apiVersion: apps/v1 kind: DaemonSet metadata: name: fluentd-elasticsearch namespace: kube-system labels: k8s-app: log ~snip~ controllers/daemonset.yaml Worker Node log log Pod Pod Worker Node

Slide 31

Slide 31 text

ͳΔ΄Ͳɺɺɺɺʁ LOOK AT THE K8S DEFAULT FUNCTION.

Slide 32

Slide 32 text

σϞΓ·͢ɻ LOOK AT THE K8S DEFAULT FUNCTION. Kubernetes Cluster K8s-node-001 K8s-node-002 K8s-node-003 Master Worker Worker K8s-lab-001 VIP (LB) Metallb Metallb Master

Slide 33

Slide 33 text

σϞᶃ LOOK AT THE K8S DEFAULT FUNCTION. Kubernetes Cluster K8s-node-001 K8s-node-002 K8s-node-003 Master Worker Worker K8s-lab-001 VIP (LB) Metallb Metallb Master ̍ճୟ͔Ε ͨΒࢮ͵

Slide 34

Slide 34 text

σϞᶄ LOOK AT THE K8S DEFAULT FUNCTION. Kubernetes Cluster K8s-node-001 K8s-node-002 K8s-node-003 Master Worker Worker K8s-lab-001 VIP (LB) Metallb Metallb Master 10ඵ ܦͬͨΒαʔ Ϗε։࢝ 10ඵ ܦͬͨΒαʔ Ϗε։࢝

Slide 35

Slide 35 text

LOOK AT THE K8S DEFAULT FUNCTION. kubernetes͸μΠφϛοΫͳϥΠϑαΠΫϧΛඪ४Ͱ૷උɻ Liveness Lifecycle Logging Kube-health

Slide 36

Slide 36 text

LOOK AT THE K8S DEFAULT FUNCTION. kubernetes͸μΠφϛοΫͳϥΠϑαΠΫϧΛඪ४Ͱ૷උɻ Liveness Lifecycle Logging ίϯςφϨϕϧͷpod͔ΒͷϩΪϯά ϊʔυϨϕϧͷpod͔ΒͷϩΪϯά ΫϥελϨϕϧͷpod͔ΒͷϩΪϯά Kube-health

Slide 37

Slide 37 text

LOOK AT THE K8S DEFAULT FUNCTION. kubernetes͸μΠφϛοΫͳϥΠϑαΠΫϧΛඪ४Ͱ૷උɻ Liveness Lifecycle Logging ίϯςφϨϕϧͷpod͔ΒͷϩΪϯά ϊʔυϨϕϧͷpod͔ΒͷϩΪϯά ΫϥελϨϕϧͷpod͔ΒͷϩΪϯά Kube-health

Slide 38

Slide 38 text

ίϯςφϨϕϧͷpod͔ΒͷϩΪϯά LOOK AT THE K8S DEFAULT FUNCTION. apiVersion: v1 kind: Pod metadata: name: counter spec: containers: - name: count image: busybox args: [/bin/sh, -c, 'i=0; while true; do echo "$i: $(date)"; i=$((i+1)); sleep 1; done'] debug/counter-pod.yaml Pod ✓ Ұ൪جຊతͳϩΪϯάͰɺ kubectl logsͰݟΔ ࢓૊Έ͸ͨͩpodsͷstdoutͱ stderrΛݟͯΔ͚ͩɻ Container stdout stderr ʼKUBECTL GET LOGS

Slide 39

Slide 39 text

LOOK AT THE K8S DEFAULT FUNCTION. kubernetes͸μΠφϛοΫͳϥΠϑαΠΫϧΛඪ४Ͱ૷උɻ Liveness Lifecycle Logging ίϯςφϨϕϧͷpod͔ΒͷϩΪϯά ϊʔυϨϕϧͷpod͔ΒͷϩΪϯά ΫϥελϨϕϧͷpod͔ΒͷϩΪϯά Statement

Slide 40

Slide 40 text

Node ϊʔυϨϕϧͷpod͔ΒͷϩΪϯά LOOK AT THE K8S DEFAULT FUNCTION. Pod ✓ϊʔυ୯ҐͰݟΔ৔߹͸ɺ pod͔Βഉग़͞ΕΔstdoutͱ stderrΛॴଐ͢Δϊʔυͷ ϑΝΠϧʹॻ͖ग़͓ͯ͘͠ɻ Container stdout stderr stdout stderr Pod Container log rotate archive ✓ ͜ͷΑ͏ʹߏஙͨ͠৔߹ɺ ϩά͸͔ͳΓͷྔʹͳΔࣄ͕ ଟ͍ͷͰɺಉ࣌ʹϩάͷ ϩʔςʔτͷ࢓૊ΈΛ࣮૷ ͓ͯ͘͠ࣄ͕΄΅ඞਢɻ

Slide 41

Slide 41 text

LOOK AT THE K8S DEFAULT FUNCTION. kubernetes͸μΠφϛοΫͳϥΠϑαΠΫϧΛඪ४Ͱ૷උɻ Liveness Lifecycle Logging ίϯςφϨϕϧͷpod͔ΒͷϩΪϯά ϊʔυϨϕϧͷpod͔ΒͷϩΪϯά ΫϥελϨϕϧͷpod͔ΒͷϩΪϯά Kube-health

Slide 42

Slide 42 text

ΫϥελϨϕϧͷpod͔ΒͷϩΪϯά LOOK AT THE K8S DEFAULT FUNCTION. Pod ✓ ͸͖ͬΓݴͬͯɺ Ϋϥελ୯ҐͰϩάΛݟ͍ͨ ৔߹Ͳ͏͢Δ͔͸࣮૷ʹΑΔɻ Container Pod Container ✓ ͱ͸ݴͬͯ΋ɺͦΕͰ ऴΘΓ͸ऐ͍͠ͷͰ ୅දతͳϩΪϯάγεςϜ Λݟ͍͖ͯ·͠ΐ͏ Pod Container Pod Container Kubernetes Cluster ?

Slide 43

Slide 43 text

Node ΫϥελϨϕϧͷpod͔ΒͷϩΪϯά LOOK AT THE K8S DEFAULT FUNCTION. ✓ ϊʔυϩΪϯάΤʔδΣϯτํࣜ Pod Container stdout stderr stdout stderr Pod Container Node Pod Container stdout stderr stdout stderr Pod Container Log agent log Backend ΫϥελϨϕϧͷpod͔ΒͷϩΪϯά

Slide 44

Slide 44 text

INTRODUCTION OF START UP THE K8S MONITORING. ͱΓ͋͑ͣKUBERNETESͷ෮शͷ΍ͭ Kubernetes্ͷpod಺Ͱɺ ҟͳΔίϯςφ͕ಉ͡σΟεΫʢྫ͑͹ϩάసૹ΍ίϯςϯπͷڞ༗ʣ Λڞ༗͍ͨ͠৔߹ʹ࢖͏΍ͭɻ Sidecarίϯςφ ίϯςφ ίϯςφ ϙου ϊʔυ σΟεΫ

Slide 45

Slide 45 text

Node log Backend ΫϥελϨϕϧͷpod͔ΒͷϩΪϯά LOOK AT THE K8S DEFAULT FUNCTION. ✓ ετϦʔϛϯάαΠυΧʔํࣜ Pod app streaming a.log node.log Pod app streaming b.log Pod app streaming node.log Pod app streaming Node a.log b.log stdout stderr stdout stderr stdout stderr stdout stderr Log agent

Slide 46

Slide 46 text

Node ΫϥελϨϕϧͷpod͔ΒͷϩΪϯά LOOK AT THE K8S DEFAULT FUNCTION. Pod App log Backend ΫϥελϨϕϧͷpod͔ΒͷϩΪϯά ✓ ϙουΠϯΤʔδΣϯτํࣜ˞ sidecar Log agent a.log Pod App sidecar Log agent b.log streaming streaming ※kubectl logs͔ΒϩάΛݟΔࣄ͕Ͱ͖ͳ͘ͳΔߏ੒Ͱ͢ɻ

Slide 47

Slide 47 text

LOOK AT THE K8S DEFAULT FUNCTION. kubernetes͸μΠφϛοΫͳϥΠϑαΠΫϧΛඪ४Ͱ૷උɻ Liveness Lifecycle Logging Kube-health

Slide 48

Slide 48 text

LOOK AT THE K8S DEFAULT FUNCTION. kubernetes͸μΠφϛοΫͳϥΠϑαΠΫϧΛඪ४Ͱ૷උɻ Liveness Lifecycle Logging Kube-health kubeࣗ਎ͷॏཁίϯϙʔωϯτͷ؂ࢹ ͦͷଞkube-systemͷ؂ࢹ HeapsterʹΑΔϦιʔε؂ࢹ

Slide 49

Slide 49 text

LOOK AT THE K8S DEFAULT FUNCTION. kubernetes͸μΠφϛοΫͳϥΠϑαΠΫϧΛඪ४Ͱ૷උɻ Liveness Lifecycle Logging Kube-health kubeࣗ਎ͷॏཁίϯϙʔωϯτͷ؂ࢹ ͦͷଞkube-systemͷ؂ࢹ HeapsterʹΑΔϦιʔε؂ࢹ

Slide 50

Slide 50 text

kubeࣗ਎ͷॏཁίϯϙʔωϯτͷ؂ࢹ ᶃ kubelet LOOK AT THE K8S DEFAULT FUNCTION. ✓ kubernetes্ͰίϯςφΛಈ͔͢ϫʔΧϓϩηεͷ৺ଁ෦ɻ ✓ docker,rktlet,containerd౳ͷϥϯλΠϜͱີ઀ͳؔ܎ʹ஫໨ ίϯςφͱͯ͠ॴ༗͢Δ಺෦IP΁ͷping؂ࢹ ίϯςφϥϯλΠϜͷσʔϞϯͷϓϩηε؂ࢹ kubeletίϯςφ͕crashLoopͯ͠ͳ͍͔Ͳ͏͔

Slide 51

Slide 51 text

kubeࣗ਎ͷॏཁίϯϙʔωϯτͷ؂ࢹ ᶄ etcd LOOK AT THE K8S DEFAULT FUNCTION. ✓ kubernetes্Ͱߏ੒৘ใΛอଘ͢Δ෼ࢄKVSɻ ✓ etcd͕࣋ͭಠࣗͷΤϯυϙΠϯτΛ؂ࢹ Listenͯ͠Δ(:2379౳)ϙʔτͷ؂ࢹ ίϯςφͱͯ͠ॴ༗͢Δ಺෦IP΁ͷping؂ࢹ /stats͔Β throughput, success, error, latencyϝτϦΫε /metrcs͔Βdisk ΦϖϨʔγϣϯ,gRPC ͳͲ಺෦ͷϝτϦΫε etcdίϯςφ͕crashLoopͯ͠ͳ͍͔Ͳ͏͔

Slide 52

Slide 52 text

LOOK AT THE K8S DEFAULT FUNCTION. kubernetes͸μΠφϛοΫͳϥΠϑαΠΫϧΛඪ४Ͱ૷උɻ Liveness Lifecycle Logging Kube-health kubeࣗ਎ͷॏཁίϯϙʔωϯτͷ؂ࢹ ͦͷଞkube-systemͷ؂ࢹ metrics-serverʹΑΔϦιʔε؂ࢹ

Slide 53

Slide 53 text

ͦͷଞkube-systemͷ؂ࢹ ᶃ kube-apiserver ᶄ kube-schedulerɾɾɾͳͲ LOOK AT THE K8S DEFAULT FUNCTION. ✓ ͍ΘΏΔϚελʔϊʔυͰಈ͍͍ͯΔϓϩηε ✓ σϑΥϧτͩͱ໊લۭؒkube-systemͰಈ͍͍ͯΔίϯςφ ίϯςφͱͯ͠ॴ༗͢Δ಺෦IP΁ͷping؂ࢹ ίϯςφ͕crashLoopͯ͠ͳ͍͔Ͳ͏͔ ͱΓ໊͋͑ͣલۭؒkube-systemͷίϯςφ਺͸ݟ͓ͯ͘

Slide 54

Slide 54 text

LOOK AT THE K8S DEFAULT FUNCTION. kubernetes͸μΠφϛοΫͳϥΠϑαΠΫϧΛඪ४Ͱ૷උɻ Liveness Lifecycle Logging Kube-health kubeࣗ਎ͷॏཁίϯϙʔωϯτͷ؂ࢹ ͦͷଞkube-systemͷ؂ࢹ metrics-serverʹΑΔϦιʔε؂ࢹ

Slide 55

Slide 55 text

LOOK AT THE K8S DEFAULT FUNCTION. ※ެࣜֆͰ͢ metrics-serverʹΑΔϦιʔε؂ࢹ https://github.com/kubernetes/community/blob/master/contributors/design-proposals/ instrumentation/monitoring_architecture.md

Slide 56

Slide 56 text

LOOK AT THE K8S DEFAULT FUNCTION. ※ެࣜֆͰ͢ metrics-serverʹΑΔϦιʔε؂ࢹ https://github.com/kubernetes/community/blob/master/contributors/design-proposals/ instrumentation/monitoring_architecture.md

Slide 57

Slide 57 text

LOOK AT THE K8S DEFAULT FUNCTION. ✓ kube1.7͘Β͍͸಺෦ͷϦιʔε؂ࢹ͸ʮHeapsterʯͱ͍͏ ίϯϙʔωϯτ͕΍͍ͬͯͨɻ ✓ kube1.8͔Βʮmetrics-serverʯͱ͍͏ίϯϙʔωϯτʹஔ͖ ׵ΘΓɺલड़ͨ͠ϙϯνֆͷΑ͏ͳΞʔΩςΫνϟʹͳΓɺΑ ΓϓϥΨϒϧͳΞʔΩςΫτʹɻ ✓ʮHeapsterʯ͸طʹඇਪ঑ͳίϯϙʔωϯτɻʮmetrics- serverʯʹΑΔʮOSS monitoring architectureʯͷํͰษڧΛ ਐΊ͍͖ͯ·͠ΐ͏(^p^) metrics-serverʹΑΔϦιʔε؂ࢹ

Slide 58

Slide 58 text

Master Node LOOK AT THE K8S DEFAULT FUNCTION. Worker Node Worker Node kubelet cAdvisor metrics- server Worker Node kubelet cAdvisor metrics.k8s.io api-server API CLIENT GET resource usage resource usage get data get data resource metrics pipelineʹΑΔجຊతͳϦιʔεऔಘ metrics-serverʹΑΔϦιʔε؂ࢹ

Slide 59

Slide 59 text

LOOK AT THE K8S DEFAULT FUNCTION. full monitoring pipelineʹΑΔϦονͳΧελϜϦιʔεऔಘ prometheusͱ͔͕͜ΕʹରԠ metrics-serverʹΑΔϦιʔε؂ࢹ ? https://www.weave.works/blog/kubernetes-horizontal-pod-autoscaler-and-prometheus

Slide 60

Slide 60 text

CONCLUSTION ·ͱΊ ɾkubernetesΛ࢖͑͹ɺඪ४Ͱ”௒”ߴੑೳͳ؂ࢹγεςϜ͕खʹ ೖΔɻผ్༻ҙ͢΂͖ͳͷ͸΄΅֎ܥ؂ࢹʹͳΔΑ͏ઃܭ͢΂͠ɻ ɾGKE΍EKSɺAKSͳͲૉ੖Β͍͠KaaSαʔϏεͰ࢝ΊΒΕΔͷ Ͱੋඇ͓ࢼ͍ͩ͘͠͞ɻ ɾͨͩɺࡉ͔͍νϡʔχϯάͰਅՁΛൃش͢ΔͷͰɺӡ༻ʹΑΔϊ ΢ϋ΢͕֤ݱ৔ͰٻΊΒΕΔͷ͸ؒҧ͍ͳ͍ɻ ɾ·ͣ͸ඪ४ͳػೳ͕Ͳ͏͍͏ಈ͖͔Λ஌Ζ͏ʂ

Slide 61

Slide 61 text

HACKER PM/PL サイバーエージェントでは エンジニアを募集しております. ※k8s,OpenStack,AWS,GCP触れるよ. http://rickandmorty.wikia.com/wiki/File:Rick_and_morty_wanted.png