Skip to content

Commit

Permalink
Create pod eviction concept and glossary entries
Browse files Browse the repository at this point in the history
  - Created glossary entries for manual and kubelet eviction
  - Created node-pressure-eviction.md and api-eviction.md
  - Merged content from eviction-policy.md and out-of-resource.md
  - Added note to kube-scheduler about node conditions
  - Deleted eviction-policy and out-of-resource.md
  - Redirected old topics
  - Change topic weights
  • Loading branch information
shannonxtreme committed May 13, 2021
1 parent e751578 commit cc4d451
Show file tree
Hide file tree
Showing 15 changed files with 531 additions and 387 deletions.
26 changes: 26 additions & 0 deletions content/en/docs/concepts/scheduling-eviction/_index.md
Original file line number Diff line number Diff line change
@@ -1,11 +1,37 @@
---
title: "Scheduling, Preemption and Eviction"
weight: 90
content_type: concept
description: >
In Kubernetes, scheduling refers to making sure that Pods are matched to Nodes
so that the kubelet can run them. Preemption is the process of terminating
Pods with lower Priority so that Pods with higher Priority can schedule on
Nodes. Eviction is the process of proactively terminating one or more Pods on
resource-starved Nodes.
no_list: true
---

In Kubernetes, scheduling refers to making sure that {{<glossary_tooltip text="Pods" term_id="pod">}}
are matched to {{<glossary_tooltip text="Nodes" term_id="node">}} so that the
{{<glossary_tooltip text="kubelet" term_id="kubelet">}} can run them. Preemption
is the process of terminating Pods with lower {{<glossary_tooltip text="Priority" term_id="pod-priority">}}
so that Pods with higher Priority can schedule on Nodes. Eviction is the process
of terminating one or more Pods on Nodes.

## Scheduling

* [Kubernetes Scheduler](/docs/concepts/scheduling-eviction/kube-scheduler/)
* [Assigning Pods to Nodes](/docs/concepts/scheduling-eviction/assign-pod-node/)
* [Pod Overhead](/docs/concepts/scheduling-eviction/pod-overhead/)
* [Taints and Tolerations](/docs/concepts/scheduling-eviction/taint-and-toleration/)
* [Scheduling Framework](/docs/concepts/scheduling-eviction/scheduling-framework)
* [Scheduler Performance Tuning](/docs/concepts/scheduling-eviction/scheduler-perf-tuning/)
* [Resource Bin Packing for Extended Resources](/docs/concepts/scheduling-eviction/resource-bin-packing/)

## Pod Disruption

{{<glossary_definition term_id="pod-disruption" length="all">}}

* [Pod Preemption](/docs/concepts/scheduling-eviction/pod-priority-preemption/#preemption)
* [Node-pressure Eviction](/docs/concepts/scheduling-eviction/node-pressure-eviction/)
* [API-initiated Eviction](/docs/concepts/scheduling-eviction/api-eviction/)
19 changes: 19 additions & 0 deletions content/en/docs/concepts/scheduling-eviction/api-eviction.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
---
title: API-initiated Eviction
content_type: concept
weight: 70
---

{{< glossary_definition term_id="api-eviction" length="short" >}} </br>

You can request eviction by directly calling the Eviction API
using a client of the kube-apiserver, like the `kubectl drain` command.
This creates an `Eviction` object, which causes the API server to terminate the Pod.

API-initiated evictions respect your configured [`PodDisruptionBudgets`](/docs/tasks/run-application/configure-pdb/)
and [`terminationGracePeriodSeconds`](/docs/concepts/workloads/pods/pod-lifecycle#pod-termination).

## {{% heading "whatsnext" %}}

* Learn about [Node-pressure Eviction](/docs/concepts/scheduling-eviction/node-pressure-eviction/)
* Learn about [Pod Priority and Preemption](/docs/concepts/scheduling-eviction/pod-priority-preemption/)
24 changes: 0 additions & 24 deletions content/en/docs/concepts/scheduling-eviction/eviction-policy.md

This file was deleted.

Original file line number Diff line number Diff line change
Expand Up @@ -77,11 +77,9 @@ one of these at random.
There are two supported ways to configure the filtering and scoring behavior
of the scheduler:


1. [Scheduling Policies](/docs/reference/scheduling/policies) allow you to configure _Predicates_ for filtering and _Priorities_ for scoring.
1. [Scheduling Profiles](/docs/reference/scheduling/config/#profiles) allow you to configure Plugins that implement different scheduling stages, including: `QueueSort`, `Filter`, `Score`, `Bind`, `Reserve`, `Permit`, and others. You can also configure the kube-scheduler to run different profiles.


## {{% heading "whatsnext" %}}

* Read about [scheduler performance tuning](/docs/concepts/scheduling-eviction/scheduler-perf-tuning/)
Expand Down
Loading

0 comments on commit cc4d451

Please sign in to comment.