Features | KubeOne | Kubespray | Kind | Kubeadm | OpenShift Origin | Airship |
---|
Declarative Cluster Configuration - describing the K8s cluster including infra components (eg. CRI, CNI), versions, number of nodes (master+worker), architecture, K8s certificates | Y | Y | N | N | Y | Y. Uses Kustomize for layering and substitution. |
Templated configuration | Y | Y | N | N | Y | Y. Uses Kustomize |
Centralized configuration model | Y | Y | Y | N | Y | Y |
Ability to use existing machines (from machine provisioning stage) |
| Y | Y | Y | Y | TBD. Recognizes the use case of "bring your own OS", but not committed to implementing in v2.0. |
Ability to manage underlying infrastructure (i.e. to create and configure nodes for use by a cluster) | Y | N | unknown | N | depends on infra provider | Yes, integrates cluster-api-provider-metal3 |
Support for different architectures: Arm and x86 | Y | N | N | Y | unknown | N. ARM is out of scope for v2.0. Operators are welcome to step up and add the support. |
K8s clusters pass conformance test | Y | Y | Y | Y | unknown | TBD, May run internally. |
100% open source | Y | Y | Y | Y | Y | Y |
Support all CNCF-hosted projects | Y |
|
|
| unknown | Yes. Airship architecture allows users to deploy additional extensions and add-ons. If an extension has Helm charts, it can be optionally added to Airship life cycle management experience. |
|
|
|
|
|
|
|
Support for specific versions of K8s | Y | N | Y | Y | Y | Y |
Specific versions of K8s components | Y |
|
|
| Y | Y |
etcd | Y | Y | Y | Y | Y | Y |
Support for deploying from HEAD / `master` branch of K8s | Y | N | Y | Y | unknown | ? |
Container runtimes (containerd, cri-o) with specific versions | Y | Y | N | Y | Y | Y, uses cluster api kubeadm provider |
Kubernetes add-ons/extensions installation (e.g. CNI, CSI, Service Mesh, Ingress, LB, etc.) |
| partially |
|
|
| Y |
|
|
|
|
|
|
|
Hybrid Support both VNF and CNF |
|
|
|
|
| Y |
Customizable - pick and choose what and when to use for installation |
|
|
|
|
| Y |
|
|
|
|
|
|
|
4 Comments
Victor Morales
I've successfully deployed a cluster in a Raspberry Pi setup using Kubespray with the exception of the CNI, I submitted the PR but it's not clear how they're going to manage the upgrade process.
Victor Morales
IMHO, Day-2 and Multi OSes support need to be considered as part of the features in this table
Victor Morales
Kubespray uses the `kube_version` to specify the Kubernetes version to be used and this is its kubeadm's table support
Fatih Degirmenci
few more notes about kubepsray based on what is listed on the table
Regarding "Ability to manage underlying infrastructure (i.e. to create and configure nodes for use by a cluster)": I believe they made a conscious decision to do Kubernetes installation and leave the provisioning, configuration, and management of underlying infrastructure to other tools that are built for that purpose.