question

YOUD-8557 avatar image
0 Votes"
YOUD-8557 asked YOUD-8557 commented

Upgrade nodepool to the same version as control-plane

Hello,

We have a cluster running on version 1.17.9, but I noticed that the nodepool is currently running on 1.15.7.
I would like the nodepool to be at the same version, before upgrading the control-plane to 1.18.14.

This is what it looks like:
82901-image.png

I tried to upgrade the nodepool, but I got this error:
82872-image.png

Some additional information about the nodepool:
82767-image.png


And when I tried to upgrade via terraform I got this error:

Failure sending request: StatusCode=400 -- Original Error: Code="NodePoolMcVersionIncompatible" Message="Node pool version 1.15.7 and control plane version 1.18.14 are incompatible. Minor version of node pool cannot be more than 2 versions less than control plane's version. Minor version of node pool is 15 and control plane is 18.

What is the procedure to have the nodepool at the same version as the control-plane?

Thanks



azure-kubernetes-service
image.png (105.5 KiB)
image.png (56.2 KiB)
image.png (271.3 KiB)
5 |1600 characters needed characters left characters exceeded

Up to 10 attachments (including images) can be used with a maximum of 3.0 MiB each and 30.0 MiB total.

1 Answer

singhh-msft avatar image
0 Votes"
singhh-msft answered YOUD-8557 commented

@YOUD-8557, thank you for reaching out to us. Happy to help. I see that you want to have the nodepool at the same version as that of control-plane. Unfortunately, this is not possible as per the product's design at the moment. You can read through Upgrade a cluster control plane with multiple node pools. The valid Kubernetes upgrades for a cluster's control plane and node pools are validated by the following sets of rules:

Rules for valid versions to upgrade node pools:

  • The node pool version must have the same major version as the control plane.

  • The node pool minor version must be within two minor versions of the control plane version.

  • The node pool version cannot be greater than the control major.minor.patch version.

Rules for submitting an upgrade operation:

  • You cannot downgrade the control plane or a node pool Kubernetes version.

  • If a node pool Kubernetes version is not specified, behavior depends on the client being used. Declaration in Resource Manager templates falls back to the existing version defined for the node pool if used, if none is set the control plane version is used to fall back on.

  • You can either upgrade or scale a control plane or a node pool at a given time, you cannot submit multiple operations on a single control plane or node pool resource simultaneously.


    Please "Accept the answer" if the information helped you. This will help us and others in the community as well.






· 9
5 |1600 characters needed characters left characters exceeded

Up to 10 attachments (including images) can be used with a maximum of 3.0 MiB each and 30.0 MiB total.

Thank you for your quick answer.
So what you are saying, is upgrading the nodepool to a aks supported version is not possible?

0 Votes 0 ·

Or more specifically, upgrading the nodepool from 1.15.7 to aks supported version is not possible?

0 Votes 0 ·

@YOUD-8557, I suggest you to follow this complete guide for upgrading your AKS cluster. To add on to this, as I see, the difference between your control plane's and node pool's minor versions is maximum of 2 (as per validation), because of which you will have to upgrade node pool first and then your control plane to maintain difference of less than 2. Further, as your error message suggests, pls upgrade node pool's minor version one by one, i.e., try upgrading to minor version 16 first and then to 17.

Pls let me know if any issues.


0 Votes 0 ·

@HarshitaSingh-MSFT, I tried to upgrade the nodepool first to 1.16, but it seems that this version is not supported anymore.
The cluster is in Canada Central

0 Votes 0 ·

@HarshitaSingh-MSFT, I think I have an idea but I don't know the feasibility, please validate:
I can't upgrade the nodepool to 1.16 because this version is not supported (at least in Canada Central), but because we can only upgrade one minor version at a time, this is a blocking point.

But, as I read through the docs, if we do:
az aks upgrade --resource-group <ResourceGroupName> --name <AKSClusterName> --kubernetes-version <k8s version>
This will upgrade not only the control plane, but also the nodepool.

So if we specify 1.17.13 as k8s version, does the nodepool will upgrade too?
I can't try it, because it is on our production cluster, so I want to be sure.

Thanks

0 Votes 0 ·
Show more comments