PAGE Japan Container DAYS v 18.04 5 6 TODAY’S AGENDA SELF INTRODUCTION VARIOUS CONTAINER RUNTIME OCI AND CRI INSIDE OF CONTAINER RUNTIME PATTERN OF RUNNING CONTAINERS CRI-O VS CONTAINERD STORAGE DRIVER CONCLUSION
PAGE Japan Container DAYS v 18.04 12 HOW ABOUT RKT …? Kubernetes 1.10 Ͱ kubelet แ deprecated rktnetes has been deprecated in favor of rktlet (#58418) CRI ʹ४ڌͨ͠ rktlet Λ͏Α͏ʹมߋ hLps://github.com/kubernetes-incubator/rktlet kubelet ͷ “—container-run*me" ͷ help ʹ ʮ The container run*me to use. Possible values: 'docker', 'remote', 'rkt (deprecated)'. (default “docker”)ʯ CONTAINER RUNTIMES ON KUBERNETES
PAGE Japan Container DAYS v 18.04 12 HOW ABOUT RKT …? Kubernetes 1.10 Ͱ kubelet แ deprecated rktnetes has been deprecated in favor of rktlet (#58418) CRI ʹ४ڌͨ͠ rktlet Λ͏Α͏ʹมߋ hLps://github.com/kubernetes-incubator/rktlet kubelet ͷ “—container-run*me" ͷ help ʹ ʮ The container run*me to use. Possible values: 'docker', 'remote', 'rkt (deprecated)'. (default “docker”)ʯ CONTAINER RUNTIMES ON KUBERNETES
PAGE Japan Container DAYS v 18.04 15 OCI Open Container Ini*a*ve ͪͳΈʹۙʹ͜Μͳൃද͕͞Εͨ ʮThe New Stack: “Open Container Ini*a*ve Creates a Distribu*on Specifica*on for Registries”ʯ(※) Docker Registry version 2 ΛݩʹΠϝʔδͷඪ४ԽΛ ਐΊ͍ͯ͘ (Run*me ͱ Format ʹ͙࣍ 3 ͭͷඪ४Խ) ※ hLps://www.opencontainers.org/news/2018/04/11/the-new-stack-open-container-ini*a*ve-creates-a-distribu*on-specifica*on-for-registries OCI AND CRI
PAGE Japan Container DAYS v 18.04 25 PATTERN OF RUNNING CONTAINERS 01PaLern 01 Docker The most popular paLern in the world Using containerd and runC to run containers inside Docker
PAGE Japan Container DAYS v 18.04 27 PATTERN OF RUNNING CONTAINERS 02PaLern 02 cri-o Using cri-o for High-level Container run*me Using runC to run containers with OCI interface
PAGE Japan Container DAYS v 18.04 29 PATTERN OF RUNNING CONTAINERS 03PaLern 03 containerd Using containerd for High-level Container run*me Using runC to run containers with OCI interface
PAGE Japan Container DAYS v 18.04 31 runC kubelet cri-containerd containerd gRPC CRI Containers OCI D E P R E C A T E D PATTERN OF RUNNING CONTAINERS 03 CONTAINERD
PAGE Japan Container DAYS v 18.04 35 PATTERN OF RUNNING CONTAINERS 04 RKT (AKA RKTNETES) systemd kubelet rkt run Containers rkt pkg D E P R E C A T E D
PAGE Japan Container DAYS v 18.04 37 PATTERN OF RUNNING CONTAINERS 05PaLern 05 “vm-like” container Running “vm-like” isolated containers Using cc-run*me or runV, etc
PAGE Japan Container DAYS v 18.04 38 PATTERN OF RUNNING CONTAINERS 05 “VM-LIKE” CONTAINERS Low-level run*me Λஔ͖͑Δ͜ͱͰ VM ͷΑ͏ͳίϯςφΛىಈ͢Δ͜ͱग़དྷΔ (ίϯςφͷΑ͏ͳ VM ͱݴ͑Δ͔͠Εͳ͍)
PAGE Japan Container DAYS v 18.04 43 PERFORMANCE CRI-O VS CONTAINERD How to bench run*me? | 6 steps sandbox pod Λ࡞͢Δ sandbox pod ʹ busybox ίϯςφΛ࡞ɾىಈ͢Δ busybox ίϯςφΛఀࢭ͢Δ busybox ίϯςφΛআ͢Δ sandbox pod Λআ͢Δ sandbox pod Λఀࢭ͢Δ
PAGE Japan Container DAYS v 18.04 60 PERFORMANCE DOCKER + 3 RUNTIMES Docker ͷ run*me ʹ kata-run*me Λࢦఆͨ͠ͱ͜Ζ্ख͘ಈ͍ͨ How to bench run*me? ୯७ʹ docker run ͷੑೳΛݕূ͢Δ ࠓճͷݕূ 100 ճ docker run ͯ࣌ؒ͠Λܭଌ docker run --rm --run*me ${RUNTIME} hello-world
PAGE Japan Container DAYS v 18.04 64 PERFORMANCE STORAGE DRIVER run*me ͷ࣮ߦʹ storage driver ͕ͲΕ͘Β͍Өڹ͋Δͷ͔ݕূ storage driver is important ઌఔͱಉ͡ docker run ͷ benchmark Λ͢Δ ༻ͨ͠ storage driver 4छྨ
PAGE Japan Container DAYS v 18.04 71 αΠόʔΤʔδΣϯτ ΞυςΫຊ෦ɹ Πϯλʔωοτࠂʹ͓͍ͯɺࠂ৴ͷ࠷దԽϝσΟΞͷऩӹ࠷େԽͱ͍͏؍͔Β ΞυςΫϊϩδʔͷॏཁ͕ߴ·͍ͬͯ·͢ɻ αΠόʔΤʔδΣϯτͰΞυςΫϊϩδʔʹ͓͚Δ ͜ΕΒͷαʔϏεʹ͍֤ͭͯࢠձࣾΛ௨͡։ൃ͓ͯ͠Γ·͕ͨ͠ɺ ֤αʔϏεͷ։ൃ෦Λԣஅͯ͠৫Խ͢Δઐ෦ॺͱͯ͠ΞυςΫຊ෦͕ઃཱ͞Ε·ͨ͠ɻ