Slide 1

Slide 1 text

Kubernetes Meetup Tokyo #34 (2020/9/30) Shunya Murata @shmurata_ Shinya Uemura @uesyn Kubernetes v1.19 มߋ఺ௐࠪͷ·ͱΊ

Slide 2

Slide 2 text

Shinya Uemura / @suemura ▶ θοτϥϘגࣜձࣾ ιϑτ΢ΣΞΤϯδχΞ ▶ 2019೥θοτϥϘגࣜձࣾʹೖࣾ ▶ Prometheus Meetup Tokyo, Cloud Native Meetup TokyoͷӡӦ΍ͬͯ·͢

Slide 3

Slide 3 text

θοτϥϘגࣜձࣾ / Z Lab Corporation ▶ 2015೥ʹઃཱ͞ΕͨϠϑʔגࣜձࣾͷ100%ࢠձࣾ ▶ Πϯϑϥج൫ٕज़ͷௐࠪɾݚڀ։ൃ ▶ Ϡϑʔגࣜձࣾ޲͚ͷϚωʔδυ Kubernetes αʔϏεͷ։ൃ ▶ https://zlab.co.jp/

Slide 4

Slide 4 text

ΞδΣϯμ ▶ มߋ఺ௐࠪͷऔΓ૊Έʹ͍ͭͯ ▶ @uesynͷؾʹͳͬͨมߋ఺ͷ঺հ ▶ @shmurata_ ͷؾʹͳͬͨมߋ఺ͷ঺հ

Slide 5

Slide 5 text

มߋ఺ௐࠪʹ͍ͭͯ

Slide 6

Slide 6 text

มߋ఺ௐࠪͱ͸ʁͳ࣮ͥࢪ͢Δͷ͔ʁ ▶ มߋ఺ௐࠪͱ͸ʁ + Z LabͰ͸KubernetesͷCHANGELOGΛௐࠪɾ೔ຊޠ༁ͷهࣄΛ࡞੒͍ͯ͠·͢ + ϚΠφʔόʔδϣϯͷϦϦʔεຖʹ࣮ࢪ + v1.19͸Z Labͱ@superbrothers͞ΜͰ࣮ࢪ + SIG (Special Interest Group) ຖʹ୲౰Λ෼୲͠ɺSIGʹؔ࿈ͨ͠಺༰Λ·ͱΊΔ ▶ ͳ࣮ͥࢪ͢Δͷ͔ʁ + ίϛϡχςΟ΁ͷߩݙͷͨΊ + CaaSΛར༻͍ͯ͠ΔϢʔβ΁Өڹ΍ศརͳػೳͷ঺հ + Kubernetesͷมߋ఺͔Βɺఏڙ͍ͯ͠ΔCaaS΁ͷӨڹΛ೺Ѳ͢ΔͨΊ + ެ։͍ͯ͠Δͷ͸ϚΠφʔόʔδϣϯ͚ͩͰ͕͢ɺύονόʔδϣϯͷมߋ΋֬ೝ

Slide 7

Slide 7 text

มߋ఺ௐࠪͱ͸ʁͳ࣮ͥࢪ͢Δͷ͔ʁ ▶ มߋ఺ௐࠪͱ͸ʁ + Z LabͰ͸KubernetesͷCHANGELOGΛௐࠪɾ೔ຊޠ༁ͷهࣄΛ࡞੒͍ͯ͠·͢ + ϚΠφʔόʔδϣϯͷϦϦʔεຖʹ࣮ࢪ + v1.19͸Z Labͱ@superbrothers͞ΜͰ࣮ࢪ + SIG (Special Interest Group) ຖʹ୲౰Λ෼୲͠ɺSIGʹؔ࿈ͨ͠಺༰Λ·ͱΊΔ ▶ ͳ࣮ͥࢪ͢Δͷ͔ʁ + ίϛϡχςΟ΁ͷߩݙͷͨΊ + CaaSΛར༻͍ͯ͠ΔϢʔβ΁Өڹ΍ศརͳػೳͷ঺հ + Kubernetesͷมߋ఺͔Βɺఏڙ͍ͯ͠ΔCaaS΁ͷӨڹΛ೺Ѳ͢ΔͨΊ + ެ։͍ͯ͠Δͷ͸ϚΠφʔόʔδϣϯ͚ͩͰ͕͢ɺύονόʔδϣϯͷมߋ΋֬ೝ

Slide 8

Slide 8 text

@uesyn ͷؾʹͳͬͨมߋ఺

Slide 9

Slide 9 text

