Automatic merge from submit-queue. If you want to cherry-pick this change to another branch, please follow the instructions <a href="https://github.com/kubernetes/community/blob/master/contributors/devel/cherry-picks.md">here</a>. Revert "add node shutdown taint" Reverts kubernetes/kubernetes#59323 Node becomes unready, but is never removed. I've found the following in [kube-controller-manager.log](https://storage.googleapis.com/kubernetes-jenkins/logs/ci-kubernetes-e2e-gci-gce-autoscaling/6055/artifacts/bootstrap-e2e-master/cluster-autoscaler.log) from test run for one such node: `E0216 01:14:27.084923 1 node_lifecycle_controller.go:686] Error determining if node bootstrap-e2e-minion-group-01b1 shutdown in cloud: failed to get instance ID from cloud provider: instance not found` This goes on for the rest of the run (~6h). Looks like the node is stuck in Unready state because of this check: https://github.com/kubernetes/kubernetes/blob/master/pkg/controller/nodelifecycle/node_lifecycle_controller.go#L684. Previously, there was no such check and the node was removed. Reverting as this would affect all users attempting to resize their node groups on GCE. ```release-note NONE ```
65 lines
2.8 KiB
Go
65 lines
2.8 KiB
Go
/*
|
|
Copyright 2015 The Kubernetes Authors.
|
|
|
|
Licensed under the Apache License, Version 2.0 (the "License");
|
|
you may not use this file except in compliance with the License.
|
|
You may obtain a copy of the License at
|
|
|
|
http://www.apache.org/licenses/LICENSE-2.0
|
|
|
|
Unless required by applicable law or agreed to in writing, software
|
|
distributed under the License is distributed on an "AS IS" BASIS,
|
|
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
See the License for the specific language governing permissions and
|
|
limitations under the License.
|
|
*/
|
|
|
|
package algorithm
|
|
|
|
const (
|
|
// TaintNodeNotReady will be added when node is not ready
|
|
// and feature-gate for TaintBasedEvictions flag is enabled,
|
|
// and removed when node becomes ready.
|
|
TaintNodeNotReady = "node.kubernetes.io/not-ready"
|
|
|
|
// DeprecatedTaintNodeNotReady is the deprecated version of TaintNodeNotReady.
|
|
// It is deprecated since 1.9
|
|
DeprecatedTaintNodeNotReady = "node.alpha.kubernetes.io/notReady"
|
|
|
|
// TaintNodeUnreachable will be added when node becomes unreachable
|
|
// (corresponding to NodeReady status ConditionUnknown)
|
|
// and feature-gate for TaintBasedEvictions flag is enabled,
|
|
// and removed when node becomes reachable (NodeReady status ConditionTrue).
|
|
TaintNodeUnreachable = "node.kubernetes.io/unreachable"
|
|
|
|
// DeprecatedTaintNodeUnreachable is the deprecated version of TaintNodeUnreachable.
|
|
// It is deprecated since 1.9
|
|
DeprecatedTaintNodeUnreachable = "node.alpha.kubernetes.io/unreachable"
|
|
|
|
// TaintNodeOutOfDisk will be added when node becomes out of disk
|
|
// and feature-gate for TaintNodesByCondition flag is enabled,
|
|
// and removed when node has enough disk.
|
|
TaintNodeOutOfDisk = "node.kubernetes.io/out-of-disk"
|
|
|
|
// TaintNodeMemoryPressure will be added when node has memory pressure
|
|
// and feature-gate for TaintNodesByCondition flag is enabled,
|
|
// and removed when node has enough memory.
|
|
TaintNodeMemoryPressure = "node.kubernetes.io/memory-pressure"
|
|
|
|
// TaintNodeDiskPressure will be added when node has disk pressure
|
|
// and feature-gate for TaintNodesByCondition flag is enabled,
|
|
// and removed when node has enough disk.
|
|
TaintNodeDiskPressure = "node.kubernetes.io/disk-pressure"
|
|
|
|
// TaintNodeNetworkUnavailable will be added when node's network is unavailable
|
|
// and feature-gate for TaintNodesByCondition flag is enabled,
|
|
// and removed when network becomes ready.
|
|
TaintNodeNetworkUnavailable = "node.kubernetes.io/network-unavailable"
|
|
|
|
// TaintExternalCloudProvider sets this taint on a node to mark it as unusable,
|
|
// when kubelet is started with the "external" cloud provider, until a controller
|
|
// from the cloud-controller-manager intitializes this node, and then removes
|
|
// the taint
|
|
TaintExternalCloudProvider = "node.cloudprovider.kubernetes.io/uninitialized"
|
|
)
|