File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -169,7 +169,7 @@ function kubernetes_api_address() {
169169}
170170
171171function kubernetes_api_is_healthy() {
172- curl --noproxy " *" --fail --silent --insecure " https://$( kubernetes_api_address) /healthz"
172+ curl --noproxy " *" --fail --silent --insecure " https://$( kubernetes_api_address) /healthz" > /dev/null
173173}
174174
175175function spinner_kubernetes_api_healthy() {
@@ -178,6 +178,15 @@ function spinner_kubernetes_api_healthy() {
178178 fi
179179}
180180
181+ # With AWS NLB kubectl commands may fail to connect to the Kubernetes API immediately after a single
182+ # successful health check
183+ function spinner_kubernetes_api_stable() {
184+ for i in {1..10}; do
185+ sleep 1
186+ spinner_kubernetes_api_healthy
187+ done
188+ }
189+
181190function kubernetes_drain() {
182191 kubectl drain " $1 " \
183192 --delete-local-data \
Original file line number Diff line number Diff line change @@ -66,14 +66,14 @@ function upgrade_kubernetes_local_master_patch() {
6666
6767 kubernetes_drain " $node "
6868
69- spinner_kubernetes_api_healthy
69+ spinner_kubernetes_api_stable
7070 kubeadm upgrade apply " v$k8sVersion " --yes --config /opt/replicated/kubeadm.conf --force
7171 sed -i " s/kubernetesVersion:.*/kubernetesVersion: v${k8sVersion} /" /opt/replicated/kubeadm.conf
7272
7373 kubernetes_install_host_packages " $k8sVersion "
7474 systemctl daemon-reload
7575 systemctl restart kubelet
76- spinner_kubernetes_api_healthy
76+ spinner_kubernetes_api_stable
7777 kubectl uncordon " $node "
7878
7979 spinner_until 120 kubernetes_node_has_version " $node " " $k8sVersion "
178178 printf " ${YELLOW} Drain local node and apply upgrade? ${NC} "
179179 confirmY " "
180180
181- spinner_kubernetes_api_healthy
181+ spinner_kubernetes_api_stable
182182 kubeadm upgrade apply " v$k8sVersion " --yes --config /opt/replicated/kubeadm.conf --force
183183 upgrade_etcd_image_18 " $k8sVersion "
184184 sed -i " s/kubernetesVersion:.*/kubernetesVersion: v${k8sVersion} /" /opt/replicated/kubeadm.conf
187187 systemctl daemon-reload
188188 systemctl restart kubelet
189189
190- spinner_kubernetes_api_healthy
190+ spinner_kubernetes_api_stable
191191 kubectl uncordon " $node "
192192
193193 # force deleting the cache because the api server will use the stale API versions after kubeadm upgrade
Original file line number Diff line number Diff line change 133133 spinner_until 120 cert_has_san " $PRIVATE_ADDRESS :6443" " $LOAD_BALANCER_ADDRESS "
134134 fi
135135
136+ spinner_kubernetes_api_stable
137+
136138 exportKubeconfig
137139 KUBEADM_TOKEN_CA_HASH=$( cat /tmp/kubeadm-init | grep ' discovery-token-ca-cert-hash' | awk ' { print $2 }' | head -1)
138140
173175 fi
174176 fi
175177
176- spinner_kubernetes_api_healthy
177178 labelNodes
178179 kubectl cluster-info
179180
You can’t perform that action at this time.
0 commit comments