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

CoreOS @Railscamp

CoreOS @Railscamp

CoreOS tools and concepts

Timo Derstappen

September 30, 2014
Tweet

More Decks by Timo Derstappen

Other Decks in Technology

Transcript

  1. • Minimal Linux to run your containers • Automatic Updates

    • Cluster Management • Service Discovery What is CoreOS?
  2. Linux Basis • Based on Gentoo • Images for PXE,

    OpenStack, AWS, GCE, Vagrant • Systemd, btrfs • Read-only rootfs (writable overlay)
  3. CoreOS own tools • Etcd • Fleet • Locksmith •

    Cloud-config • Flannel github.com/coreos
  4. Etcd • Key/Value store • Basis for ◦ Configuration management

    ◦ Service Discovery • Raft consensus algorithm • REST Interface
  5. Cloud Config • Initialization of your instances • Configure etcd,

    fleet, locksmith • YAML file • eg. EC2 user data
  6. Locksmith • Reboot strategies for CoreOS updates • Uses etcd

    for distributed locks • Alpha, Beta, Stable channels
  7. Fleet • Fleet is systemd for the cluster • Uses

    etcd • CLI and API to start your containers
  8. Fleet Scheduler • Simple (eg. based on Metadata) • But

    resolves service dependencies! • More to come (eg. based on available resources)
  9. Unit file [Unit] Description=A Redis Server [Service] TimeoutStartSec=0 EnvironmentFile=/etc/environment Environment="IMAGE=teemow/redis"

    ExecStartPre=/usr/bin/docker pull $IMAGE ExecStart=/bin/bash -c "exec /usr/bin/docker run --rm -p $COREOS_PRIVATE_IPV4::6379 --name %n $IMAGE" ExecStop=/usr/bin/docker stop %n
  10. Manage a service fleetctl start redis.service fleetctl list-units fleetctl status

    redis.service fleetctl journal redis.service fleetctl stop redis.service fleetctl destroy redis.service
  11. cAdvisor • Monitoring for your containers • Collects, aggregates and

    processes metrics • InfluxDB Backend • Monitoring of clusters with Heapster
  12. Deis • Open Source PaaS • used Heroku build packs

    • now recommends Docker-native builds
  13. Panamax • Web interface to start multi container apps •

    App Templates on Github • Open Source project from CenturyLink Labs
  14. • Simple Service Orchestration • Based in Cologne, Germany •

    Built on top of CoreOS http://giantswarm.io Giant Swarm