Successfully reported this slideshow.
Your SlideShare is downloading. ×

Docker & Kubernetes intro

Ad

Docker and Kubernetes
(an intro)
Arnon Rotem-Gal-Oz

Ad

What is Docker?

Ad

Linux Containers

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Upcoming SlideShare
Docker on Google App Engine
Docker on Google App Engine
Loading in …3
×

Check these out next

1 of 28 Ad
1 of 28 Ad
Advertisement

More Related Content

Advertisement
Advertisement

Docker & Kubernetes intro

  1. 1. Docker and Kubernetes (an intro) Arnon Rotem-Gal-Oz
  2. 2. What is Docker?
  3. 3. Linux Containers
  4. 4. What’s isolated?
  5. 5. So what is Docker then?
  6. 6. What are the basics of the Docker system? Source Code Repository Dockerfile For A Docker Engine Docker Container Image Registry Build Docker Host 2 OS (Linux) ContainerA ContainerB ContainerC ContainerA Push Search Pull Run Host 1 OS (Linux) http://www.slideshare.net/dotCloud/docker-intro-november
  7. 7. Changes and Updates Docker Engine Docker Container Image Registry Docker Engine Push Update Bins/ Libs App A AppΔ Bins/ Base Container Image Host is now running A’’ Container Mod A’’ AppΔ Bins/ Bins/ Libs App A Bins/ Bins/ Libs App A’’ Host running A wants to upgrade to A’’. Requests update. Gets only diffs Container Mod A’ http://www.slideshare.net/dotCloud/docker-intro-november
  8. 8. Work on my machine…
  9. 9. What is Kubernetes?
  10. 10. Is a Distributed Operating System for your code
  11. 11. 1. OS as an extended machine 2. OS as a Resource Manager
  12. 12. What we get • Scaling • Discovery • Load balancing and routing • Monitoring • Configuration
  13. 13. Azure/AWS/Google/AliCloud all have managed Kubernetes offerings
  14. 14. Pod • A deployment unit • one or more containers • Shared storage volumes • Shared IP (i.e. access via localhost) and port space • Deployed together (co-located, co-scheduled) • Ephemeral (reschedule  new instance, not rerunning an ”old” instance)
  15. 15. network Init container 2 Init container 1 container 1 container 2 POD
  16. 16. Side-car pattern (edge component)
  17. 17. • Job • CronJob • StatefulSet • DeamonSet • Deployment • Replicaset
  18. 18. Service • Set of Pods • An access policy (session affinity, port, external port etc.) • Provides a stable endpoint for other services http://kubernetes.io/docs/user-guide/services/
  19. 19. Declare desired state (via yaml)
  20. 20. https://threadreaderapp.com/thread/1067537816324845569.html
  21. 21. Operators: Deploy Apps on K8s
  22. 22. And there’s a lot more…

Editor's Notes

  • Platform for managing Linux Containers
    API for image management

    Builds on cgroup and namespacing

    Built in Go

    Includes an image specification and container specification (namespaces, filesystem resources etc.)
    (DockerFile)

  • Container = OS level virtualization - a lightweight VM

    Not duplicating the whole OS for each ”machine”
  • Namespaces (mounts, PIDs etc.)
    Cgroups (CPU, Memory, Disk)
    Chroot (file system)
    Seccomp (computation)
  • Platform for managing Linux Containers
    API for image management

    Builds on cgroup and namespacing

    Built in Go

    Includes an image specification and container specification (namespaces, filesystem resources etc.)
    (DockerFile)

  • Opinionated Platform for hosting containers (not just docker)

    Provides container grouping, load balancing, healing, scaling etc.
    Started by Google based on their internal concepts

    One of several options in the market killing all the rest
    Others include Docekr Swarm, Mesos etc.
  • Opinionated Platform for hosting containers (not just docker)

    Provides container grouping, load balancing, healing, scaling etc.
    Started by Google based on their internal concepts

    One of several options in the market killing all the rest
    Others include Docekr Swarm, Mesos etc.
  • Opinionated Platform for hosting containers (not just docker)

    Provides container grouping, load balancing, healing, scaling etc.
    Started by Google based on their internal concepts

    One of several options in the market killing all the rest
    Others include Docekr Swarm, Mesos etc.
  • Kubelet – Node agent
    Holds PodSpecs
    Performs probes on containers
    ExecAction: Executes a specified command inside the Container. The diagnostic is considered successful if the command exits with a status code of 0.
    TCPSocketAction: Performs a TCP check against the Container’s IP address on a specified port. The diagnostic is considered successful if the port is open.
    HTTPGetAction: Performs an HTTP Get request against the Container’s IP address on a specified port and path. The diagnostic is considered successful if the response has a status code greater than or equal to 200 and less than 400.

    Kube controller
    Node controller: Responsible for noticing and responding when nodes go down.
    Replication controller: Responsible for maintaining the correct number of pods for every replication controller object in the system.
    Endpoints controller: Populates the Endpoints object (that is, joins Services & Pods).
    Service Account & Token controllers: Create default accounts and API access tokens for new namespaces.

    Cloud controller – api to specific clouds
  • Init containers run in a chain to completion (must end) one after the other
    Can be used to ensure pre-requisites are met
    Can have different permissions that the containers that run in the pod

    Lifecycle, livenessProbe, readinessProbe,startupProbe
  • Extend the event loop

×