Merge pull request #3152 from knight42/fix/exclude-virtual-kubelet
Exclude the virtual node from nodes not created by auto scaling group
This commit is contained in:
commit
736c624181
|
|
@ -188,12 +188,21 @@ func GetNodeInfoFromTemplate(nodeGroup cloudprovider.NodeGroup, daemonsets []*ap
|
||||||
return sanitizedNodeInfo, nil
|
return sanitizedNodeInfo, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// isVirtualNode determines if the node is created by virtual kubelet
|
||||||
|
func isVirtualNode(node *apiv1.Node) bool {
|
||||||
|
return node.ObjectMeta.Labels["type"] == "virtual-kubelet"
|
||||||
|
}
|
||||||
|
|
||||||
// FilterOutNodesFromNotAutoscaledGroups return subset of input nodes for which cloud provider does not
|
// FilterOutNodesFromNotAutoscaledGroups return subset of input nodes for which cloud provider does not
|
||||||
// return autoscaled node group.
|
// return autoscaled node group.
|
||||||
func FilterOutNodesFromNotAutoscaledGroups(nodes []*apiv1.Node, cloudProvider cloudprovider.CloudProvider) ([]*apiv1.Node, errors.AutoscalerError) {
|
func FilterOutNodesFromNotAutoscaledGroups(nodes []*apiv1.Node, cloudProvider cloudprovider.CloudProvider) ([]*apiv1.Node, errors.AutoscalerError) {
|
||||||
result := make([]*apiv1.Node, 0)
|
result := make([]*apiv1.Node, 0)
|
||||||
|
|
||||||
for _, node := range nodes {
|
for _, node := range nodes {
|
||||||
|
// Exclude the virtual node here since it may have lots of resource and exceed the total resource limit
|
||||||
|
if isVirtualNode(node) {
|
||||||
|
continue
|
||||||
|
}
|
||||||
nodeGroup, err := cloudProvider.NodeGroupForNode(node)
|
nodeGroup, err := cloudProvider.NodeGroupForNode(node)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return []*apiv1.Node{}, errors.ToAutoscalerError(errors.CloudProviderError, err)
|
return []*apiv1.Node{}, errors.ToAutoscalerError(errors.CloudProviderError, err)
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue