Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

📖 update supported Kubernetes versions #6543

Merged
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
73 changes: 43 additions & 30 deletions docs/book/src/reference/versions.md
Original file line number Diff line number Diff line change
Expand Up @@ -63,16 +63,17 @@ These diagrams show the relationships between components in a Cluster API releas

#### Core Provider (`cluster-api-controller`)

| | CAPI v1alpha3 (v0.3) Management | CAPI v1alpha3 (v0.3) Workload | CAPI v1alpha4 (v0.4) Management | CAPI v1alpha4 (v0.4) Workload | CAPI v1beta1 (v1.x) Management | CAPI v1beta1 (v1.x) Workload |
| ---------------- | -------------------------------- | ----------------------------- | -------------------------------- | ----------------------------- | -------------------------------- | ----------------------------- |
| Kubernetes v1.16 | ✓ | ✓ | | | | |
| Kubernetes v1.17 | ✓ | ✓ | | | | |
| Kubernetes v1.18 | ✓ | ✓ | | ✓ | | ✓ |
| Kubernetes v1.19 | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
| Kubernetes v1.20 | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
| Kubernetes v1.21 | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
| Kubernetes v1.22 | | ✓ | ✓ | ✓ | ✓ | ✓ |
| Kubernetes v1.23* | | | ✓ | ✓ | ✓ | ✓ |
| | CAPI v0.3 (v1alpha3) | CAPI v0.4 (v1alpha4) | CAPI v1.0 (v1beta1) | CAPI v1.1+v1.2 (v1beta1) |
| ---------------- | --------------------- | ---------------------- | -------------------- | ------------------------ |
| Kubernetes v1.16 | ✓ | | | |
| Kubernetes v1.17 | ✓ | | | |
| Kubernetes v1.18 | ✓ | ✓ (only workload) | ✓ (only workload) | ✓ (only workload) |
| Kubernetes v1.19 | ✓ | ✓ | ✓ | ✓ |
| Kubernetes v1.20 | ✓ | ✓ | ✓ | ✓ |
| Kubernetes v1.21 | ✓ | ✓ | ✓ | ✓ |
| Kubernetes v1.22 | ✓ (only workload) | ✓ | ✓ | ✓ |
| Kubernetes v1.23* | | ✓ | ✓ | ✓ |
| Kubernetes v1.24 | | | | ✓ |

