Link
Embed
Share
Beginning
This slide
Copy link URL
Copy link URL
Copy iframe embed code
Copy iframe embed code
Copy javascript embed code
Copy javascript embed code
Share
Tweet
Share
Tweet
Slide 1
Slide 1 text
Recap: Automated, Distributed Systems Testing for Kubernetes Controllers Aya Igarashi (@Ladicle), SWE at Z Lab Kubernetes Meetup Tokyo #47
Slide 2
Slide 2 text
https://kccncna2021.sched.com/event/lV0S
Slide 3
Slide 3 text
• Kuberenetesͷ(Custom)ControllerΛҟৗܥͰਖ਼ ͘͠ಈ͘͜ͱΛอূ͢Δͷ͍͠ • Fault Injectionͯ͠ControllerͷόάΛൃݟ͢Δͨ Ίͷsieveͱ͍͏OSSΛ։ൃͨ͠ • ಛιʔείʔυͷมߋ͕ෆཁͰɺൃݟͨ͠ό άͷ࠶ݱ͕Մೳͳ͜ͱ • cassandra-operatorpercona-xtradb-cluster- operatorͳͲͷOSSͰόάΛ࣮ࡍʹൃݟͨ͠ Recap: distributed-system pitfall \ /
Slide 4
Slide 4 text
Interesting Points Event-oriented Common Bug Patterns • ͡Ίͯίϯτϩʔϥ࣮ͯ͠ ͍ͨ࣌ʹΜͩΑ͏ͳɺϋϚΓ ͕ͪͳϙΠϯτ͕ύλʔϯͱ͠ ͯݴޠԽ͞Ε͍ͯΔ • πʔϧΛΘͳ͓֮ͯ͑ͯ͘ ͘ͱ࣮ͷ࣌ʹࢀߟʹͳΔͣ (Chaos tool) Inject Fault = Bug!! Find Diff
Slide 5
Slide 5 text
Bug Pattern 1 ίϯτϩʔϥ͕Πϕϯτͷड͚औ Γʹࣦഊ͢ΔͱɺϦιʔε͕ਖ਼ৗ ʹॲཧ͞Εͳ͍ύλʔϯ Observability-gaps Bug https://github.com/instaclustr/cassandra-operator/issues/398 ACTIONʹґଘͤͣಛఆͷΠϕϯ τΛऔΓ͜΅ͯ࣍͠ͷΠϕϯτ ͰॲཧͰ͖ΔΑ͏ʹ࣮͢Δ όάͷྫ: Orphan PVC 1. Scale Down 2. Delete Pod
Slide 6
Slide 6 text
Bug Pattern 2 Atomicity Violation https://github.com/rabbitmq/cluster-operator/issues/782 όάͷྫ: Reconcileͷ్தͰ༧ظͤ͵Τϥʔ ఀࢭ͕ىͬͯ͜࠶։Ͱ͖ΔΑ ͏ʹ࣮͢Δ Reconcile͕ྃ͢Δલʹίϯτ ϩʔϥ͕ఀࢭͯ͠ɺϦιʔε͕த ్ͳঢ়ଶʹͳΔύλʔϯ 1. Extend PVC volume to 2Gi 2. Delete STS 3. Crash controller 4. restart controller 5. Create New STS reference 1Gi PVC
Slide 7
Slide 7 text
Bug Pattern 3 Time Traveling https://jira.percona.com/browse/K8SPXC-716 HAߏͷΫϥελʹ͓͍ͯɺίϯ τϩʔϥͷ࠶ىಈ࣌ʹݹ͍Ϧιʔ εΛऔಘͯ͠όάʹͳΔύλʔϯ Ϧιʔεͷόʔδϣϯґଘؔ (OwnerReference)͕ਖ਼͍͔͠ͳͲ ॲཧલͷόϦσʔγϣϯʹҙ όάͷྫ: 1. Create Cluster w/ same ID 2. Receive old event Reference invalid STS...
Slide 8
Slide 8 text
References Event Schedule: https://kccncna2021.sched.com/event/lV0S YouTube: https://youtu.be/6JnhjgOaZVk GitHub: https://github.com/sieve-project/sieve Research Paper: https://sigops.org/s/conferences/hotos/2021/papers/hotos21-s11-sun.pdf
Slide 9
Slide 9 text
Thank you! Aya Igarashi, Z Lab Twitter & GitHub: @Ladicle