<p>I'm quite confused here on this <code>kubeadm upgrade</code>.</p>

<p>As you can see from my screenclips below, my <em>serverVersion</em> is stuck at v1.17.2 when displaying <code>kubectl version -o json</code> from my Mac.  </p>

<p>When I'm on my MASTER node, I issued the <code>kubeadm upgrade plan</code> and the system displays the <code>kubeadm upgrade apply v1.18.0</code> to upgrade.</p>

<p>But, after the upgrade, my CURRENT version is still showing v1.17.2.</p>

<p>You can see from the 3rd screenclip with <code>kubectl get nodes -o wide</code> that the nodes are all showing v1.18.0.  </p>

<p>But, <code>kubectl version -o json</code>, still shows the serverVersion at v1.17.2.</p>

<p>Also, my k9s continues to show my <strong>K8s Rev: v1.17.2</strong></p>

<p>Adding to the question.</p>

<p>Why on the MASTER node, when entering kubectl version would the Client &amp; Server versions be DIFFERENT?  Which is shown in the 2nd to last screen clip below.</p>

<p>Isn't the kubectl on the MASTER node both the CLIENT &amp; SERVER? I mean if I am ssh'd into the MASTER node, and I use kubectl, am I not issuing a CLIENT request ON the SERVER itself? So, how can the CLIENT &amp; SERVER versions be different?</p>

<p>Can someone tell me what I am doing wrong?</p>

<p>Thanks in advance.
<a href="https://imagizer.imageshack.com/img921/5941/vqLTE0.jpg" rel="nofollow noreferrer"><img src="https://imagizer.imageshack.com/img921/5941/vqLTE0.jpg" alt="sc1"></a>
<a href="https://imagizer.imageshack.com/img924/9821/ZleAYo.jpg" rel="nofollow noreferrer"><img src="https://imagizer.imageshack.com/img924/9821/ZleAYo.jpg" alt="sc2"></a>
<a href="https://imagizer.imageshack.com/img924/8442/CoIEUw.jpg" rel="nofollow noreferrer"><img src="https://imagizer.imageshack.com/img924/8442/CoIEUw.jpg" alt="sc3"></a>
<a href="https://i.stack.imgur.com/EiYLn.png" rel="nofollow noreferrer"><img src="https://i.stack.imgur.com/EiYLn.png" alt="sc4"></a>
<a href="https://i.stack.imgur.com/CUTSS.jpg" rel="nofollow noreferrer"><img src="https://i.stack.imgur.com/CUTSS.jpg" alt="sc5"></a>
<a href="https://i.stack.imgur.com/oiARl.jpg" rel="nofollow noreferrer"><img src="https://i.stack.imgur.com/oiARl.jpg" alt="sc6"></a></p>

<p>My comment:</p>

<blockquote>
  <p>Please check manifest folder /etc/kubernetes/manifest for any backup files foe API server. (e.g. kube-apiserver.yaml.xxxx). Move these files somewhere else and restart kubelet.</p>
</blockquote>

<p>was inspired by pretty good discussion on that issue at <a href="https://github.com/kubernetes/kubeadm/issues/1617" rel="nofollow noreferrer">"Kubernetes/issues"</a> section on Github. </p>

<blockquote>
  <p>Since kubelet uses every file in this folder one of the older ones must have been the winner when starting the pod.</p>
</blockquote>

<p>Additionally there is an pull request  (PR)
 in this <a href="https://github.com/kubernetes/kubeadm/issues/1694" rel="nofollow noreferrer">thread</a>. The outcome is that on Jan 17th, 2020 the PR was <strong>merged</strong> to master from neolit123:1.18-kubeadm-ugprade-rollback. </p>

<p>That is why you shouldn't face that very issue next time you'll be updating k8s <em>from</em> 1.18.x :-) </p>

<p>Hope that helps.</p>