͔͜͜Βࢲ͕࿩͢಺༰ 1. Expanded CLI support for debugging workloads and nodes
 2. Deprecation warnings
 3. Avoiding permanent beta
 4. Increase the Kubernetes support window to one year
 5. Structure Logging
 6. EndpointSlices are now enabled by default

Slide 10

Slide 10 text

Expanded CLI support for debugging workloads and nodes

Slide 11

Slide 11 text

Expanded CLI support for debugging workloads and nodes ▶ ”kubectl alpha debug” ΁৽ͨʹ2ͭͷػೳ͕௥Ճ 1. NodeͷͨΊͷdebugػೳ + Nodeͷσόοά༻ίϯςφΛ࡞੒ + /host ΁Nodeͷ / ΛϚ΢ϯτ͠ɺNodeͷPID,IPC΍NWωʔϜεϖʔεͰىಈ 2. PodͷͨΊͷdebugػೳ + debugର৅ͷPodΛίϐʔ͠debug༻PodΛ࡞੒ + debug༻ίϯςφΛૠೖͨ͠ΓɺίϯςφΠϝʔδ΍Ҿ਺ͳͲΛมߋͨ͠΋ͷΛ࡞੒ ▶ ͲͪΒ΋FeatureGatesͷEphemeralContainersΛ༗ޮʹ͢Δඞཁͳ͠ + alphaػೳ͕༗ޮʹͰ͖ͳ͍؀ڥͰ΋ར༻Մೳ

Slide 12

Slide 12 text

௥Ճ͞ΕͨNodeͷͨΊͷdebugػೳ(1/2)

Slide 13

Slide 13 text

௥Ճ͞ΕͨNodeͷͨΊͷdebugػೳ(2/2) /hostʹNodeͷ/͕Ϛ΢ϯτ͞Ε͍ͯΔ NodeͷPID,IPC΍NWωʔϜεϖʔεͰ࣮ߦ debug༻ͷPod໊

Slide 14

Slide 14 text

௥Ճ͞ΕͨPodͷͨΊͷdebugػೳ(1/2) ͜ͷ໊લͰdebug༻Pod͕࡞੒͞ΕΔ share-processͰ΋debug༻ίϯςφΛىಈՄೳ

Slide 15

Slide 15 text

௥Ճ͞ΕͨPodͷͨΊͷdebugػೳ(2/2) share-processͰ΋debug༻ίϯςφΛىಈՄೳ ▶ ͬ͟ͱ֬ೝͨ͠ײ͡ؾΛ෇͚ͨํ͕ྑͦ͞͏ͳࣄ + label͸ίϐʔ͞Εͳ͍ + Service഑ԼͷPodΛdebug͢Δͱ͖ɺಉ͡τϥϑΟοΫ͸ྲྀΕͯ͜ͳ͍ + Volume, VolumeMounts΋ίϐʔ͞ΕΔ + hostPort΋ίϐʔ͞ΕΔ ౳ʑ… ▶ ىಈॱংͷ੍໿΍εέʔϧͰ͖ͳ͍ΞϓϦέʔγϣϯ΋஫ҙ͢Δඞཁ

Slide 16

Slide 16 text

௥Ճ͞Εͨdebugػೳʹ͍ͭͯ ▶ ௥Ճ͞Εͨೋͭͷػೳ͸ڞʹɺศརPodΛ࡞ΔͨΊͷίϚϯυ ▶ ৄ͍࣮͠૷͸ҎԼΛࢀর + https://github.com/kubernetes/kubectl/blob/v0.19.2/pkg/cmd/debug/debug.go#L478-L522 + https://github.com/kubernetes/kubectl/blob/v0.19.2/pkg/cmd/debug/debug.go#L413-L476

Slide 17

Slide 17 text

Deprecation warnings

Slide 18

Slide 18 text

Deprecation warnings ▶ APIར༻࣌ʹWarningΛฦ͢ػೳ͕௥Ճ + ഇࢭ༧ఆͷAPIΛୟ͍ͨ࣌ + Admission WebhooksͷϨεϙϯεͰࢦఆ (ϢʔβఆٛՄೳ) + CRDͷϑΟʔϧυͰࢦఆ (ϢʔβఆٛՄೳ)

Slide 19

Slide 19 text

