-
Notifications
You must be signed in to change notification settings - Fork 1.3k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request #3031 from dlipovetsky/version-skew
📖 Kubernetes support matrix
- Loading branch information
Showing
6 changed files
with
142 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
21 changes: 21 additions & 0 deletions
21
docs/book/src/images/management-workload-same-cluster.plantuml
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,21 @@ | ||
@startuml | ||
|
||
[clusterctl] | ||
|
||
package "Management/Workload Cluster" { | ||
[Kubeadm Control Plane Provider] as cakcp | ||
[Core Provider] as capi | ||
[Kubeadm Bootstrap Provider] as cabpk | ||
[Infrastructure Provider] as infra #white | ||
[API Server] as api #white | ||
[etcd] #white | ||
capi --> api | ||
cabpk --> api | ||
cakcp --> api | ||
infra --> api | ||
cakcp --> etcd | ||
} | ||
|
||
clusterctl -> api | ||
|
||
@enduml |
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
35 changes: 35 additions & 0 deletions
35
docs/book/src/images/management-workload-separate-clusters.plantuml
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,35 @@ | ||
@startuml | ||
|
||
[clusterctl] | ||
|
||
package "Management Cluster" { | ||
[Kubeadm Bootstrap Provider] as cabpk | ||
[Core Provider] as capi | ||
[Kubeadm Control Plane Provider] as cakcp | ||
[Infrastructure Provider] as infra #white | ||
[API Server] as api #white | ||
capi --> api | ||
cabpk --> api | ||
cakcp --> api | ||
infra --> api | ||
} | ||
|
||
clusterctl -> api | ||
|
||
package "Workload Cluster 1" { | ||
[API Server] as api1 #white | ||
[etcd] as etcd1 #white | ||
capi ---> api1 | ||
cakcp ---> api1 | ||
cakcp ---> etcd1 | ||
} | ||
|
||
package "Workload Cluster 2" { | ||
[API Server] as api2 #white | ||
[etcd] as etcd2 #white | ||
capi ---> api2 | ||
cakcp ---> api2 | ||
cakcp ---> etcd2 | ||
} | ||
|
||
@enduml |
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,85 @@ | ||
# Cluster API Version Support and Kubernetes Version Skew Policy | ||
|
||
## Supported Versions | ||
|
||
The Cluster API team maintains release branches for **(v1alpha3) v0.3** and **(v1alpha2) v0.2**, the two most recent releases. | ||
|
||
Releases include these components: | ||
|
||
- Core Provider | ||
- Kubeadm Bootstrap Provider | ||
- Kubeadm Control Plane Provider | ||
- clusterctl client | ||
|
||
All Infrastructure Providers are maintained by independent teams. Other Bootstrap and Control Plane Providers are also maintained by independent teams. For more information about their version support, see [below](#providers-maintained-by-independent-teams). | ||
|
||
## Supported Kubernetes Versions | ||
|
||
The project aims to keep the current minor release compatible with the actively supported Kubernetes minor releases, i.e., the current release (N), N-1, and N-2. To find out the exact range of Kubernetes versions supported by each component, please see the [tables](#release-components) below. | ||
|
||
See the [following section](#kubernetes-version-support-as-a-function-of-cluster-topology) to understand how cluster topology affects version support. | ||
|
||
### Kubernetes Version Support As A Function Of Cluster Topology | ||
|
||
The Core Provider, Kubeadm Bootstrap Provider, and Kubeadm Control Plane Provider run on the Management Cluster, and clusterctl talks to that cluster's API server. | ||
|
||
In some cases, the Management Cluster is separate from the Workload Clusters. The Kubernetes version of the Management and Workload Clusters are allowed to be different. For example, the current Cluster API release is compatible with Kubernetes versions 1.16 through 1.18. For example, the Management Cluster can run v1.18.2, and two Workload Clusters can run v1.16.9 and v1.17.5. | ||
|
||
These diagrams show the relationships between components in a Cluster API release (yellow), and other components (white). | ||
|
||
#### Management And Workload Cluster Are the Same (Self-hosted) | ||
|
||
![Management/Workload Same Cluster](../images/management-workload-same-cluster.png) | ||
|
||
#### Management And Workload Clusters Are Separate | ||
|
||
![Management/Workload Separate Clusters](../images/management-workload-separate-clusters.png) | ||
|
||
### Release Components | ||
|
||
#### Core Provider (`cluster-api-controller`) | ||
|
||
||Cluster API v1alpha2 (v0.2)|Cluster API v1alpha3 (v0.3)| | ||
|-|-|-| | ||
|Kubernetes v1.13|✓|| | ||
|Kubernetes v1.14|✓|| | ||
|Kubernetes v1.15|✓|| | ||
|Kubernetes v1.16|✓|✓| | ||
|Kubernetes v1.17||✓| | ||
|Kubernetes v1.18||✓| | ||
|
||
The Core Provider also talks to API server of every Workload Cluster. Therefore, the Workload Cluster's Kubernetes version must also be compatible. | ||
|
||
#### Kubeadm Bootstrap Provider (`kubeadm-bootstrap-controller`) | ||
|
||
||Cluster API v1alpha2 (v0.2)|Cluster API v1alpha3 (v0.3)| | ||
|-|-|-| | ||
|Kubernetes v1.13||| | ||
|Kubernetes v1.14 + kubeadm/v1beta1|✓|| | ||
|Kubernetes v1.15 + kubeadm/v1beta1|✓|| | ||
|Kubernetes v1.16 + kubeadm/v1beta1|✓|✓| | ||
|Kubernetes v1.17 + kubeadm/v1beta1||✓| | ||
|Kubernetes v1.18 + kubeadm/v1beta1||✓| | ||
|
||
The Kubeadm Bootstrap Provider generates configuration using the v1beta1 kubeadm API. | ||
|
||
#### Kubeadm Control Plane Provider (`kubeadm-control-plane-controller`) | ||
|
||
||Cluster API v1alpha2 (v0.2)|Cluster API v1alpha3 (v0.3)| | ||
|-|-|-| | ||
|Kubernetes v1.13||| | ||
|Kubernetes v1.14||| | ||
|Kubernetes v1.15||| | ||
|Kubernetes v1.16 + etcd/v3||✓| | ||
|Kubernetes v1.17 + etcd/v3||✓| | ||
|Kubernetes v1.18 + 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. | ||
|
||
The Kubeadm Control Plane requires the Kubeadm Bootstrap Provider. | ||
|
||
## Providers Maintained By Independent Teams | ||
|
||
In general, if a Provider version M says it is compatible with Cluster API version N, then version M must be compatible with a subset of the Kubernetes versions supported by Cluster API version N. | ||
|
||
To understand the version compatibility of a specific provider, please see its documentation. This book includes [a list of independent providers](providers.md) |