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

The Journey to #GIFEE

Rob
March 22, 2016

The Journey to #GIFEE

Walking through the 3 changes required to run a Google-like infrastructure stack on CoreOS + Kubernetes.

Rob

March 22, 2016
Tweet

More Decks by Rob

Other Decks in Technology

Transcript

  1. Patches to the OS and kernel are hard Rolling update

    tools Diverse hardware LARGE SCALE Safer to leave it alone No one owns security SMALL SCALE
  2. Protect apps from each other Isolated network namespace Isolated file

    system namespace Mixed versions of dependencies eg. python 3.4 & python 2.7
  3. Jetpack FreeBSD/Go Kurma Linux/Go rkt Linux/Go Independent GitHub organization Contributions

    from Cloud Foundry, Mesosphere, Google, Red Hat and many others
  4. $ sudo rkt run coreos.com/etcd:v2.0.0 $ sudo rkt run coreos.com/etcd:v2.0.0

    \ --cpu=750m --memory=128M $ sudo rkt run --net=host coreos.com/etcd:v2.0.0 rkt run
  5. stage0 stage1 stage2 The rkt binary • Fetch ACI, verify

    • Set up pod filesystem • Unpack stage1 and stage2 ACIs
  6. stage0 stage1 stage2 Set up execution env • Create cgroups,

    namespaces, & mounts • Read pod manifest • Start systemd-nspawn
  7. Benefit from standard packaging, signing and distribution at all isolation

    levels. Privileged eg. Kubelet Container/cgroup eg. Webapp Virtual Machine eg. Untrusted code
  8. $ sudo rkt run \ example.com/worker -- --loglevel verbose ---

    \ example.com/syncer -- --interval 30s rkt run a pod
  9. $ sudo rkt gc Moving pod "81627cc6" to garbage Moving

    pod "cd642877" to garbage Moving pod "d65abad6" to garbage Pod "81627cc6" not removed: still within grace period (30m0s) Pod "cd642877" not removed: still within grace period (30m0s) Pod "d65abad6" not removed: still within grace period (30m0s) Garbage Collection Run as a cron job, customizable grace period
  10. $ sudo rkt trust --prefix=storage.coreos.com $ sudo rkt trust --prefix=coreos.com/etcd

    $ sudo rkt trust --root ~/aci-pubkeys.gpg Tools for trust Easily control what runs on your server
  11. $ rkt fetch quay.io/coreos/alpine-sh ... $ sudo rkt run quay.io/coreos/alpine-sh

    Fetch ACI as unprivileged user Don’t have to download as root
  12. $ sudo rkt run --insecure-options=image --interactive \ docker://busybox -- /bin/sh

    Run Docker containers with rkt Use a more secure runtime without changing images
  13. $ etcdctl set /foo bar bar $ etcdctl ls /config

    /config/verbosity /config/ratelimit Set a value $ etcdctl get /foo bar
  14. $ locksmithctl status Available: 1 Max: 1 $ sudo locksmithctl

    reboot locksmith $ locksmithctl status Available: 0 Max: 1 MACHINE ID 7f9ccde3cff9441f8b506785 $ sudo locksmithctl reboot Error locking: semaphore is at 0
  15. Containers on CoreOS are powering ISE's high- throughput, low-latency financial

    exchange Running in production Bare metal & AWS Billions of transactions a day 150 million req/sec
  16. We really look at that [CoreOS] number growing significantly over

    this next year. We did some of these benchmarks to see if our production trading systems could leverage this type of infrastructure, and it was highly successful for us, and we look forward to using it more in our other environments. On the Linux side, everything in AWS is CoreOS. On the physical side, 20% is CoreOS, and growing. “ ” Robert Cornish CTO Paul Morgan Systems Architect
  17. Customer key embedded in the firmware Kubernetes rkt CoreOS Linux

    Firmware & TPM Cluster Containers Hardware OS Kubernetes
  18. Verify integrity of the OS release Customer key embedded in

    the firmware Kubernetes rkt CoreOS Linux Firmware & TPM Cluster Containers Hardware OS
  19. Verify integrity of the OS release Customer key embedded in

    the firmware Verify configuration state Verify images with trusted keys Kubernetes rkt CoreOS Linux Firmware & TPM Cluster Containers Hardware OS
  20. Verify integrity of the OS release Customer key embedded in

    the firmware Verify configuration state Verify images with trusted keys Only attested machines are allowed to join Kubernetes rkt CoreOS Linux Firmware & TPM Cluster Containers Hardware OS
  21. Verify integrity of the OS release Customer key embedded in

    the firmware Verify configuration state Verify images with trusted keys Only attested machines are allowed to join Kubernetes rkt CoreOS Linux Firmware & TPM Cluster Containers Hardware OS Tamper-proof audit log (TPM)
  22. You hold the keys Only software your company allows will

    run You are in control of the hardware Key
  23. New Level of Security Run in third party or hostile

    data centers with zero trust Prevent invisible attacks Verifiable audit log for when things go wrong Putting you in control Your company is in cryptographic control your environment