Skip to content

Instantly share code, notes, and snippets.

@pricees
Created April 2, 2015 05:27
Show Gist options
  • Select an option

  • Save pricees/074e32d1556b9df26ca6 to your computer and use it in GitHub Desktop.

Select an option

Save pricees/074e32d1556b9df26ca6 to your computer and use it in GitHub Desktop.
CoreOS, Docker, Kubernetes Notes

Notes on CoreOS

  • build of ChromeOS
  • very lightweight, no extra pieces
  • not even a package manager
  • all apps are expected as docker containers
  • on boot:
  • loads "clound-config"
  • loads etcd (daemon)
  • highly-available/globally distributed key-value store
  • each node runs its own ectd client
  • passes configuration between nodes
  • used for service-discovery (e.g. a load balancer queries etcd for ip address of backend services)
  • to get the data: http://127.0.0.1:4001/v2/keys/ or utility etcdctl
  • loads "fleet" (daemon) to schedule, manage apps across cluster
  • fleet is a system wide init
  • fleet ties into nodes systemd
  • constraining the deployment targets
  • start or stop services on less busy nodes!
  • specify conditions for starting service
  • fleetctl
    • schedule services
    • manage nodes
    • general state of systems

Docker

  • containerization system utilizes LXC
  • uses kernel namespacing and cgroups to isolate processes
  • act as individual servers running side by side over each other
  • vs virtualization: doesn't emulate OS only implements whats necessary to run app

Kubernetes - pronounced koo-ber-nay'-tace

  • manage containerized apps across a cluster of nodes
  • unit of work is a service, can have member nodes, user shouldn't care where work is done.
  • Controlling unit called "master" service
  • directs communications across system
  • uses etcd, but is more fleiible than CoreOS implementation
  • runs API server
  • etcd store and service details of containers are in agreement
  • kubecfg and RESTful interface
  • manager service watches for changes on etcd acts accordingly Kubernetes minions - where the work is done
  • communicate with master
  • network containers
  • docker service is required
  • dedicated subnet for each minion is available so ports can be exposed correctly Kubelet -
  • service communicates with master server to receive commands and work
  • work is received as a manifest Pod
  • closely related containers grouped on pd
  • involved containers scheduled on hosts
  • share volumes and ip space
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment