Merge pull request #31777 from dshulyak/evict_pet

Automatic merge from submit-queue

Delete evicted pet

If pet was evicted by kubelet - it will stuck in this state forever.
By analogy to regular pod we need to re-create pet so that it will
be re-scheduled to another node, so in order to re-create pet
and preserve consitent naming we will delete it in petset controller
and create after that.

fixes: https://github.com/kubernetes/kubernetes/issues/31098
This commit is contained in:
Kubernetes Submit Queue
2016-10-04 01:32:02 -07:00
committed by GitHub
2 changed files with 127 additions and 2 deletions

View File

@@ -105,7 +105,13 @@ func (p *petSyncer) Sync(pet *pcb) error {
if err := p.SyncPVCs(pet); err != nil {
return err
}
if exists {
// if pet failed - we need to remove old one because of consistent naming
if exists && realPet.pod.Status.Phase == api.PodFailed {
glog.V(4).Infof("Delete evicted pod %v", realPet.pod.Name)
if err := p.petClient.Delete(realPet); err != nil {
return err
}
} else if exists {
if !p.isHealthy(realPet.pod) {
glog.Infof("PetSet %v waiting on unhealthy pet %v", pet.parent.Name, realPet.pod.Name)
}