Please enable JavaScript.
Coggle requires JavaScript to display documents.
Autoscaling (Goal solution (:check: Node pools (user pool
Is tainted…
Autoscaling
Goal solution
:check: Node pools
user pool
Is tainted causing a NoScedule
effect, but singleuser pods are made to Tolerate it. Singleuser pods are also setup to prefer it using node affinity to node-pool labeling.
- Preemptive 4 CPU instances
- Setup with a cluster autoscaler
core pool
Contains the Hub, Proxy, Autohttps and various kube-system pods like kube-dns. Core pods are also setup to prefer it using node affinity to node-pool labeling.
:check: Placeholder user pods (Beta in k8s 1.11)
Can be used to overschedule singleuser-server pods and create a headroom allow new singleuser server pods to schedule without waiting for a cluster autoscaler scale up.
- Configured with lower PodPriority and will be evicted by scheduler
- A Deployment is used for fixed headroom
-
-
Goal
Reduce cost, increase flexibility and remain easy to setup.
Related tools
-
:check: Taint and Tolerations (gcloud beta)
A node can get a Taint with an Effect of NoSchedule
or NoExecute
, but pods could specify a Toleration to a taint and ignore its effect.
:check: Pod Priority and Preemption (Beta in k8s 1.11)
Priority indicates the importance of a Pod relative to other Pods. When a Pod cannot be scheduled, the scheduler tries to preempt (evict) lower priority Pods to make scheduling of the pending Pod possible.
- Affects the scheduler only
- Must be enabled
- Can be used to create headroom
-
-
Autoscalers
Deemed unsuitable
:frowning_face: Addon resizer
- Modifies resource requests of a deployment based on the number of nodes in the Kubernetes Cluster
:frowning_face: Horizontal Pod Autoscaler
- Automatically scales the number of pods in a replication controller, deployment or replica set based on observed CPU utilization.
-
:check: Cluster Autoscaler
Scales nodes within a pool in a kubernetes aware manner.
- Implemented by the cloud provider