next generation tools for container technology
play

Next Generation Tools for container technology Dan Walsh @rhatdan - PowerPoint PPT Presentation

Next Generation Tools for container technology Dan Walsh @rhatdan Please Stand Please read out loud all text in RED I Promise To say Container Registries Rather than Docker registries I Promise To say Container Images Rather than


  1. Next Generation Tools for container technology Dan Walsh @rhatdan

  2. Please Stand

  3. Please read out loud all text in RED

  4. I Promise

  5. To say Container Registries Rather than Docker registries

  6. I Promise

  7. To say Container Images Rather than Docker images

  8. I Promise

  9. To say Containers Rather than Docker Containers

  10. Sit Down

  11. What do you need to run a container Standard Definition of what makes up a container image. ● OCI Image Bundle Definition ○

  12. Introducing Skopeo https://github.com/containers/skopeo #nobigfatdaemons

  13. Skopeo ● $ skopeo inspect docker://docker.io/fedora ● $ skopeo copy docker://busybox:1-glibc atomic:myns/unsigned:streaming $ skopeo copy docker://busybox:latest dir:existingemptydirectory $ skopeo copy docker://busybox:latest oci:busybox_ocilayout:latest ● $ skopeo delete docker://localhost:5000/imagename:latest #nobigfatdaemons

  14. What do you need to run a container` Standard Definition of what makes up a container image. ● OCI Image Bundle Definition ○ Mechanism to pull images from a container registry to the host ● github.com/containers/image ○

  15. What do you need to run a container Standard Definition of what makes up a container image. ● OCI Image Bundle Definition ○ Mechanism to pull images from a container registry to the host ● github.com/containers/image ○ ● Ability to explode images onto COW file systems on disk github.com/containers/storage ○

  16. What do you need to run a container Standard Definition of what makes up a container image. ● OCI Image Bundle Definition ○ Mechanism to pull images from a container registry to the host ● github.com/containers/image ○ ● Ability to explode images onto COW file systems on disk github.com/containers/storage ○ Standard mechanism for running a container ● ○ OCI Runtime Spec (1.0) runc default implementation of OCI Runtime Spec (Same tool Docker uses to run containers) ○

  17. #nobigfatdaemons

  18. #nobigfatdaemons

  19. What does OpenShift/Kubernetes need run a container? CRI - Container Runtime Interface #nobigfatdaemons

  20. What does OpenShift/Kubernetes need run a container? CRI - Container Runtime Interface Kubernetes tells CRI to run Container Image: #nobigfatdaemons

  21. What does OpenShift/Kubernetes need run a container? CRI - Container Runtime Interface Kubernetes tells CRI to run Container Image: ● CRI needs to pull image from Container Registry #nobigfatdaemons

  22. What does OpenShift/Kubernetes need run a container? CRI - Container Runtime Interface Kubernetes tells CRI to run Container Image: ● CRI needs to pull image from Container Registry ● CRI Needs to store image on COW File system #nobigfatdaemons

  23. What does OpenShift/Kubernetes need run a container? CRI - Container Runtime Interface Kubernetes tells CRI to run Container Image: ● CRI needs to pull image from Container Registry ● CRI Needs to store image on COW File system ● CRI Needs to execute OCI Runtime #nobigfatdaemons

  24. Introducing CRI-O #nobigfatdaemons

  25. Introducing CRI-O CRI-O - OCI-based implementation of Kubernetes Container Runtime Interface Scope tied to kubernetes CRI ● ● Only supported user is kubernetes Uses standard components as building blocks ● “Nothing more, Nothing Less” #nobigfatdaemons

  26. #nobigfatdaemons

  27. #nobigfatdaemons

  28. #nobigfatdaemons

  29. S W A R M #nobigfatdaemons

  30. S W A R M #nobigfatdaemons

  31. M O B Y #nobigfatdaemons

  32. M O B Y #nobigfatdaemons

  33. M O B Y #nobigfatdaemons

  34. #nobigfatdaemons

  35. Overview of additional components oci-runtime-tools library is used to generate OCI configs for containers ● #nobigfatdaemons

  36. Overview of additional components oci-runtime-tools library is used to generate OCI configs for containers ● CNI is used for setting up networking ● ○ Tested with Flannel, Weave and openshift-sdn #nobigfatdaemons

  37. Overview of additional components oci-runtime-tools library is used to generate OCI configs for containers ● CNI is used for setting up networking ● ○ Tested with Flannel, Weave and openshift-sdn conmon is a utility for: ● Monitoring ○ Logging ○ Handling tty ○ Serving attach clients ○ Detecting and reporting OOM ○ #nobigfatdaemons

  38. Pod architecture (runc) conmon conmon conmon Infra Container Container A Container B (runc) (runc) Pod (ipc, net, pid namespaces, cgroups) #nobigfatdaemons

  39. Pod architecture (Kata Containers) conmon conmon kata-shim kata-shim Container A Container B (kata-runtime) (kata-runtime) Virtual Machine (ipc, net, pid namespaces, cgroups) #nobigfatdaemons Pod (net namespace, cgroups)

  40. Architecture #nobigfatdaemons

  41. Status All e2e, cri-tools, integration, 9 test suites, (>500) tests passing. ● No PRs merged without passing all the tests ○ #nobigfatdaemons

  42. Status All e2e, cri-tools, integration, 9 test suites, (>500) tests passing. ● No PRs merged without passing all the tests. ○ ● 1.0.7 (kube 1.7.x) supported. (December 2017) #nobigfatdaemons

  43. Status All e2e, cri-tools, integration, 9 test suites, (>500) tests passing. ● No PRs merged without passing all the tests. ○ ● 1.0.7 (kube 1.7.x) supported. (December 2017) 1.9.12 (kube 1.9.x) released. ● CRI-O fully supported in OpenShift 3.9 along with docker. ○ #nobigfatdaemons

  44. Status All e2e, cri-tools, integration, 9 test suites, (>500) tests passing. ● No PRs merged without passing all the tests. ○ ● 1.0.7 (kube 1.7.x) supported. (December 2017) 1.9.12 (kube 1.9.x) released. ● CRI-O fully supported in OpenShift 3.9 along with docker. ○ ● 1.10.6 (kube 1.10.x) released. #nobigfatdaemons

  45. Status All e2e, cri-tools, integration, 9 test suites, (>500) tests passing. ● No PRs merged without passing all the tests. ○ ● 1.0.7 (kube 1.7.x) supported. (December 2017) 1.9.12 (kube 1.9.x) released. ● CRI-O fully supported in OpenShift 3.9 along with docker. ○ ● 1.10.6 (kube 1.10.x) released. 1.11.2 (Kube 1.11.x) released ● #nobigfatdaemons

  46. Status All e2e, cri-tools, integration, 9 test suites, (>500) tests passing. ● No PRs merged without passing all the tests. ○ ● 1.0.7 (kube 1.7.x) supported. (December 2017) 1.9.12 (kube 1.9.x) released. ● CRI-O fully supported in OpenShift 3.9 along with docker. ○ ● 1.10.6 (kube 1.10.x) released. 1.11.2 (Kube 1.11.x) released ● 1.12.1 (Kube 1.12.x) released ● Goal for Openshift 4.0 is to fully support CRI-O by default. ● #nobigfatdaemons

  47. Status CRI-O is now powering nodes on OpenShift Online. #nobigfatdaemons

  48. " CRI-O just works for them, so they haven’t had much to say" #nobigfatdaemons

  49. Making running containers in production boring #nobigfatdaemons

  50. What else does OpenShift need? Ability to build container images ● Ability to push container images to container registries ● #nobigfatdaemons

  51. #nobigfatdaemons

  52. Introducing Buildah https://github.com/containers/buildah #nobigfatdaemons

  53. #nobigfatdaemons https://github.com/containers/buildah

  54. #nobigfatdaemons

  55. Coreutils for building containers. Simple interface #nobigfatdaemons

  56. Coreutils for building containers. Simple interface # ctr=$(buildah from fedora) #nobigfatdaemons

  57. Coreutils for building containers. Simple interface # ctr=$(buildah from fedora) # mnt=$(buildah mount $ctr) #nobigfatdaemons

  58. #nobigfatdaemons

  59. Coreutils for building containers. Simple interface # ctr=$(buildah from fedora) # mnt=$(buildah mount $ctr) # cp -R src $mnt #nobigfatdaemons

  60. Coreutils for building containers. Simple interface # ctr=$(buildah from fedora) # mnt=$(buildah mount $ctr) # cp -R src $mnt # dnf install --installroot=$mnt httpd #nobigfatdaemons

  61. Coreutils for building containers. Simple interface # ctr=$(buildah from fedora) # mnt=$(buildah mount $ctr) # cp -R src $mnt # dnf install --installroot=$mnt httpd # make install DESTDIR=$mnt #nobigfatdaemons

  62. Coreutils for building containers. Simple interface # ctr=$(buildah from fedora) # mnt=$(buildah mount $ctr) # cp -R src $mnt # dnf install --installroot=$mnt httpd # make install DESTDIR=$mnt # buildah config --entrypoint=/usr/sbin/test.sh --env foo=bar $ctr #nobigfatdaemons

  63. Coreutils for building containers. Simple interface # ctr=$(buildah from fedora) # mnt=$(buildah mount $ctr) # cp -R src $mnt # dnf install --installroot=$mnt httpd # make install DESTDIR=$mnt # buildah config --entrypoint=/usr/sbin/test.sh --env foo=bar $ctr # buildah commit $ctr myhttpd #nobigfatdaemons

  64. Coreutils for building containers. Simple interface # ctr=$(buildah from fedora) # mnt=$(buildah mount $ctr) # cp -R src $mnt # dnf install --installroot=$mnt httpd # make install DESTDIR=$mnt # buildah config --entrypoint=/usr/sbin/test.sh --env foo=bar $ctr # buildah commit $ctr myhttpd # buildah push myhttpd docker://rhatdan/myhttpd #nobigfatdaemons

  65. Dan Wait! #nobigfatdaemons

Download Presentation
Download Policy: The content available on the website is offered to you 'AS IS' for your personal information and use only. It cannot be commercialized, licensed, or distributed on other websites without prior consent from the author. To download a presentation, simply click this link. If you encounter any difficulties during the download process, it's possible that the publisher has removed the file from their server.

Recommend


More recommend