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