mirror of https://github.com/k3s-io/k3s
Merge pull request #70111 from Pingan2017/OOD-node
remove OutOfDisk condition in kubeletpull/58/head
commit
628e44647f
|
@ -502,7 +502,6 @@ func (kl *Kubelet) defaultNodeStatusFuncs() []func(*v1.Node) error {
|
||||||
setters = append(setters, nodestatus.VolumeLimits(kl.volumePluginMgr.ListVolumePluginWithLimits))
|
setters = append(setters, nodestatus.VolumeLimits(kl.volumePluginMgr.ListVolumePluginWithLimits))
|
||||||
}
|
}
|
||||||
setters = append(setters,
|
setters = append(setters,
|
||||||
nodestatus.OutOfDiskCondition(kl.clock.Now, kl.recordNodeStatusEvent),
|
|
||||||
nodestatus.MemoryPressureCondition(kl.clock.Now, kl.evictionManager.IsUnderMemoryPressure, kl.recordNodeStatusEvent),
|
nodestatus.MemoryPressureCondition(kl.clock.Now, kl.evictionManager.IsUnderMemoryPressure, kl.recordNodeStatusEvent),
|
||||||
nodestatus.DiskPressureCondition(kl.clock.Now, kl.evictionManager.IsUnderDiskPressure, kl.recordNodeStatusEvent),
|
nodestatus.DiskPressureCondition(kl.clock.Now, kl.evictionManager.IsUnderDiskPressure, kl.recordNodeStatusEvent),
|
||||||
nodestatus.PIDPressureCondition(kl.clock.Now, kl.evictionManager.IsUnderPIDPressure, kl.recordNodeStatusEvent),
|
nodestatus.PIDPressureCondition(kl.clock.Now, kl.evictionManager.IsUnderPIDPressure, kl.recordNodeStatusEvent),
|
||||||
|
|
|
@ -233,14 +233,6 @@ func TestUpdateNewNodeStatus(t *testing.T) {
|
||||||
Spec: v1.NodeSpec{},
|
Spec: v1.NodeSpec{},
|
||||||
Status: v1.NodeStatus{
|
Status: v1.NodeStatus{
|
||||||
Conditions: []v1.NodeCondition{
|
Conditions: []v1.NodeCondition{
|
||||||
{
|
|
||||||
Type: v1.NodeOutOfDisk,
|
|
||||||
Status: v1.ConditionFalse,
|
|
||||||
Reason: "KubeletHasSufficientDisk",
|
|
||||||
Message: fmt.Sprintf("kubelet has sufficient disk space available"),
|
|
||||||
LastHeartbeatTime: metav1.Time{},
|
|
||||||
LastTransitionTime: metav1.Time{},
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
Type: v1.NodeMemoryPressure,
|
Type: v1.NodeMemoryPressure,
|
||||||
Status: v1.ConditionFalse,
|
Status: v1.ConditionFalse,
|
||||||
|
@ -359,14 +351,6 @@ func TestUpdateExistingNodeStatus(t *testing.T) {
|
||||||
Spec: v1.NodeSpec{},
|
Spec: v1.NodeSpec{},
|
||||||
Status: v1.NodeStatus{
|
Status: v1.NodeStatus{
|
||||||
Conditions: []v1.NodeCondition{
|
Conditions: []v1.NodeCondition{
|
||||||
{
|
|
||||||
Type: v1.NodeOutOfDisk,
|
|
||||||
Status: v1.ConditionFalse,
|
|
||||||
Reason: "KubeletHasSufficientDisk",
|
|
||||||
Message: fmt.Sprintf("kubelet has sufficient disk space available"),
|
|
||||||
LastHeartbeatTime: metav1.Date(2012, 1, 1, 0, 0, 0, 0, time.UTC),
|
|
||||||
LastTransitionTime: metav1.Date(2012, 1, 1, 0, 0, 0, 0, time.UTC),
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
Type: v1.NodeMemoryPressure,
|
Type: v1.NodeMemoryPressure,
|
||||||
Status: v1.ConditionFalse,
|
Status: v1.ConditionFalse,
|
||||||
|
@ -427,14 +411,6 @@ func TestUpdateExistingNodeStatus(t *testing.T) {
|
||||||
Spec: v1.NodeSpec{},
|
Spec: v1.NodeSpec{},
|
||||||
Status: v1.NodeStatus{
|
Status: v1.NodeStatus{
|
||||||
Conditions: []v1.NodeCondition{
|
Conditions: []v1.NodeCondition{
|
||||||
{
|
|
||||||
Type: v1.NodeOutOfDisk,
|
|
||||||
Status: v1.ConditionFalse,
|
|
||||||
Reason: "KubeletHasSufficientDisk",
|
|
||||||
Message: fmt.Sprintf("kubelet has sufficient disk space available"),
|
|
||||||
LastHeartbeatTime: metav1.Time{},
|
|
||||||
LastTransitionTime: metav1.Time{},
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
Type: v1.NodeMemoryPressure,
|
Type: v1.NodeMemoryPressure,
|
||||||
Status: v1.ConditionFalse,
|
Status: v1.ConditionFalse,
|
||||||
|
@ -640,14 +616,6 @@ func TestUpdateNodeStatusWithRuntimeStateError(t *testing.T) {
|
||||||
Spec: v1.NodeSpec{},
|
Spec: v1.NodeSpec{},
|
||||||
Status: v1.NodeStatus{
|
Status: v1.NodeStatus{
|
||||||
Conditions: []v1.NodeCondition{
|
Conditions: []v1.NodeCondition{
|
||||||
{
|
|
||||||
Type: v1.NodeOutOfDisk,
|
|
||||||
Status: v1.ConditionFalse,
|
|
||||||
Reason: "KubeletHasSufficientDisk",
|
|
||||||
Message: fmt.Sprintf("kubelet has sufficient disk space available"),
|
|
||||||
LastHeartbeatTime: metav1.Time{},
|
|
||||||
LastTransitionTime: metav1.Time{},
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
Type: v1.NodeMemoryPressure,
|
Type: v1.NodeMemoryPressure,
|
||||||
Status: v1.ConditionFalse,
|
Status: v1.ConditionFalse,
|
||||||
|
|
|
@ -705,45 +705,6 @@ func DiskPressureCondition(nowFunc func() time.Time, // typically Kubelet.clock.
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// OutOfDiskCondition returns a Setter that updates the v1.NodeOutOfDisk condition on the node.
|
|
||||||
// TODO(#65658): remove this condition
|
|
||||||
func OutOfDiskCondition(nowFunc func() time.Time, // typically Kubelet.clock.Now
|
|
||||||
recordEventFunc func(eventType, event string), // typically Kubelet.recordNodeStatusEvent
|
|
||||||
) Setter {
|
|
||||||
return func(node *v1.Node) error {
|
|
||||||
currentTime := metav1.NewTime(nowFunc())
|
|
||||||
var nodeOODCondition *v1.NodeCondition
|
|
||||||
|
|
||||||
// Check if NodeOutOfDisk condition already exists and if it does, just pick it up for update.
|
|
||||||
for i := range node.Status.Conditions {
|
|
||||||
if node.Status.Conditions[i].Type == v1.NodeOutOfDisk {
|
|
||||||
nodeOODCondition = &node.Status.Conditions[i]
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
newOODCondition := nodeOODCondition == nil
|
|
||||||
if newOODCondition {
|
|
||||||
nodeOODCondition = &v1.NodeCondition{}
|
|
||||||
}
|
|
||||||
if nodeOODCondition.Status != v1.ConditionFalse {
|
|
||||||
nodeOODCondition.Type = v1.NodeOutOfDisk
|
|
||||||
nodeOODCondition.Status = v1.ConditionFalse
|
|
||||||
nodeOODCondition.Reason = "KubeletHasSufficientDisk"
|
|
||||||
nodeOODCondition.Message = "kubelet has sufficient disk space available"
|
|
||||||
nodeOODCondition.LastTransitionTime = currentTime
|
|
||||||
recordEventFunc(v1.EventTypeNormal, "NodeHasSufficientDisk")
|
|
||||||
}
|
|
||||||
|
|
||||||
// Update the heartbeat time irrespective of all the conditions.
|
|
||||||
nodeOODCondition.LastHeartbeatTime = currentTime
|
|
||||||
|
|
||||||
if newOODCondition {
|
|
||||||
node.Status.Conditions = append(node.Status.Conditions, *nodeOODCondition)
|
|
||||||
}
|
|
||||||
return nil
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// VolumesInUse returns a Setter that updates the volumes in use on the node.
|
// VolumesInUse returns a Setter that updates the volumes in use on the node.
|
||||||
func VolumesInUse(syncedFunc func() bool, // typically Kubelet.volumeManager.ReconcilerStatesHasBeenSynced
|
func VolumesInUse(syncedFunc func() bool, // typically Kubelet.volumeManager.ReconcilerStatesHasBeenSynced
|
||||||
volumesInUseFunc func() []v1.UniqueVolumeName, // typically Kubelet.volumeManager.GetVolumesInUse
|
volumesInUseFunc func() []v1.UniqueVolumeName, // typically Kubelet.volumeManager.GetVolumesInUse
|
||||||
|
|
Loading…
Reference in New Issue