Hi,
I am currently trying to understand how and why pods are scheduled or not 
on the controller with kube-aws 0-9-6 (1.6.2)
After installing a clean stack, querying the kube-system namespace I see 
the following:

<https://lh3.googleusercontent.com/-dYzB0utNfzU/WQsaW-OmGfI/AAAAAAAAABc/CVc6vK4xMXMoPMYAU09NMtGOnVYX0ZX9gCLcB/s1600/Screen%2BShot%2B2017-05-04%2Bat%2B15.10.43.png>
























Now we see that some of the pods are running and some are pending.
The pending pods are pending due to:
*No nodes are available that match all of the following predicates:: 
PodToleratesNodeTaints (1).*

Firstly looking at the node, I see the following:
*Taints: node.alpha.kubernetes.io/role=master:NoSchedule*

Which is fine, the controller node is not schedulable, now, I wanted to see 
why pods are scheduled and why others aren't.
Firstly looking at the kube-apiserver deployment we see:

>   tolerations:
>
>   - effect: NoExecute
>
>     operator: Exists
>
>  Firstly this does not appear in the controller user data, I wonder where 
it comes from, but even if it's there, it makes no sense that this 
toleration satisfies the taint of the *NoSchedule*

Then, If we look at other pods that are in pending state we can see the 
following:

>   tolerations:
>
>   - key: CriticalAddonsOnly
>
>     operator: Exists
>
> This is perfectly clear why they cannot be scheduled and they are in 
pending state. it does not satisfy the taint.

>From this point on, no matter what I do (except satisfying the NoSchedule). 
Nothing changes.

Adding the NoExecute effect to any of the pending nodes do not bring them 
up which is correct because they do not satisfy anything.

I can't find any justification for the api-server, controller-manager, 
proxy and scheduler to be running and not pending (can't see anything 
special in the user-data as well)

Can anyone please explain to me what is going on?

Thanks





Reply via email to