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

Eb68eb9603a0e8822eda69e7ca721866?s=128

Peter Bourgon

April 06, 2016
Tweet

Transcript

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

  2. weaveworks- @mfdii

  3. weaveworks- @mfdii

  4. weaveworks- kube-apiserver

  5. weaveworks- kube-apiserver etcd

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

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

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

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

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

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

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

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

    etcd
  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
  15. weaveworks- Deployment choices • Bare metal? • Cloud provider —

    DigitalOcean, Linode? • Cloud platform — AWS, GCE, Azure? • Fully hosted — GKE, Deis?
  16. weaveworks- Deployment choices • Container OS — CoreOS, Atomic, Snappy?

    • Automation tools — Puppet, Chef, Salt, Ansible?
  17. weaveworks- Deployment choices • Network — base, overlay, IPVLAN? L2,

    L3? • Storage — platform-provided, NFS, Ceph, Flocker, Quobyte? • Monitoring — host-only, exception tracking, instrumenting?
  18. weaveworks- Deployment choices • Databases — hosted, containerized, separate deployment?

    • Cluster management — live upgrades, rebuild? • Access control?
  19. weaveworks- Deployment choices • Artifact repository — fileserver, internal registry,

    hosted registry? • Integration testing — none, Jenkins, Circle? • Deployment — ad-hoc, version-tracked, CD pipeline?
  20. weaveworks- @mfdii

  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)
  22. weaveworks- All choices are valid • Choices are driven by

    • Legacy systems • Institutional experience and knowledge • Individual opinions
  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
  24. weaveworks-

  25. weaveworks-

  26. 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
  27. 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 = ✓
  28. weaveworks- Kubernetes Anywhere

  29. weaveworks- Kubernetes Anywhere

  30. weaveworks- Kubernetes Anywhere

  31. weaveworks- Kubernetes Anywhere

  32. weaveworks- Kubernetes Anywhere

  33. weaveworks- Kubernetes Anywhere

  34. weaveworks- Kubernetes Anywhere

  35. weaveworks- Kubernetes Anywhere

  36. weaveworks- Kubernetes Anywhere

  37. weaveworks- kubectl Kubernetes Anywhere

  38. weaveworks- Demo

  39. 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
  40. weaveworks- Thanks! github.com/weaveworks/kubernetes-anywhere