Scheduling containers with Kubernetes - Part 2

Are you going?

120 people going

Location image of event venue


Scheduling containers with Kubernetes

The Kubernetes scheduler is a policy-rich, topology-aware, workload-specific function that significantly impacts availability, performance, and capacity. In this series, we will introduce the audience to such buzzwords as taints and tolerations, collective and QoS requirements, (anti)affinities, policy constraints, data locality and more. Once we have a good enough understanding of these, we will deep-dive into scheduler internals and discuss predicates, priority rules/weights through a demo. Finally (as by then we’ll already know the scheduler inside out), we deep dive into writing custom schedulers.

Part 1 - November 22, 2018

1. Taints and tolerations - Sebastian Toader, Banzai Cloud

Pods may require nodes with special hardware, isolation, or colocation with other pods running in the system. Kubernetes allows users to mark a node (called tainting) so that no pods can be scheduled on it unless a pod explicitly tolerates the taint. This feature allows creating nodes that are reserved (dedicated) for specific pods. This talk will provide an introduction into taints and tolerations and will include a demo.

Break - Pizza, beer, etc courtesy of Prezi

2. Controlling the scheduler with affinities - Marton Sereg, Banzai Cloud

In some cases, you may want to have some constraints over where your pods will land after they are scheduled. Kubernetes allows pods to be scheduled to specific nodes using node selectors (which are being deprecated) and different types of affinities. Through the use of labels, node affinity allows you to constrain which nodes your pod is eligible to be scheduled on. Inter-pod affinity controls which pods may be co-scheduled on nodes that are already running pods. This talk will give an introduction into these concepts and deep dive into such easy-to-understand terms as “requiredDuringSchedulingIgnoredDuringExecution” and “preferredDuringSchedulingIgnoredDuringExecution”. There will be a demo at the end of the presentation.

Part 2 - December 18, 2018

1. Where will my pod land? - Peter Ableda, Cloudera

kube-scheduler is one of the K8s Master processes responsible for assigning Pods to Nodes. This talk walks you through how the Kubernetes scheduler works, what kind of scheduling algorithms are available and how to configure them. We will take a look at how the Cloudera Data Science Workbench configures the scheduler and check it’s behavior on a live cluster.

Break - Pizza, beer, etc courtesy of Prezi

2. Custom schedulers on the spot - Marton Sereg, Banzai Cloud

At Banzai Cloud we are building an enterprise-grade managed Kubernetes Platform and K8s distribution. Our customers attach different SLA policies to their Kubernetes clusters (time, cost, etc.) and these imply a highly configurable but SLA-aware custom K8s scheduler. This talk will highlight best practices and deep dive into the internals such as scheduler caches, topologies, informers, etc - through one of the most popular schedulers in the Pipeline ecosystem: the AWS spot-instance-aware scheduler.