characterizing and contrasting container orchestrators
play

Characterizing and Contrasting Container Orchestrators Lee Calcote - PowerPoint PPT Presentation

Characterizing and Contrasting Container Orchestrators Lee Calcote LinuxCon+ContainerCon, August 2016 http://calcotestudios.com/ccka Lee Calcote clouds, containers, infrastructure, applications and their management Available at Preorder


  1. Characterizing and Contrasting Container Orchestrators Lee Calcote LinuxCon+ContainerCon, August 2016 http://calcotestudios.com/ccka

  2. Lee Calcote clouds, containers, infrastructure, applications and their management Available at Preorder ContainerCon Available @lcalcote blog.gingergeek.com linkedin.com/in/leecalcote lee@calcotestudios.com

  3. Definition: [k uh n- tey -ner] [ awr -k uh -streyt-or] @lcalcote

  4. Fleet Nomad Swarm Kubernetes Mesos+Marathon (Stay tuned for updates to presentation) @lcalcote

  5. A strict apples-to-apples comparison is inappropriate and not the objective, hence characterizing and contrasting. One size does not fit all. @lcalcote

  6. Container orchestrators may be intermixed. Let's not go here today. @lcalcote

  7. Categorically Speaking Genesis & Purpose Support & Momentum Host & Service Discovery Scheduling Modularity & Extensibility Updates & Maintenance Health Monitoring Networking & Load-Balancing High Availability & Scale @lcalcote

  8. ≈ Hypervisor Container Manager Orchestrator Elements Elements Compute Host (Node) Container Network Service Storage Volume ≈ Applications @lcalcote

  9. Core Additional Capabilities Key Capabilities Cluster Management Application Health Monitoring Host Discovery Application Deployments Host Health Monitoring Application Performance Monitoring Scheduling Orchestrator Updates and Host Maintenance Service Discovery Networking and Load-Balancing @lcalcote

  10. Docker Swarm

  11. Genesis & Purpose Swarm is simple and easy to setup. Swarm is responsible for the clustering and scheduling aspects of orchestration. Originally an imperative system, now declarative Swarm’s architecture is not complex as those of Kubernetes and Mesos Written in Golang, Swarm is lightweight, modular and extensible @lcalcote

  12. Docker Swarm 1.12 aka Swarmkit or Swarm mode @lcalcote

  13. Docker Swarm 1.11 (Standalone) Docker Swarm Mode 1.12 @lcalcote

  14. Support & Momentum Contributions: Standalone: ~3,000 commits, 12 core maintainers (140 contributors) Swarmkit: ~2,000 commits, 12 core maintainers (40 contributors) ~250 Docker meetups worldwide Production-ready: Standalone announced 8 months ago (Nov 2015) Swarmkit announced < 1 month ago (July 2016) @lcalcote

  15. Host & Service Discovery Host Discovery used in the formation of clusters by the Manager to discover for Nodes (hosts). Service Discovery Embedded DNS and round robin load-balancing Services are a new concept @lcalcote image: iStock

  16. Scheduling Swarm’s scheduler is pluggable Swarm scheduling is a combination of strategies and filters/constraint: Strategies Random Swarm Mode only supports Spread Binpack Spread* Plugin? Filters container constraints (affinity, dependency, port) are defined as environment variables in the specification file node constraints (health, constraint) must be specified when starting the docker daemon and define which nodes a container may be scheduled on. image: pickywallpapers

  17. Modularity & Extensibility Ability to remove batteries is a strength for Swarm: Pluggable scheduler Pluggable network driver Pluggable distributed K/V store Docker container engine runtime-only Pluggable authorization (in docker engine)* @lcalcote image: Alan Chia

  18. Updates & Maintenance Nodes Nodes may be Active, Drained and Paused Manual swarm manager and worker updates Applications Rolling updates now supported --update-delay --update-parallelism --update-failure-action @lcalcote image: 123RF

  19. Health Monitoring Nodes Swarm monitors the availability and resource usage of nodes within the cluster Applications One health check per container may be run check container health by running a command inside the container --interval=DURATION (default: 30s) --timeout=DURATION (default: 30s) --retries=N (default: 3) @lcalcote

  20. Networking & Load- Balancing Swarm and Docker’s multi-host networking are simpatico provides for user-defined overlay networks that are micro-segmentable uses a gossip protocol for quick convergence of neighbor table facilitates container name resolution via embedded DNS server (previously via etc/hosts) You may bring your own network driver Load-balancing based on IPVS expose Service's port externally L4 load-balancer; cluster-wide port publishing Mesh routing send a request to any one of the nodes and it will be routed automatically send a request to any one of the nodes and it will be internally load balanced

  21. High Availability & Scale Managers may be deployed in a highly-available configuration Active/Standby - only one active Leader at-a-time Maintain odd number of managers Rescheduling upon node failure No rebalancing upon node addition to the cluster Does not support multiple failure isolation regions or federation although, with caveats, federation is possible . @lcalcote

  22. Scaling swarm to 1,000 AWS nodes and 50,000 containers @lcalcote

  23. Swarm works. Swarm is simple and easy to Suitable for orchestrating a combination of infrastructure containers deploy. Has only recently added capabilities falling into the application bucket 1.12 eliminated the need for much third-party software Swarm is a young project Facilitates earlier stages of adoption by organizations viewing advanced features forthcoming containers as faster VMs natural expectation of caveats in functionality now with built-in functionality for applications No rebalancing, autoscaling or monitoring, yet Swarm is easy to extend, if can already know Only schedules Docker containers, not containers using other specifications. Docker APIs, you can customize Swarm Does not schedule VMs or non-containerized processes Highly modular: Need separate load-balancer for overlapping ingress ports Pluggable scheduler While dependency and affinity filters are available, Swarm does not provide Pluggable K/V store for both node and multi- the ability to enforce scheduling of two containers onto the same host or not host networking at all. Filters facilitate sidecar pattern. No “pod” concept.

  24. Kubernetes

  25. Genesis & Purpose an opinionated framework for building distributed systems or as its tagline states "an open source system for automating deployment, scaling, and operations of applications." Written in Golang, Kubernetes is lightweight, modular and extensible considered a third generation container orchestrator led by Google, Red Hat and others. bakes in load-balancing, scale, volumes, deployments, secret management and cross-cluster federated services among other features. Declaratively, opinionated with many key features included

  26. Kubernetes Architecture @lcalcote

  27. Support & Momentum Kubernetes is young (about two years old) Announced as production-ready 13 months ago (July 2015) Project currently has over 1,000 commits per month (~34,000 total) made by about 100 (862 total) Kubernauts (Kubernetes enthusiasts) ~5,000 commits made in the latest release - 1.3. Under the governance of the Cloud Native Computing Foundation Robust set of documentation and ~90 meetups @lcalcote

  28. Host & Service Discovery Host Discovery by default, the node agent (kubelet) is configured to register itself with the master (API server) automating the joining of new hosts to the cluster Service Discovery Two primary modes of finding a Service DNS SkyDNS is deployed as a cluster add-on environment variables environment variables are used as a simple way of providing compatibility with Docker links-style networking image: iStock

  29. Scheduling By default, scheduling is handled by kube-scheduler. Pluggable Selection criteria used by kube-scheduler to identify the best- fit node is defined by policy: Predicates (node resources and characteristics): PodFitPorts , PodFitsResources, NoDiskConflict , MatchNodeSelector, HostName , ServiceAffinit, LabelsPresence Priorities (weighted strategies used to identify “best fit” node): LeastRequestedPriority, BalancedResourceAllocation, ServiceSpreadingPriority, EqualPriority @lcalcote

  30. Modularity & Extensibility One of Kubernetes strengths its pluggable architecture Choice of: database for service discovery or network driver container runtime users may choose to run Docker with Rocket containers Cluster add-ons optional system components that implement a cluster feature (e.g. DNS, logging, etc.) shipped with the Kubernetes binaries and are considered an inherent part of the Kubernetes clusters

  31. Updates & Maintenance Applications Deployment objects automate deploying and rolling updating applications. Support for rolling back deployments Kubernetes Components Upgrading the Kubernetes components and hosts is done via shell script Host maintenance - mark the node as unschedulable. existing pods are not vacated from the node prevents new pods from being scheduled on the node @lcalcote image: 123RF

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