$30 off During Our Annual Pro Sale. View Details »

What's new in Kubernetes 1.3

What's new in Kubernetes 1.3

There's a lot of new features in Kubernetes 1.3. From local clusters to cross cloud federated clusters to persistent data, Kubernetes 1.3 can help your enterprise meet it's needs at scale. Check out this presentation to see what's new in Kubernetes 1.3.

Carter Morgan

July 07, 2016
Tweet

More Decks by Carter Morgan

Other Decks in Technology

Transcript

  1. What’s New in K8s 1.3
    Carter Morgan
    @_askcarter
    @_askcarter

    View Slide

  2. Background: 3 Hurdles
    @_askcarter

    View Slide

  3. The App How do I write scalable apps?
    How do I package and distribute?
    What runtimes am I locked into?
    @_askcarter

    View Slide

  4. The Infra Can I scale?
    Is it automatic?
    Am I locked in?
    @_askcarter

    View Slide

  5. The Wild Where are my machines?
    How do I update?
    @_askcarter

    View Slide

  6. Kubernetes
    Open Source Container Automation
    Framework
    • Open API
    • Based on Google’s experiences
    @_askcarter

    View Slide

  7. 3 Claims
    @_askcarter

    View Slide

  8. How does k8s hold up?
    @_askcarter

    View Slide

  9. Kubernetes
    Pre 1.3
    Horizontal Scaling
    Automated Rollbacks
    Container Scheduling
    Resource Quotas and Limits
    Self-healing
    Service Discovery and Load Balancing
    Secret and Configuration Management
    Daemon Sets
    Secrets and Config Maps
    Deployments
    (already had a lot)
    @_askcarter

    View Slide

  10. monolith
    nginx
    hello
    nginx
    Microservices
    Monolith
    auth
    @_askcarter

    View Slide

  11. Container Based
    Photo © ptnimages via Canva.com
    @_askcarter

    View Slide

  12. Pods
    Logical Application
    • One or more containers
    and volumes
    • Shared namespaces
    • One IP per pod Pod
    nginx
    monolith
    NFS
    iSCSI
    GCE
    10.1.0.100
    @_askcarter

    View Slide

  13. Labels
    Arbitrary metadata
    attached to any API object
    • Queryable by Selectors
    • How Kubernetes does
    grouping Pod
    nginx
    monolith
    Pod
    nginx
    monolith
    labels:
    version: v1
    track: stable
    labels:
    version: v1
    track: test
    @_askcarter

    View Slide

  14. Labels
    selector: version=v1
    Pod
    nginx
    monolith
    Pod
    nginx
    monolith
    labels:
    version: v1
    track: stable
    labels:
    version: v1
    track: test
    @_askcarter

    View Slide

  15. Labels
    selector: track=stable
    Pod
    nginx
    monolith
    Pod
    nginx
    monolith
    labels:
    version: v1
    track: stable
    labels:
    version: v1
    track: test
    @_askcarter

    View Slide

  16. Services
    Persistent IPs for Pods
    • Uses Labels to
    Target Pods
    • Internal or External IPs
    Pod
    nginx
    monolith
    Pod
    nginx
    monolith
    Service
    10.8.244.100
    10.1.0.2
    10.1.0.1
    @_askcarter

    View Slide

  17. Deployments
    Drive current state towards desired state
    Node 1
    Pod
    app: hello
    replicas: 1
    hello
    Node 2
    @_askcarter

    View Slide

  18. Deployments
    Drive current state towards desired state
    Node 1
    Pod
    app: hello
    replicas: 2
    hello
    Node 2
    Pod
    hello
    @_askcarter

    View Slide

  19. Deployments
    Drive current state towards desired state
    Node 1
    Pod
    app: hello
    replicas: 2
    hello
    Node 2
    @_askcarter

    View Slide

  20. Deployments
    Drive current state towards desired state
    Node 1
    Pod
    app: hello
    replicas: 2
    hello
    Node 2
    Pod
    hello
    @_askcarter

    View Slide

  21. Rolling Update
    Node 1
    Pod
    hello
    Pod
    hello
    Node
    Pod
    hello
    Node
    Pod
    hello
    Node
    Pod
    hello
    Service
    @_askcarter

    View Slide

  22. Rolling Update
    Node 1
    Pod
    hello
    Pod
    hello
    Node
    Pod
    hello
    Node
    Pod
    hello
    Node
    Pod
    hello
    Service
    Pod
    goodbye
    @_askcarter

    View Slide

  23. Rolling Update
    Node 1
    Pod
    hello
    Pod
    hello
    Node
    Pod
    hello
    Node
    Pod
    hello
    Node
    Pod
    hello
    Service
    Pod
    goodbye
    @_askcarter

    View Slide

  24. Rolling Update
    Node 1
    Pod
    hello
    Pod
    hello
    Node
    Pod
    hello
    Node
    Pod
    hello
    Node
    Pod
    hello
    Service
    Pod
    goodbye
    @_askcarter

    View Slide

  25. Rolling Update
    Node 1
    Pod
    hello
    Pod
    hello
    Node
    Pod
    hello
    Node
    Node
    Pod
    hello
    Service
    Pod
    goodbye
    Pod
    goodbye
    @_askcarter

    View Slide

  26. Rolling Update
    Node 1
    Pod
    hello
    Pod
    hello
    Node
    Pod
    hello
    Node
    Node
    Pod
    hello
    Service
    Pod
    goodbye
    Pod
    goodbye
    @_askcarter

    View Slide

  27. Rolling Update
    Node 1
    Pod
    hello
    Pod
    hello
    Node
    Pod
    hello
    Node
    Node
    Pod
    hello
    Service
    Pod
    goodbye
    Pod
    goodbye
    @_askcarter

    View Slide

  28. Rolling Update
    Node 1
    Pod
    hello
    Pod
    hello
    Node
    Pod
    hello
    Node
    Node
    Service
    Pod
    goodbye
    Pod
    goodbye
    @_askcarter

    View Slide

  29. Rolling Update
    Node 1
    Pod
    hello
    Pod
    hello
    Node
    Pod
    hello
    Node
    Node
    Service
    Pod
    goodbye
    Pod
    goodbye
    Pod
    goodbye
    @_askcarter

    View Slide

  30. Rolling Update
    Node 1
    Pod
    hello
    Pod
    hello
    Node
    Pod
    hello
    Node
    Node
    Service
    Pod
    goodbye
    Pod
    goodbye
    Pod
    goodbye
    @_askcarter

    View Slide

  31. Rolling Update
    Node 1
    Pod
    hello
    Pod
    hello
    Node
    Pod
    hello
    Node
    Node
    Service
    Pod
    goodbye
    Pod
    goodbye
    Pod
    goodbye
    @_askcarter

    View Slide

  32. Rolling Update
    Node 1
    Pod
    hello
    Pod
    hello
    Node Node
    Node
    Service
    Pod
    goodbye
    Pod
    goodbye
    Pod
    goodbye
    @_askcarter

    View Slide

  33. 3 Claims: revisited
    @_askcarter

    View Slide

  34. Kubernetes 1.3
    @_askcarter

    View Slide

  35. Kubernetes 1.3
    @_askcarter

    View Slide

  36. Kubernetes 1.3
    Init containers (alpha)
    Fixed PDs
    Cluster Federation (alpha)
    Optional HTTP2
    Pod Level QoS Policy
    Tls secrets
    kubectl set command
    UI
    Jobs
    RBAC (alpha, experimental)
    Garbage Collector (alpha)
    Pet Sets
    rkt Container runtime
    Network policies
    (and more)
    @_askcarter

    View Slide

  37. Cluster
    Federation
    Manage clusters across region
    and providers
    @_askcarter

    View Slide

  38. Jobs
    Pods *expected* to terminate
    Creates 1...n Pods and ensures that
    a certain number of them run to
    completion
    3 types: non-parallel, fixed count
    parallel, and parallel with a work
    queue
    @_askcarter

    View Slide

  39. Job: Work Queue with Pod Per Work Item
    @_askcarter

    View Slide

  40. Init Containers
    Sequential Pod Initialization
    @_askcarter
    Pod
    Init 1
    monolith
    NFS
    10.1.0.100
    Init 2 Init 3

    View Slide

  41. Init Container: register pod to external service
    @_askcarter

    View Slide

  42. Init Container: clone a git repo into a volume
    @_askcarter

    View Slide

  43. Pet Sets
    Pods with ego
    Pods are fungible, stateless?
    Pets are Pods with:
    1. Stable hostname
    2. A unique name
    3. Stable storage
    @_askcarter

    View Slide

  44. Pet Sets
    Pods with ego
    @_askcarter

    View Slide

  45. PetSet: example manifest
    @_askcarter

    View Slide

  46. PetSet: headless service
    @_askcarter

    View Slide

  47. Bonus
    @_askcarter

    View Slide

  48. Google
    Container
    Engine
    (GKE)
    Cluster autoscaling (beta)
    IAM support
    Local SSD
    Container-VM Images (beta)
    Node pools
    @_askcarter

    View Slide

  49. minikube
    github.com/kubernetes/minikube
    @_askcarter

    View Slide

  50. Kube UI
    kubernetes.io/docs/user-guide/ui/
    @_askcarter

    View Slide

  51. Thing I learned (making this talk)
    (making this talk)
    @_askcarter

    View Slide

  52. Recap
    @_askcarter

    View Slide

  53. 3 Hurdles The App
    The Infra
    The Wild
    @_askcarter

    View Slide

  54. 3 Claims Planet Scale
    Never Outgrow
    Run Anywhere
    @_askcarter

    View Slide

  55. Kubernetes 1.3 Planet Scale - SLA 2000 nodes
    Never Outgrow - minikube to prod
    Run Anywhere - Cluster Federation
    @_askcarter

    View Slide

  56. Scalable
    Microservice
    with Kubernetes
    @_askcarter

    View Slide

  57. Carter Morgan
    @_askcarter
    Learn more here!
    http://blog.kubernetes.io/2016/07/kubernetes-1.3-bridging-cloud-native-and-enterprise-workloads.html
    @_askcarter

    View Slide