From e78562830f353be20a8627ce46ffcb80850f86be Mon Sep 17 00:00:00 2001 From: Chad Swenson Date: Tue, 12 Dec 2017 12:06:41 -0600 Subject: [PATCH] Retry kube container removal during upgrade As we have seen with other containers, sometimes container removal fails on the first attempt due to some Docker bugs. Retrying typically corrects the issue. --- roles/kubernetes/master/handlers/main.yml | 12 ++++++++++++ roles/kubernetes/node/tasks/pre_upgrade.yml | 4 ++++ 2 files changed, 16 insertions(+) diff --git a/roles/kubernetes/master/handlers/main.yml b/roles/kubernetes/master/handlers/main.yml index dd3b03264..070250cb0 100644 --- a/roles/kubernetes/master/handlers/main.yml +++ b/roles/kubernetes/master/handlers/main.yml @@ -41,12 +41,24 @@ - name: Master | Remove apiserver container shell: "docker ps -af name=k8s_kube-apiserver* -q | xargs --no-run-if-empty docker rm -f" + register: remove_apiserver_container + retries: 4 + until: remove_apiserver_container.rc == 0 + delay: 5 - name: Master | Remove scheduler container shell: "docker ps -af name=k8s_kube-scheduler* -q | xargs --no-run-if-empty docker rm -f" + register: remove_scheduler_container + retries: 4 + until: remove_scheduler_container.rc == 0 + delay: 5 - name: Master | Remove controller manager container shell: "docker ps -af name=k8s_kube-controller-manager* -q | xargs --no-run-if-empty docker rm -f" + register: remove_cm_container + retries: 4 + until: remove_cm_container.rc == 0 + delay: 5 - name: Master | wait for kube-scheduler uri: diff --git a/roles/kubernetes/node/tasks/pre_upgrade.yml b/roles/kubernetes/node/tasks/pre_upgrade.yml index 8919bf0be..6d24b006b 100644 --- a/roles/kubernetes/node/tasks/pre_upgrade.yml +++ b/roles/kubernetes/node/tasks/pre_upgrade.yml @@ -22,4 +22,8 @@ command: docker rm -fv kubelet failed_when: false changed_when: false + register: remove_kubelet_container + retries: 4 + until: remove_kubelet_container.rc == 0 + delay: 5 when: kubelet_deployment_type == 'host' and kubelet_container_check.rc == 0 \ No newline at end of file