\* There is an issue with CRDs in Kubernetes v1.23.{0-2}. ClusterClass with patches is affected by that (for more details please see [this issue](https://github.com/kubernetes-sigs/cluster-api/issues/5990)). Therefore we recommend to use Kubernetes v1.23.3+ with ClusterClass.
Previous Kubernetes **minor** versions are not affected.
Expand All @@ -81,31 +82,33 @@ The Core Provider also talks to API server of every Workload Cluster. Therefore,

#### Kubeadm Bootstrap Provider (`kubeadm-bootstrap-controller`)

| | CAPI v1alpha3 (v0.3) Management | CAPI v1alpha3 (v0.3) Workload | CAPI v1alpha4 (v0.4) Management | CAPI v1alpha4 (v0.4) Workload | CAPI v1beta1 (v1.x) Management | CAPI v1beta1 (v1.x) Workload |
| ---------------------------------- | -------------------------------- | ----------------------------- | ------------------------------- | ----------------------------- | ------------------------------- | ----------------------------- |
| Kubernetes v1.16 + kubeadm/v1beta2 | ✓ | ✓ | | | | |
| Kubernetes v1.17 + kubeadm/v1beta2 | ✓ | ✓ | | | | |
| Kubernetes v1.18 + kubeadm/v1beta2 | ✓ | ✓ | | ✓ | | ✓ |
| Kubernetes v1.19 + kubeadm/v1beta2 | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
| Kubernetes v1.20 + kubeadm/v1beta2 | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
| Kubernetes v1.21 + kubeadm/v1beta2 | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
| Kubernetes v1.22 + kubeadm/v1beta2 (v0.3) kubeadm/v1beta3 (v0.4+) | | ✓ | ✓ | ✓ | ✓ | ✓ |
| Kubernetes v1.23 + kubeadm/v1beta3 | | | ✓ | ✓ | ✓ | ✓ |
| | CAPI v0.3 (v1alpha3) | CAPI v0.4 (v1alpha4) | CAPI v1.0 (v1beta1) | CAPI v1.1+v1.2 (v1beta1) |
| ---------------------------------- | -------------------------------- | -------------------- | ------------------- | ------------------------ |
| Kubernetes v1.16 + kubeadm/v1beta2 | ✓ | | | |
| Kubernetes v1.17 + kubeadm/v1beta2 | ✓ | | | |
| Kubernetes v1.18 + kubeadm/v1beta2 | ✓ | ✓ (only workload) | ✓ (only workload) | ✓ (only workload) |
| Kubernetes v1.19 + kubeadm/v1beta2 | ✓ | ✓ | ✓ | ✓ |
| Kubernetes v1.20 + kubeadm/v1beta2 | ✓ | ✓ | ✓ | ✓ |
| Kubernetes v1.21 + kubeadm/v1beta2 | ✓ | ✓ | ✓ | ✓ |
| Kubernetes v1.22 + kubeadm/v1beta2 (v0.3) kubeadm/v1beta3 (v0.4+) | ✓ (only workload) | ✓ | ✓ | ✓ |
| Kubernetes v1.23 + kubeadm/v1beta3 | | ✓ | ✓ | ✓ |
| Kubernetes v1.24 + kubeadm/v1beta3 | | | | ✓ |

The Kubeadm Bootstrap Provider generates kubeadm configuration using the API version recommended for the target Kubernetes version.

#### Kubeadm Control Plane Provider (`kubeadm-control-plane-controller`)

| | CAPI v1alpha3 (v0.3) Management | CAPI v1alpha3 (v0.3) Workload | CAPI v1alpha4 (v0.4) Management | CAPI v1alpha4 (v0.4) Workload | CAPI v1beta1 (v1.x) Management | CAPI v1beta1 (v1.x) Workload |
| -------------------------- | ------------------------------- |-------------------------------|---------------------------------|-------------------------------| ------------------------------- | ----------------------------- |
| Kubernetes v1.16 + etcd/v3 | ✓ | ✓ | | | | |
| Kubernetes v1.17 + etcd/v3 | ✓ | ✓ | | | | |
| Kubernetes v1.18 + etcd/v3 | ✓ | ✓ | | ✓ | | ✓ |
| Kubernetes v1.19 + etcd/v3 | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
| Kubernetes v1.20 + etcd/v3 | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
| Kubernetes v1.21 + etcd/v3 | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
| Kubernetes v1.22 + etcd/v3 | | ✓* | ✓ | ✓ | ✓ | ✓ |
| Kubernetes v1.23 + etcd/v3 | | | ✓* | ✓* | ✓ | ✓ |
| | CAPI v0.3 (v1alpha3) | CAPI v0.4 (v1alpha4) | CAPI v1.0 (v1beta1) | CAPI v1.1+v1.2 (v1beta1) |
| -------------------------- | -------------------- |----------------------| ------------------- | ------------------------ |
| Kubernetes v1.16 + etcd/v3 | ✓ | | | |
| Kubernetes v1.17 + etcd/v3 | ✓ | | | |
| Kubernetes v1.18 + etcd/v3 | ✓ | ✓ (only workload) | ✓ (only workload) | ✓ (only workload) |
| Kubernetes v1.19 + etcd/v3 | ✓ | ✓ | ✓ | ✓ |
| Kubernetes v1.20 + etcd/v3 | ✓ | ✓ | ✓ | ✓ |
| Kubernetes v1.21 + etcd/v3 | ✓ | ✓ | ✓ | ✓ |
| Kubernetes v1.22 + etcd/v3 | ✓* (only workload) | ✓ | ✓ | ✓ |
| Kubernetes v1.23 + etcd/v3 | | ✓* | ✓* | ✓ |
| Kubernetes v1.24 + etcd/v3 | | | | ✓ |

The Kubeadm Control Plane Provider talks to the API server and etcd members of every Workload Cluster whose control plane it owns. It uses the etcd v3 API.

Expand All @@ -121,6 +124,16 @@ The Kubeadm Control Plane requires the Kubeadm Bootstrap Provider.
| v1.1 (v1beta1) | v1.8.6 |
| v1.2 (v1beta1) | v1.9.2 |

#### Kubernetes version specific notes

**1.24**:

* Kubeadm Bootstrap Provider:
* `kubeadm` now sets both the `node-role.kubernetes.io/control-plane` and `node-role.kubernetes.io/master` taints on control plane nodes.
* `kubeadm` now only sets the `node-role.kubernetes.io/control-plane` label on control plane nodes (the `node-role.kubernetes.io/master` label is not set anymore).
* Kubeadm Bootstrap Provider and Kubeadm Control Plane Provider
* `criSocket` without a scheme prefix has been deprecated in the kubelet since a while. `kubeadm` now shows a warning if no scheme is present and eventually the support for `criSocket`'s without prefix will be dropped. Please adjust the `criSocket` accordingly (e.g. `unix:///var/run/containerd/containerd.sock`) if you are configuring the `criSocket` in CABPK or KCP resources.

#### clusterctl

It is strongly recommended to always use the latest version of [clusterctl](../clusterctl/overview.md), in order to
Expand Down