Slide 1

Slide 1 text

Write Kubernetes CustomController in Go golang.tokyo #28 Dec.4

Slide 2

Slide 2 text

No content

Slide 3

Slide 3 text

OVERVIEW golang.tokyo #28 Dec.4 ɾk8sͷ༻ޠͷ͓͞Β͍ ɾcontroller-runtimeΛ࢖࣮ͬͨ૷ ɾk8sͷControllerͱ͸ʁ

Slide 4

Slide 4 text

k8sͷ͓͞Β͍ ɾPod : ϫʔΫϩʔυͷ࠷খ୯Ґ ex. Goίϯςφ(API) + fluentdίϯςφ(logging) ɾReplicaSet : ͋ΔPodͷू߹

Slide 5

Slide 5 text

k8sͷControllerͱ͸ʁ k8s͸Manifest(yaml)Ͱ๬·͍͠ঢ়ଶΛએݴ => ͦͷঢ়ଶΛҡ࣋͠ଓ͚Δ ref) Operator Basic in CNDK2019 - speakerdeck

Slide 6

Slide 6 text

k8sͷControllerͱ͸ʁ

Slide 7

Slide 7 text

k8sͷControllerͱ͸ʁ

Slide 8

Slide 8 text

k8sͷControllerͱ͸ʁ

Slide 9

Slide 9 text

k8sͷControllerͱ͸ʁ k8s͸಺෦Ͱ͜ͷॲཧΛ
 ܁Γฦ͍ͯ͠Δ => ͋Δ΂͖ঢ়ଶͱ
 ɹ ݱࡏͷঢ়ଶΛ߹ΘͤΔ

Slide 10

Slide 10 text

CustomController controller͸ࣗલͰ࡞Δ͜ͱ΋Ͱ͖Δ => ͦΕ͕CustomController kubernetes-sigs/controller-runtime ͱ͍͏ϥΠϒϥϦ͕ఏڙ͞Ε͍ͯΔ

Slide 11

Slide 11 text

controller-runtimeΛ ࢖࣮ͬͨ૷ ࠓճͷαϯϓϧɿ ReplicaSet͕࡞੒͞ΕͨΒɺ ͦͷ؅ཧԼͷίϯςφ໊Λදࣔ͢Δ ίϯτϩʔϥʔ

Slide 12

Slide 12 text

controller-runtimeΛ ࢖࣮ͬͨ૷ (controller.go) ͲͷϦιʔεΛऔಘͯ͠ɺͲ͏͍͏ॲཧΛ࣮ߦ͢Δ͔ ɾ Reconciler ɾ

Slide 13

Slide 13 text

controller-runtimeΛ ࢖࣮ͬͨ૷ (controller.go) Namespace, Ϧιʔε(ReplicaSet)Λࢦఆͯ͠ɺ Ϧιʔεͷ৘ใΛऔಘɺίϯςφ໊Λग़ྗ ɾ

Slide 14

Slide 14 text

controller-runtimeΛ ࢖࣮ͬͨ૷ (main.go) ControllerΛੜ੒ ɾ ઌ΄Ͳఆٛͨ͠ReconcilerΛࢦఆ ɾ

Slide 15

Slide 15 text

controller-runtimeΛ ࢖࣮ͬͨ૷ (main.go) ɾࢦఆͨ͠ϦιʔεΛControllerͰ؂ࢹ ɾ ɾReplicaSetʹߋ৽͕͋ͬͨΒɺઌ΄ͲͷॲཧΛ࣮ߦ

Slide 16

Slide 16 text

controller-runtimeΛ ࢖࣮ͬͨ૷ ReplicaSetΛ࡞੒ͨ͠Βɺ ͦͷ؅ཧԼͷίϯςφͷ໊લ͕ දࣔ͞Εͨ 70ߦ͘Β͍Ͱ؆୯ʹॻ͚ͨ

Slide 17

Slide 17 text

࣮༻తͳControllerΛ࡞͍͖͍ͬͯͨ

Slide 18

Slide 18 text

͝ਗ਼ௌ͋Γ͕ͱ͏͍͟͝·ͨ͠ʂ