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

Kubernetes Anywhere

Kubernetes Anywhere

Kubernetes Anywhere is a coherent, platform-agnostic way to provision Kubernetes clusters. Presented at the Berlin Kubernetes Meetup, 6 April 2016. https://github.com/weaveworks/kubernetes-anywhere

Peter Bourgon

April 06, 2016
Tweet

More Decks by Peter Bourgon

Other Decks in Technology

Transcript

  1. weaveworks-
    Kubernetes Anywhere
    Coherent, platform-agnostic provisioning

    View full-size slide

  2. weaveworks-
    @mfdii

    View full-size slide

  3. weaveworks-
    @mfdii

    View full-size slide

  4. weaveworks-
    kube-apiserver

    View full-size slide

  5. weaveworks-
    kube-apiserver
    etcd

    View full-size slide

  6. weaveworks-
    kube-controller-manager
    kube-apiserver
    etcd

    View full-size slide

  7. weaveworks-
    kube-controller-manager
    kube-scheduler
    kube-apiserver
    etcd

    View full-size slide

  8. weaveworks-
    kube-controller-manager
    kube-scheduler
    kube-apiserver
    kube-proxy
    kubelet
    etcd

    View full-size slide

  9. weaveworks-
    kube-controller-manager
    kube-scheduler
    kube-apiserver
    kube-proxy
    kubelet
    etcd

    View full-size slide

  10. weaveworks-
    kube-controller-manager
    kube-scheduler
    kube-apiserver
    kube-proxy
    kubelet
    etcd

    View full-size slide

  11. weaveworks-
    kubelet
    kube-proxy
    kube-controller-manager
    kube-scheduler
    kube-apiserver
    kube-proxy
    kubelet
    etcd

    View full-size slide

  12. weaveworks-
    kubelet
    kube-proxy
    kube-controller-manager
    kube-scheduler
    kube-apiserver
    kube-proxy
    kubelet
    etcd

    View full-size slide

  13. weaveworks-
    etcd
    etcd
    kubelet
    kube-proxy
    kube-controller-manager
    kube-scheduler
    kube-apiserver
    kube-proxy
    kubelet
    etcd

    View full-size slide

  14. weaveworks-
    etcd
    etcd
    kubelet
    kube-proxy
    kube-controller-manager
    kube-scheduler
    kube-apiserver
    kube-proxy
    kubelet
    etcd
    etcdN.cluster.internal
    k0.cluster.internal
    kN.cluster.internal

    View full-size slide

  15. weaveworks-
    Deployment choices
    • Bare metal?
    • Cloud provider — DigitalOcean, Linode?
    • Cloud platform — AWS, GCE, Azure?
    • Fully hosted — GKE, Deis?

    View full-size slide

  16. weaveworks-
    Deployment choices
    • Container OS — CoreOS, Atomic, Snappy?
    • Automation tools — Puppet, Chef, Salt, Ansible?

    View full-size slide

  17. weaveworks-
    Deployment choices
    • Network — base, overlay, IPVLAN? L2, L3?
    • Storage — platform-provided, NFS, Ceph, Flocker, Quobyte?
    • Monitoring — host-only, exception tracking, instrumenting?

    View full-size slide

  18. weaveworks-
    Deployment choices
    • Databases — hosted, containerized, separate deployment?
    • Cluster management — live upgrades, rebuild?
    • Access control?

    View full-size slide

  19. weaveworks-
    Deployment choices
    • Artifact repository — fileserver, internal registry, hosted registry?
    • Integration testing — none, Jenkins, Circle?
    • Deployment — ad-hoc, version-tracked, CD pipeline?

    View full-size slide

  20. weaveworks-
    @mfdii

    View full-size slide

  21. weaveworks-
    Kubernetes interacts with it all
    • Some is lightweight e.g. monitoring (cAdvisor, Prometheus)
    • Some is deeply coupled e.g. networking (Flannel, Weave, Calico)
    • Some sits in between e.g. container runtime (Docker, rkt)

    View full-size slide

  22. weaveworks-
    All choices are valid
    • Choices are driven by
    • Legacy systems
    • Institutional experience and knowledge
    • Individual opinions

    View full-size slide

  23. weaveworks-
    Wouldn't it be nice
    • Solve the problems
    • Make as few choices as possible
    • No opaque magic to hide a bunch of complexity

    View full-size slide

  24. weaveworks-
    Weave Net
    • Start with the network and everything falls into place
    • Weave as bootstrap/management network (& network for pods)
    • Fully self-contained, no external requirements e.g. etcd
    • Comes with DNS
    • ‛ Each Kubernetes component gets its own DNS name

    View full-size slide

  25. weaveworks-
    Kubernetes Anywhere
    • 100% containerized Kubernetes (including TLS!! if you want it)
    • Zero config scale-out & in-place upgrades
    • Almost no opinions baked in
    • Weave Net + bare metal = ✓
    • Weave Net + Terraform + EC2 = ✓
    • Weave Net + docker-machine + DigitalOcean = ✓

    View full-size slide

  26. weaveworks-
    Kubernetes Anywhere

    View full-size slide

  27. weaveworks-
    Kubernetes Anywhere

    View full-size slide

  28. weaveworks-
    Kubernetes Anywhere

    View full-size slide

  29. weaveworks-
    Kubernetes Anywhere

    View full-size slide

  30. weaveworks-
    Kubernetes Anywhere

    View full-size slide

  31. weaveworks-
    Kubernetes Anywhere

    View full-size slide

  32. weaveworks-
    Kubernetes Anywhere

    View full-size slide

  33. weaveworks-
    Kubernetes Anywhere

    View full-size slide

  34. weaveworks-
    Kubernetes Anywhere

    View full-size slide

  35. weaveworks-
    kubectl
    Kubernetes Anywhere

    View full-size slide

  36. weaveworks-
    Demo

    View full-size slide

  37. weaveworks-
    ABCDEs of cloud-native apps
    • Write the App, to your own requirements
    • Build and test it
    • Provision a Cluster to run the app
    • Deploy to the cluster
    • Execute the app e.g. move traffic to it

    View full-size slide

  38. weaveworks-
    Thanks!
    github.com/weaveworks/kubernetes-anywhere

    View full-size slide