Slide 1

Slide 1 text

Need for scale, the serverless way Ahmed Nada Lead Consultant @readify a_nada

Slide 2

Slide 2 text

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

Slide 3

Slide 3 text

Takeaways 1. Serverless option to scale Kubernetes and how it works. 2. Readiness for production @a_nada

Slide 4

Slide 4 text

Kubernetes Master Node Worker Node Worker Node

Slide 5

Slide 5 text

Azure Kubernetes Service (AKS) Master Node Worker Node Worker Node Azure Customer

Slide 6

Slide 6 text

ACI • Fast provisioning of containers. • Only pay per second for execution time. • No need to provision virtual machines. @a_nada

Slide 7

Slide 7 text

No content

Slide 8

Slide 8 text

Why don’t we have both!

Slide 9

Slide 9 text

Enter Virtual Nodes

Slide 10

Slide 10 text

How to enable Virtual Nodes?

Slide 11

Slide 11 text

No content

Slide 12

Slide 12 text

az aks enable-addons --resource-group rg-azbc --name aks-azbc --addons virtual-node --subnet-name sbnt-virtual-node

Slide 13

Slide 13 text

Virtual Nodes Node A Virtual Node AKS Kubelet Proxy P P P ACI P P kubectl

Slide 14

Slide 14 text

Demo 1

Slide 15

Slide 15 text

Virtual Kubelet @a_nada • Open source project started by Microsoft. • Donated to CNCF • Cloud providers support virtual-kubelet.io

Slide 16

Slide 16 text

Kubelet Is the primary “node agent” that runs on each node to manage pods.

Slide 17

Slide 17 text

Kubelet Node A Node B Master Node Kubelet Proxy P P P Kubelet Proxy P P scheduler api-server controller kubectl

Slide 18

Slide 18 text

Virtual Kubelet Node A Virtual Node AKS Kubelet Proxy P P P ACI P P kubectl

Slide 19

Slide 19 text

github.com/virtual-kubelet/

Slide 20

Slide 20 text

Provider interface

Slide 21

Slide 21 text

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

Slide 22

Slide 22 text

Assign Pods to Node • nodeSelector • Affinity and anti-affinity • Taints and Tolerations @a_nada

Slide 23

Slide 23 text

kubectl taint nodes node1 os=linux:NoSchedule tolerations: - key: "os" operator: "Equal" value: "linux" effect: "NoSchedule" tolerations: - key: “virtual-kubelet" operator: “Exists" effect: "NoSchedule"

Slide 24

Slide 24 text

Demo 2

Slide 25

Slide 25 text

Windows-based containers • By joining Windows nodes to a Linux-based cluster, release of Kubernetes 1.14 • Using Virtual Kubelet @a_nada

Slide 26

Slide 26 text

Demo 3

Slide 27

Slide 27 text

Is it ready for production?

Slide 28

Slide 28 text

Still a preview feature

Slide 29

Slide 29 text

Limitations • Liveness and readiness probes • VNet peering • Init containers • Host aliases support • DaemonSets will not deploy pods to the virtual node @a_nada

Slide 30

Slide 30 text

Summary 1. Serverless option to scale Kubernetes. 2. Virtual Kubelet 3. Windows containers with AKS @a_nada

Slide 31

Slide 31 text

Resources @a_nada • aka.ms/VirtualNode • github.com/virtual-kubelet • virtual-kubelet.io • Community #virtual-kubelet at slack.k8s.io • aka.ms/learnkubernetes

Slide 32

Slide 32 text

a_nada Thank You anadaz ahnada