Container Standards & Kubernetes

Container Standards & Kubernetes

Standards for containers has been seen as a fraught and confusing topic. In this talk I hope to dispel some of the confusion and highlight the progress being made on standards. Attendees will learn about what container standards are out there, and how they fit together. They will come away why containers are important for the future of the container ecosystem. I will discuss container standards and why they are important. I will introduce the Open Containers Initiative (OCI), what it is, and what it hopes to accomplish. I will also discuss cri-o, a tool that provides integration between OCI compliant container runtimes and Kubernetes, and how to use it in your clusters.

01dc8e954957a10b428aa60b28c89d52?s=128

Ian Lewis

April 14, 2017
Tweet

Transcript

  1. Container Standards & Kubernetes IanMLewis@

  2. Component A Component B

  3. Component A Component B API

  4. None
  5. Key Takeaways • Docker (Docker CE, containerd, whatever) != containers

    • Containers are just another tech. They need standards. • With clusters, containers are (mostly) irrelevant.
  6. None
  7. OS API int * array = malloc(10 * sizeof(int)); if

    (array == NULL) { fprintf(stderr, "malloc failed\n"); return(-1); }
  8. 100 MB 1 Core eth0 500 MB 2 Core eth0

    eth1 50 MB 1 Core eth0 eth1 eth2
  9. eth0 eth1 eth2 100 MB 1 Core 500 MB 2

    Core eth0 eth1 50 MB 1 Core Process 1 Process 2 Process 3 Process 4 Process 5
  10. None
  11. Use Cases • Build tools • Image registries • Testing/Security

    tools • CI/CD tools • Container orchestrators
  12. None
  13. OCI • runtime-spec • image-spec

  14. runtime-spec • How to run a container from a “filesystem

    bundle” • runc ...basically
  15. image-spec • File format for container images • How to

    unpack into a “filesystem bundle”
  16. image-spec • File format for container images • How to

    unpack into a “filesystem bundle”
  17. Clusters • Cluster level APIs for containers • Allow you

    to deploy containers across many machines
  18. None
  19. Container Runtime Interface • Interface between container runtimes and Kubernetes

    • Developed so runtimes could easily integrate with Kubernetes
  20. None
  21. Kubelet ocid Container Container Container 。。。

  22. Kubelet ocid Container Container Container 。。。 CRI OCI

  23. Kubelet rkt Container Container Container 。。。 CRI

  24. Kubelet containerd Container Container Container 。。。 CRI

  25. Kubelet ocid Container Container Container 。。。 CRI OCI

  26. Clusters • Cluster level APIs for containers • APIs don’t

    change depending on the runtime
  27. API Container Cluster

  28. Benefits • Interoperability

  29. Thanks!