Kubernetes Hardware Hacks: Exploring the Kubernetes API Through Knobs, Faders, and Sliders

Kubernetes Hardware Hacks: Exploring the Kubernetes API Through Knobs, Faders, and Sliders

01dc8e954957a10b428aa60b28c89d52?s=128

Ian Lewis

March 16, 2016
Tweet

Transcript

  1. Ian Lewis Developer Relations Kubernetes Hardware Hacks Exploring the Kubernetes

    API Through Knobs, Faders, and Sliders
  2. Confidential & Proprietary Google Cloud Platform 2 Ian Lewis Developer

    Advocate - Google Cloud Platform Tokyo, Japan google.com/+IanLewis-hoge @IanMLewis
  3. Confidential & Proprietary Google Cloud Platform 3 私は日本語ちょっとできます I can

    speak Japanese a little
  4. Confidential & Proprietary Google Cloud Platform 4 Dashboard

  5. None
  6. Jean-Etienne Poirrier Creative Commons

  7. Duch.seb Creative Commons

  8. Google Cloud Platform kubelet UI kubelet CLI API users master

    nodes The 10000 foot view etcd kubelet scheduler controllers apiserver
  9. Google Cloud Platform UI All you really care about API

    Container Cluster
  10. Google Cloud Platform UI All you really care about API

    Container Cluster
  11. Confidential & Proprietary Google Cloud Platform 11 http://localhost:8888/swagger-ui/

  12. Google Cloud Platform Objects • Nodes • Pods • ReplicationControllers

    • Services • etc.
  13. Confidential & Proprietary Google Cloud Platform 13 observe diff act

  14. Google Cloud Platform Clients • CLI: kubectl! • Official Go

    client • Fabric8/OSGi • pykube • More: kubernetes/docs/devel/client-libraries. md
  15. Confidential & Proprietary Google Cloud Platform 15 kubectl proxy &

    curl
  16. Confidential & Proprietary Google Cloud Platform 16 kubectl

  17. Confidential & Proprietary Google Cloud Platform 17 kubectl get pods

    GET /api/v1/namespaces/default/pods { "kind": "PodList", "apiVersion": "v1", "metadata": { "selfLink": "/api/v1/namespaces/default/pods", "resourceVersion": "3742101" }, "items": [ … ] }
  18. Confidential & Proprietary Google Cloud Platform 18 kubectl get pods

    --namespace=myns GET /api/v1/namespaces/myns/pods { "kind": "PodList", "apiVersion": "v1", "metadata": { "selfLink": "/api/v1/namespaces/myns/pods", "resourceVersion": "3742101" }, "items": [ … ] }
  19. Confidential & Proprietary Google Cloud Platform 19 kubectl label pod

    mypod a=b PUT /api/v1/namespaces/default/pods/mypod … “metadata”: { “labels”: [“a”: “b”, …] } ...
  20. Confidential & Proprietary Google Cloud Platform 20 kubectl rolling-update GET

    /api/v1/namespaces/default/replicationcontrollers/B POST /api/v1/namespaces/default/replicationcontrollers ... PUT /api/v1/namespaces/default/replicationcontrollers/B ... PUT /api/v1/namespaces/default/replicationcontrollers/A ...
  21. Google Cloud Platform Dashboard publisher subscriber launchpad launchcontrol API scale

    get pods
  22. Google Cloud Platform Dashboard publisher subscriber launchpad launchcontrol API scale

    get pods ? ?
  23. Google Cloud Platform Standard Deployment • Docker deployments require lots

    of tooling • Kubernetes API has visibility into the cluster • Great for building things on top like CI, CD, and dashboards!
  24. Done! Thanks! @IanMLewis