<p>I've an EKS cluster in AWS.</p>
<pre><code>[cloudshell-user@ip-10-0-87-109 ~]$ kubectl version --short
Kubeconfig user entry is using deprecated API version client.authentication.k8s.io/v1alpha1. Run 'aws eks update-kubeconfig' to update.
Client Version: v1.23.7-eks-4721010
Server Version: v1.20.11-eks-f17b81
</code></pre>
<pre><code>[cloudshell-user@ip-10-0-87-109 ~]$ kubectl get nodes
Kubeconfig user entry is using deprecated API version client.authentication.k8s.io/v1alpha1. Run 'aws eks update-kubeconfig' to update.
NAME                    STATUS   ROLES    AGE     VERSION
fargate-172.101.0.134   Ready    &lt;none&gt;   13d     v1.20.15-eks-14c7a48
fargate-172.101.0.161   Ready    &lt;none&gt;   68d     v1.20.15-eks-14c7a48
</code></pre>
<p>On Nov 1st AWS is going to update the server version to 1.21 because AWS going to end the support of 1.20.</p>
<p>What problems will come up? I read</p>
<blockquote>
<p>no EKS features were removed in 1.21</p>
</blockquote>
<p>What should I do in order to be safe?</p>

Luca Rasconi
<p>With EKS version upgraded, it is based on the official Kubernetes upstream version upgrade so you better check what changes and deprecation between <code>1.20</code> and <code>1.21</code> and do they affect your current workload because of changes from APIs.</p>
<p><a href="https://github.com/kubernetes/kubernetes/blob/master/CHANGELOG/CHANGELOG-1.21.md#changelog-since-v1200" rel="nofollow noreferrer">https://github.com/kubernetes/kubernetes/blob/master/CHANGELOG/CHANGELOG-1.21.md#changelog-since-v1200</a></p>
<p>If yes, you have to prepare updating your manifests: <a href="https://aws.amazon.com/blogs/containers/preparing-for-kubernetes-api-deprecations-when-going-from-1-15-to-1-16/" rel="nofollow noreferrer">https://aws.amazon.com/blogs/containers/preparing-for-kubernetes-api-deprecations-when-going-from-1-15-to-1-16/</a></p>
<p>From the official calendar, it says <strong>End Of Support</strong> on November 1st but there are some FAQs that you need to understand first: <a href="https://docs.aws.amazon.com/eks/latest/userguide/kubernetes-versions.html#version-deprecation" rel="nofollow noreferrer">https://docs.aws.amazon.com/eks/latest/userguide/kubernetes-versions.html#version-deprecation</a></p>
<ul>
<li>On the end of support date, you can no longer create new Amazon EKS clusters with the unsupported version.</li>
<li>Amazon EKS will automatically upgrade existing control planes (not nodes) to the oldest supported version through a gradual deployment process after the end of support date. Amazon EKS does not allow control planes to stay on a version that has reached end of support.</li>
<li>After the automatic control plane update, you <strong>must manually update cluster add-ons and Amazon EC2 nodes</strong>.</li>
</ul>
<p>To be safe, you have to</p>
<ul>
<li>prepare your manifests to be updated with latest Kubernetes version that you are going to upgrade to.</li>
<li>proactively upgrade your EKS before AWS forces doing it.</li>
<li>remember to upgrade EKS add-ons, node groups and test any of your current controllers in the new version: <a href="https://docs.aws.amazon.com/eks/latest/userguide/update-managed-node-group.html" rel="nofollow noreferrer">https://docs.aws.amazon.com/eks/latest/userguide/update-managed-node-group.html</a></li>
<li>I suggest you just provision a test cluster with spot instances and try out your application first.</li>
</ul>
<p><a href="https://i.stack.imgur.com/D3b0q.png" rel="nofollow noreferrer"><img src="https://i.stack.imgur.com/D3b0q.png" alt="amazon-eks-release-calendar" /></a></p>
<p>References:</p>
