Upgrade to Pro — share decks privately, control downloads, hide ads and more …

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.

Ian Lewis

April 14, 2017
Tweet

More Decks by Ian Lewis

Other Decks in Technology

Transcript

  1. Container Standards &
    Kubernetes
    IanMLewis@

    View Slide

  2. Component A Component B

    View Slide

  3. Component A Component B
    API

    View Slide

  4. View Slide

  5. Key Takeaways

    Docker (Docker CE, containerd, whatever) != containers

    Containers are just another tech. They need standards.

    With clusters, containers are (mostly) irrelevant.

    View Slide

  6. View Slide

  7. OS API
    int * array = malloc(10 * sizeof(int));
    if (array == NULL) {
    fprintf(stderr, "malloc failed\n");
    return(-1);
    }

    View Slide

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

    View Slide

  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

    View Slide

  10. View Slide

  11. Use Cases

    Build tools

    Image registries

    Testing/Security tools

    CI/CD tools

    Container orchestrators

    View Slide

  12. View Slide

  13. OCI

    runtime-spec

    image-spec

    View Slide

  14. runtime-spec

    How to run a container from a “filesystem bundle”

    runc ...basically

    View Slide

  15. image-spec

    File format for container images

    How to unpack into a “filesystem bundle”

    View Slide

  16. image-spec

    File format for container images

    How to unpack into a “filesystem bundle”

    View Slide

  17. Clusters

    Cluster level APIs for containers

    Allow you to deploy containers across many machines

    View Slide

  18. View Slide

  19. Container Runtime Interface

    Interface between container runtimes and Kubernetes

    Developed so runtimes could easily integrate with
    Kubernetes

    View Slide

  20. View Slide

  21. Kubelet
    ocid
    Container
    Container
    Container
    。。。

    View Slide

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

    View Slide

  23. Kubelet
    rkt
    Container
    Container
    Container
    。。。
    CRI

    View Slide

  24. Kubelet
    containerd
    Container
    Container
    Container
    。。。
    CRI

    View Slide

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

    View Slide

  26. Clusters

    Cluster level APIs for containers

    APIs don’t change depending on the runtime

    View Slide

  27. API
    Container
    Cluster

    View Slide

  28. Benefits

    Interoperability

    View Slide

  29. Thanks!

    View Slide