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

Need for scale, the Serverless way

Need for scale, the Serverless way

Take advantage of both the capabilities of Azure Kubernetes Service and the management value and cost benefit of Azure Container Instances. Use Virtual Nodes to keep up with application demands and scale workloads instantly without the need to add more nodes to the cluster.

Ahmed Nada

April 27, 2019

Other Decks in Technology


  1. Need for scale, the serverless way Ahmed Nada Lead Consultant

    @readify a_nada
  2. Hi, I’m Ahmed… aka Nada history.com mygc.com.au a_nada anadaz ahnada

  3. Takeaways 1. Serverless option to scale Kubernetes and how it

    works. 2. Readiness for production @a_nada
  4. Kubernetes Master Node Worker Node Worker Node

  5. Azure Kubernetes Service (AKS) Master Node Worker Node Worker Node

    Azure Customer
  6. ACI • Fast provisioning of containers. • Only pay per

    second for execution time. • No need to provision virtual machines. @a_nada
  7. None
  8. Why don’t we have both!

  9. Enter Virtual Nodes

  10. How to enable Virtual Nodes?

  11. None
  12. az aks enable-addons --resource-group rg-azbc --name aks-azbc --addons virtual-node --subnet-name

  13. Virtual Nodes Node A Virtual Node AKS Kubelet Proxy P

    P P ACI P P kubectl
  14. Demo 1

  15. Virtual Kubelet @a_nada • Open source project started by Microsoft.

    • Donated to CNCF • Cloud providers support virtual-kubelet.io
  16. Kubelet Is the primary “node agent” that runs on each

    node to manage pods.
  17. Kubelet Node A Node B Master Node Kubelet Proxy P

    P P Kubelet Proxy P P scheduler api-server controller kubectl
  18. Virtual Kubelet Node A Virtual Node AKS Kubelet Proxy P

    P P ACI P P kubectl
  19. github.com/virtual-kubelet/

  20. Provider interface

  21. Providers • Alibaba Cloud Elastic Container Instance (ECI) • AWS

    Fargate • Azure Batch • Azure Container Instances (ACI) • Kubernetes Container Runtime Interface (CRI) • Huawei Cloud Container Instance (CCI) • HashiCorp Nomad • OpenStack Zun • vSphere Integrated Containers (VIC) @a_nada
  22. Assign Pods to Node • nodeSelector • Affinity and anti-affinity

    • Taints and Tolerations @a_nada
  23. kubectl taint nodes node1 os=linux:NoSchedule tolerations: - key: "os" operator:

    "Equal" value: "linux" effect: "NoSchedule" tolerations: - key: “virtual-kubelet" operator: “Exists" effect: "NoSchedule"
  24. Demo 2

  25. Windows-based containers • By joining Windows nodes to a Linux-based

    cluster, release of Kubernetes 1.14 • Using Virtual Kubelet @a_nada
  26. Demo 3

  27. Is it ready for production?

  28. Still a preview feature

  29. Limitations • Liveness and readiness probes • VNet peering •

    Init containers • Host aliases support • DaemonSets will not deploy pods to the virtual node @a_nada
  30. Summary 1. Serverless option to scale Kubernetes. 2. Virtual Kubelet

    3. Windows containers with AKS @a_nada
  31. Resources @a_nada • aka.ms/VirtualNode • github.com/virtual-kubelet • virtual-kubelet.io • Community

    #virtual-kubelet at slack.k8s.io • aka.ms/learnkubernetes
  32. a_nada Thank You anadaz ahnada