ValidatingWebhookΛ༻͍ͨWarningͷσϞ ▶ ԿͷK8sϦιʔεͷValidation΋ͤͣɺWarning͚ͩฦ͢ValidatingWebhookͷσϞΛ͠·͢ + https://github.com/uesyn/sample-warning-admission-webhook + ↑ޙ΄Ͳͪ͜ΒͰެ։͓͖ͯ͠·͢ + ϦιʔεͷValidation͸͠·ͤΜ͕ɺۈ຿࣌ؒͷValidation͸ͯ͘͠Ε·͢ + ۈ຿࣌ؒ֎ʹಇ͘͜ͱΛېࢭ͠·ͤΜ͕ɺWarningͱͯ͠ग़ྗ ▶ Admission WebhookͷWarningʹ͍ͭͯ͸ҎԼΛࢀর͍ͩ͘͞ + https://kubernetes.io/docs/reference/access-authn-authz/extensible-admission-controllers/#admissionreview-response-warning

Slide 20

Slide 20 text

Avoiding permanent beta

Slide 21

Slide 21 text

Avoiding permanent beta ▶ ͣͬͱvXbetaYͰ͢ʂͱͳΒͳ͍ͨΊͷϙϦγʔΛద༻ + Ingress͸2015೥ʹ͸betaʹͳ͍ͬͯͨΑ͏Ͱ͢ ▶ ৽͍͠API͕betaʹͳΔͱɺͦͷAPI͸9ϲ݄Ҏ಺ͰҎԼͷΞΫγϣϯ͕ඞཁ + GAΛग़͠ɺbetaͷ΋ͷΛඇਪ঑ͱ͢Δ + ৽͍͠betaΛग़͠ɺݹ͍΋ͷΛඇਪ঑ͱ͢Δ ▶ 9ϲ݄ܦաͯ͠͠·ͬͨ৔߹ + ࣍ͷϦϦʔεͰͦͷAPIͷόʔδϣϯ͸ඇਪ঑ͱͳΔ + ಉ͡betaόʔδϣϯͰଓߦͱ͍͏બ୒ࢶ͸ͳ͍ ▶ ৄࡉ͸ҎԼ + https://kubernetes.io/blog/2020/08/21/moving-forward-from-beta/

Slide 22

Slide 22 text

Increase the Kubernetes support window to one year

Slide 23

Slide 23 text

Increase the Kubernetes support window to one year ▶ Kubernetes v1.19͔Βɺόάमਖ਼ͷαϙʔτ͕9ϲ݄͔Β1೥΁ ▶ ͜Ε͔Β΋ؤுͬͯΫϥελͷΞοϓάϨʔυ͍͖ͯ͠·͠ΐ͏ʂ

Slide 24

Slide 24 text

Structure Logging

Slide 25

Slide 25 text

Structure Logging ▶ ߏ଄ԽϩΪϯά͕ಋೖ͞Εͨ + ରԠ͍ͯ͠ΔkubernetesͷίϯϙʔωϯτͰ͋Ε͹—logging-formatΦϓγϣϯͰࢦఆՄೳ + json ·ͨ͸ text Λࢦఆ ▶ k8s.io/klog ͕v2ͱͳΓInfoS΍ErrorSͳͲͷߏ଄Խ͞ΕͨϩάΛग़ྗ͢Δؔ਺͕௥Ճ + jsonͰग़ྗ͢Δ࣮૷͸klogʹ͸ͳ͍ + SetLogger ؔ਺Ͱgithub.com/go-logr/logr Λ࣮૷ͨ͠΋ͷΛηοτ͢Δ + K8sίϯϙʔωϯτ͕ར༻͍ͯ͠Δ্ه࣮૷͸ k8s.io/component-base ʹଘࡏ

Slide 26

Slide 26 text

EndpointSlices are now enabled by default

Slide 27

Slide 27 text

EndpointSlices are now enabled by default ▶ Endpointsͷ୅ΘΓʹEndpointSlice͕kube-proxyͰσϑΥϧτͰར༻͞ΕΔΑ͏ʹ ▶ EndpointSliceϦιʔεࣗମ͸v1.18͔Β࡞੒͞ΕΔ ▶ EndpointsϦιʔεΛ୯ମͰ࡞੒͢ΔͱɺରԠ͢ΔEndpointSliceϦιʔε͕࡞੒͞ΕΔ + EndpointSliceMirrorling controllerʹΑΓੜ੒͞ΕΔ + labelͰendpointslice.kubernetes.io/skip-mirror: “true" ͱ͢Δ͜ͱͰϛϥʔϦϯά͞Εͳ͘ͳΔ + ࡞੒͞ΕΔEndpointSlice͸OwnerReference͕ͦͷEndpointsͱͳΔΑ͏Ͱ͢