<p dir="auto"><strong>Kubernetes version</strong> (use <code class="notranslate">kubectl version</code>):<br>
Client Version: version.Info{Major:"1", Minor:"4+", GitVersion:"v1.4.0-alpha.2.1807+f80530c7f77e2f", GitCommit:"f80530c7f77e2fd272e6718b7d1754df0869d478", GitTreeState:"clean", BuildDate:"2016-08-29T12:08:57Z", GoVersion:"go1.6.3", Compiler:"gc", Platform:"linux/amd64"}<br>
Server Version: version.Info{Major:"1", Minor:"4+", GitVersion:"v1.4.0-alpha.2.1807+f80530c7f77e2f", GitCommit:"f80530c7f77e2fd272e6718b7d1754df0869d478", GitTreeState:"clean", BuildDate:"2016-08-29T12:03:17Z", GoVersion:"go1.6.3", Compiler:"gc", Platform:"linux/amd64"}</p>
<p dir="auto"><strong>Environment</strong>:<br>
2 kubelet nodes + 1 master, deployed by local vagrant provider</p>
<p dir="auto"><strong>What happened</strong>:<br>
While working on <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="172401381" data-permission-text="Title is private" data-url="https://github.com/kubernetes/kubernetes/issues/31098" data-hovercard-type="issue" data-hovercard-url="/kubernetes/kubernetes/issues/31098/hovercard" href="https://github.com/kubernetes/kubernetes/issues/31098">#31098</a> I added <code class="notranslate">--eviction-hard=memory.available&lt;90%</code> to evict pets from node-1. It did its job and they were evicted, but after that pod was constantly re-scheduled onto same node.</p>
<p dir="auto"><strong>What you expected to happen</strong>:<br>
Expected that eviction-hard will prevent pod from being scheduled onto the same node, as long as evict condition is preserved.</p>
<p dir="auto"><strong>How to reproduce it</strong> (as minimally and precisely as possible):</p>
<ol dir="auto">
<li>Create petset (i was using cockroachdb example)</li>
<li>Add <code class="notranslate">--eviction-hard=memory.available&lt;90%</code> (or another condition which will evict pods from node)</li>
</ol>
<p dir="auto">I didn't try it with regular pods, so you may need to use my patch <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="174252606" data-permission-text="Title is private" data-url="https://github.com/kubernetes/kubernetes/issues/31777" data-hovercard-type="pull_request" data-hovercard-url="/kubernetes/kubernetes/pull/31777/hovercard" href="https://github.com/kubernetes/kubernetes/pull/31777">#31777</a></p>
<p dir="auto"><strong>Description of problem</strong><br>
Create a petset, when pod is evicted, the petset can't create a new pod on other node and make sure pod is running.</p>
<p dir="auto"><strong>Kubernetes version</strong> (use <code class="notranslate">kubectl version</code>):<br>
v1.4.0-alpha.2.1427+5b6e1c37c66098</p>
<p dir="auto"><strong>How to reproduce it</strong> (as minimally and precisely as possible):</p>
<ol dir="auto">
<li>Config kubele eviction-hard="memory.available&lt;${value}"</li>
<li>Create a peset and wait all pod is running</li>
<li>Make node MemoryPressure=true</li>
<li>Check all pod status</li>
</ol>
<p dir="auto"><strong>What happened</strong>:<br>
4. pod is evicted and petset can't create new pod and make sure pod is running.</p>
<div class="snippet-clipboard-content notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content="[root@dhcp-140-39 ~]# kubectl get pod --show-all
NAME             READY     STATUS    RESTARTS   AGE
hello-petset-0   0/1       Evicted   0          32m
hello-petset-1   0/1       Evicted   0          24m
[root@dhcp-140-39 ~]# kubectl get petset
NAME           DESIRED   CURRENT   AGE
hello-petset   2         2         32m"><pre class="notranslate"><code class="notranslate">[root@dhcp-140-39 ~]# kubectl get pod --show-all
NAME             READY     STATUS    RESTARTS   AGE
hello-petset-0   0/1       Evicted   0          32m
hello-petset-1   0/1       Evicted   0          24m
[root@dhcp-140-39 ~]# kubectl get petset
NAME           DESIRED   CURRENT   AGE
hello-petset   2         2         32m
</code></pre></div>
<p dir="auto"><strong>What you expected to happen</strong>:<br>
4. Petset create new pod on other node and make sure pod is running.</p>