pod scheduling cannot work in google VM

105 views
Skip to first unread message

Edward Lee

unread,
Jul 6, 2017, 12:49:36 PM7/6/17
to Kubernetes developer/contributor discussion
I am new to kubernetes community. I am not sure whether here is the right place to get help. please let know if I am in wrong room.
I was trying to start my first tour via setting up a local kubernetes cluster in my google VM, I got an error when creating Pod:

Event(v1.ObjectReference{Kind:"Pod", Namespace:"kube-system", Name:"kube-dns-557755450-86cp9", UID:"0a859c90-622b-11e7-9ae9-42010a8c0002", APIVersion:"v1", ResourceVersion:"172", FieldPath:""}): type: 'Warning' reason: 'FailedScheduling' no nodes available to schedule pods

after looking into detail, I found the reason for the above error is the wrong status of node. the node information as following:

 Conditions:
  Type Status LastHeartbeatTime   LastTransitionTime      Reason Message
  ---- ------ ----------------- ------------------ ------ -------
  NetworkUnavailable  True  Mon, 01 Jan 0001 00:00:00 +0000   Thu, 06 Jul 2017 12:21:30 +0000    NoRouteCreated  Node created without a route
  OutOfDisk  False  Thu, 06 Jul 2017 12:22:01 +0000   Thu, 06 Jul 2017 12:21:30 +0000    KubeletHasSufficientDisk  kubelet has sufficient disk space available
  MemoryPressure  False  Thu, 06 Jul 2017 12:22:01 +0000   Thu, 06 Jul 2017 12:21:30 +0000    KubeletHasSufficientMemory kubelet has sufficient memory available
  DiskPressure  False  Thu, 06 Jul 2017 12:22:01 +0000   Thu, 06 Jul 2017 12:21:30 +0000    KubeletHasNoDiskPressure  kubelet has no disk pressure
  Ready  True  Thu, 06 Jul 2017 12:22:01 +0000   Thu, 06 Jul 2017 12:21:31 +0000    KubeletReady  kubelet is posting ready status. AppArmor enabled

You may noticed that the NetworkUnavailable condition is abnormal, so this node can not be used to bind pod because the scheduler will filter node by its condition (scheduler/factory/factory.go line535). 
lastly, I found Kubelet sets that value when init node(kubelet_node_status.go line 233), the key of setting that condition is gce requires the special network configuration via checking whether provider.Routes() is true in providerRequiresNetworkingConfiguration (line 79) however the ice cloud provider's Routes() (gce.go line347) only return fix value (true). does that mean all the node in google VM cannot be scheduled?

that's all I found, now, I am quite confused how to fix that. anything I missed or is this a bug?
any answers will be appreciated, thanks

Edward Lee

unread,
Jul 11, 2017, 9:52:19 PM7/11/17
to Kubernetes developer/contributor discussion
The above "issue" has been fixed via setting the network plugins. thanks everyone.
Reply all
Reply to author
Forward
This conversation is locked
You cannot reply and perform actions on locked conversations.
0 new messages