Skip to content

Commit f38c1f4

Browse files
authored
Merge pull request #3577 from consideRatio/pr/refine-k8s-upgrade-policy
Refine and detail k8s cluster upgrade policy
2 parents eb13f49 + 353d37d commit f38c1f4

File tree

1 file changed

+20
-13
lines changed

1 file changed

+20
-13
lines changed

docs/howto/upgrade-cluster/index.md

Lines changed: 20 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -11,19 +11,26 @@ clusters on AWS.
1111

1212
## Upgrade policy
1313

14-
We aim to ensure we use a k8s version for the control plane and node groups that is at least **five minor versions** behind the latest one available at any given time.
15-
16-
Ideally, the following rules should also be respected:
17-
18-
1. Every new cluster we deploy should be using the latest available kubernetes version.
19-
1. All of the clusters deployed in a cloud provider should be using the same version.
20-
1. Check if new upgrades are needed at least every 3 months.
21-
22-
23-
```{warning}
24-
As of now, we have not yet established practices on how to ensure these upgrades happen according to the policy above. Establishing this is tracked in [this GitHub
25-
issue](https://github.com/2i2c-org/infrastructure/issues/412).
26-
```
14+
1. To keep our k8s cluster's control plane and node pools upgraded to the latest
15+
_three_ and _four_ [official minor k8s versions] respectively at all times.
16+
2. To await a level of maturity for minor k8s versions before we adopt them.
17+
18+
| Kubernetes distribution | Our maturity criteria |
19+
| - | - |
20+
| GKE | Part of [GKE's regular release channel] |
21+
| EKS | [Supported by `eksctl`] and is GKE mature |
22+
| AKS | Listed as [generally available on AKS] |
23+
3. To upgrade k8s cluster's control plane and node pools at least _twice_ and
24+
_once_ per year respectively.
25+
4. To not disrupt user nodes with running users, by instead rolling out new user
26+
node pools if needed and cleaning up the old at a later time.
27+
5. To check if actions needs to be scheduled related to this in the beginning of
28+
every quarter.
29+
30+
[official minor k8s versions]: https://kubernetes.io/releases/
31+
[gke's regular release channel]: https://cloud.google.com/kubernetes-engine/docs/release-notes-regular
32+
[supported by `eksctl`]: https://eksctl.io/getting-started/#basic-cluster-creation
33+
[generally available on aks]: https://learn.microsoft.com/en-gb/azure/aks/supported-kubernetes-versions?tabs=azure-cli#aks-kubernetes-release-calendar
2734

2835
```{toctree}
2936
:maxdepth: 1

0 commit comments

Comments
 (0)