Dynamic Kubernetes
image/svg+xml
Dynamic Kubernetes
Process
Any processing function.
Display
Information display by online indicators, video devices, printers, etc.
Off-Page Connector
Exit to or entry from a page. (IBM)
Predefined Process
A formally defined sub-process.
#ContainerWorld
@ContainerWrld
https://tmt.knect365.com/container-world/
#ContainerWorld
@ContainerWrld
https://tmt.knect365.com/container-world/
Thank You!
Carson Anderson, Domo
@carsonoid
@carson_ops
Cluster Capacity In K8s
Infrastructure As Code
Easy Provisioning
Easy Node Diversity
Nodes
NodeFleet
NodeFleet
CPAR
PAR
NAG
DEPLOY
SVC
Pod
CPAR
CPAR
CPAR
NAG
CPAR
CPAR
CPAR
CPAR
PAR
PAR
PAR
PAR
TargetLabels
Assignments
default-allocation
Nodes
name: services
allocation:
desired: 2
NAG-Assign
services
NAG-Assign
services
name: sensitive
allocation:
desired: 2
NAG-Assign
sensitive
NAG-Assign
sensitive
nodetype
variable
workload
service
REQUIRE
IN
"nodetype-service"
["true"]
workload
queue-job
REQUIRE
IN
"nodetype-queue"
["true"]
workload
etl-job
REQUIRE
IN
"nodetype-etl"
["true"]
workload
service
workload
queue-job
workload
etl-job
TargetLabels
Affinity
Tolerations
NodeSelector
etl-job-scheduling
jobs
NodeAssignmentGroup
PodAssignmentRule
ClusterPodAssignmentRule
Custom Resources
workload
etl-job
"IsBurstNode"
"true"
IN
"nodetype-etl"
"true"
PREFER
IN
"burstnode"
["true"]
Nodes
Masters
kube-director
Announcement Soon!
@carson_ops
workload
service
workload
queue-job
workload
etl-job
workload
import
workload
database
workload
export
workload
import
REQUIRE
IN
"nodetype-import"
["true"]
workload
database
REQUIRE
IN
"nodetype-ssd"
["true"]
workload
export
REQUIRE
IN
"nodetype-export"
["true"]
workload
etl-job
IN
"nodetype"
["etl"]
workload
etl-job
PREFER
IN
"nodetype"
["etl"]
REQUIRE
workload
etl-job
workload
etl-job
REQUIRE
IN
"nodetype-etl"
["true"]
REQUIRE
nodetype-etl
true
nodetype
etl
"nodetype"
IN
["etl"]
Nodes
nodetype
etl
nodetype-etl
true
nodetype-queue
true
nodetype-service
true
nodetype
queue
nodetype
service
Pending
workload
service
REQUIRE
IN
"nodetype-service"
["true"]
workload
queue-job
REQUIRE
IN
"nodetype-queue"
["true"]
workload
etl-job
REQUIRE
IN
"nodetype-etl"
["true"]
Nodes
nodetype
service
nodetype
service
nodetype
etl
nodetype
queue
Pending
Pending
REQUIRE
IN
"nodetype"
["etl"]
workload
service
REQUIRE
IN
"nodetype"
["service"]
workload
queue-job
REQUIRE
IN
"nodetype"
["queue"]
workload
etl-job
REQUIRE
IN
"nodetype"
["etl"]
workload
service
workload
queue-job
workload
etl-job
REQUIRE
IN
"nodetype"
["service"]
REQUIRE
IN
"nodetype"
["queue"]
REQUIRE
IN
"nodetype"
["etl"]
Nodes
nodetype
general
nodetype
general
nodetype
general
nodetype
general
Pending
workload
queue-job
workload
service
workload
etl-job
Masters
Nodes
Pending
nodetype
general
nodetype
general
nodetype
general
nodetype
general
workload
queue-job
workload
service
workload
etl-job
Label
LabelKey
LabelVal
workload
ETL
creator
user1
1
2
3
4
5
6
7
8
instance-type
m3.2xlarge
us-east-2
ssd
zone
disk
Pod
-Container
Pod
-Container
-Container
Pod
-Container
-Volume
Pod
-Container
-Volume
Cluster Users
Shouldn't Have
To Care About
Scheduling Details
The Scale Problem
The Dev Problem
Affinity!
Scheduling
In Action
Terms
Kubernetes
Workload Scheduling
At Scale Is Hard
QoS And Burstability
Dynamic Kubernetes at Domo
Carson Anderson
@carsonoid
What's Next?
How It Works
@carson_ops
1
Intro
Affinity
The Dev Problem
kube-director
PAR/CPAR
NAG
Next
End