akka-guide icon indicating copy to clipboard operation
akka-guide copied to clipboard

Document k8s support matrix/policy

Open ignasi35 opened this issue 4 years ago • 4 comments

Originally posted by @marcospereira in https://github.com/akka/akka-platform-guide/pull/733#discussion_r669037767

I guess that we want to include support for Kubernetes versions that are not yet supported by GKE and EKS, but do we want to drop support for versions that they still support?

I'm asking because following the Kubernetes version-skew-policy may not be the best option, considering how cloud providers pile up their own policies on top of that. For example, this is what GKE docs says about version support:

Google provides a total of 14 months of support for each GKE minor version once the version has been made available in the Regular channel.

And here is the release schedule:

https://cloud.google.com/kubernetes-engine/docs/release-schedule

What we have there for K8s 1.19 is:

Kubernetes version Kubernetes release date Rapid Regular Stable
1.19 2020-08-26 2021-01-25 2021-04-18 2021-06

It took ~5 months from K8s release to Rapid channel, then ~3 months from Rapid to Regular. From Regular to EOL, it will take 14 months. In total, from OSS release to EOL in GKE, it will take ~21 months.

Numbers for EKS are similar: https://docs.aws.amazon.com/eks/latest/userguide/kubernetes-versions.html#kubernetes-release-calendar.

With a similar policy (from the FAQ in the link above):

Q: How long is a Kubernetes version supported by Amazon EKS?

A: A Kubernetes version is fully supported for 14 months after first being available on Amazon EKS. This is true even if upstream Kubernetes is no longer supporting a version available on Amazon EKS.

I'm not sure what would be the best option here, but a suggestion would be to support the union of:

  1. K8s OSS supported versions
  2. GKE versions in the Regular channel
  3. Some subset of EKS supported versions?

ignasi35 avatar Jul 14 '21 07:07 ignasi35

What we have there for K8s 1.19 is:

The 5-month between the upstream release of 1.19 and the availability in Rapid is probably an exception. GKE aims to provide each new k8s version in Rapid "within a few weeks". Promotion to Regular and from regular to Stable, OTOH, are documented to happen in about 3 months.

ignasi35 avatar Jul 14 '21 07:07 ignasi35

For completion, even it's a non-supported marketplace, here's the Azure version support policy. We may have customers using the "Vanilla k8s support" on their own AKS.

ignasi35 avatar Jul 14 '21 07:07 ignasi35

GKE aims to provide each new k8s version in Rapid "within a few weeks".

I think you are right. I was looking into 1.19 because that was when the policy changed. But, for the newer versions:

  1. 1.20: ~3 months
  2. 1.21: ~2 months
  3. 1.22: ~1 month (planned).

marcospereira avatar Jul 15 '21 20:07 marcospereira

I'm not sure what would be the best option here, but a suggestion would be to support the union of:

  1. K8s OSS supported versions
  2. GKE versions in the Regular channel
  3. Some subset of EKS supported versions?

I'm inclined to agree with something @RayRoestenburg said in one of our meetings: let's follow only K8s OSS policy unless there is a compelling reason not to do so. There will always be an overlap between the supported versions by OSS distribution AND the cloud vendors. Meaning that users can pick a version supported by us and available in one of those vendors.

marcospereira avatar Jul 15 '21 20:07 marcospereira