From 2defcec2749cd40b7337cf574c309f4cdf78ede6 Mon Sep 17 00:00:00 2001 From: Wei Huang Date: Wed, 18 Jul 2018 11:31:31 -0700 Subject: [PATCH] fix a mis-placed section in schedule-DS-pod-by-scheduler.md --- .../schedule-DS-pod-by-scheduler.md | 21 +++++++++---------- 1 file changed, 10 insertions(+), 11 deletions(-) diff --git a/contributors/design-proposals/scheduling/schedule-DS-pod-by-scheduler.md b/contributors/design-proposals/scheduling/schedule-DS-pod-by-scheduler.md index c0c7dffa1..c7038eacb 100644 --- a/contributors/design-proposals/scheduling/schedule-DS-pod-by-scheduler.md +++ b/contributors/design-proposals/scheduling/schedule-DS-pod-by-scheduler.md @@ -45,22 +45,21 @@ This option is to leverage NodeAffinity feature to avoid introducing scheduler 1. DS controller filter nodes by nodeSelector, but does NOT check against scheduler’s predicates (e.g. PodFitHostResources) 2. For each node, DS controller creates a Pod for it with the following NodeAffinity + ```yaml + nodeAffinity: + requiredDuringSchedulingIgnoredDuringExecution: + - nodeSelectorTerms: + matchExpressions: + - key: kubernetes.io/hostname + operator: in + values: + - dest_hostname + ``` 3. When sync Pods, DS controller will map nodes and pods by this NodeAffinity to check whether Pods are started for nodes 4. In scheduler, DaemonSet Pods will stay pending if scheduling predicates fail. To avoid this, an appropriate priority must be set to all critical DaemonSet Pods. Scheduler will preempt other pods to ensure critical pods were scheduled even when the cluster is under resource pressure. -```yaml -nodeAffinity: - requiredDuringSchedulingIgnoredDuringExecution: - - nodeSelectorTerms: - matchExpressions: - - key: kubernetes.io/hostname - operator: in - values: - - dest_hostname -``` - ## Reference * [DaemonsetController can't feel it when node has more resources, e.g. other Pod exits](https://github.com/kubernetes/kubernetes/issues/46935)