1

Can somebody explain the difference in tooling between Crossplane and Cluster API from the perspective of a managed kubernetes platform provision ?

https://github.com/kubernetes-sigs/cluster-api

I was using crossplane for sometime to create k8s clusters and recently got to know that Cluster API is also having the same capability to provision k8s clusters.

Harsh Manvar
  • 27,020
  • 6
  • 48
  • 102
George K J
  • 49
  • 5

4 Answers4

3

Cluster API

Cluster API is one of the projects in CNCF that you can use the create and manage the Kubernetes clusters. it's more like Kubeadm, kind, k3s, minikube(not for prod usecase) with YAML config & CLI.

You can create the YAML file and provision the Kubernetes cluster and manage it with that. There are different providers(AWS, AKS, GCP) available so you can use a provider-set service account or Access key secret and once you apply YAML to cluster API it will create a K8s cluster based on config and provider.

So with this, you can manage multiple Kubernetes clusters.

With cluster API YAML config you can create/manage K8s cluster on AWS, GCP, On-prem etc.

Crossplane

Consider crossplane as a deployment or service you are running on Kubernetes first.

You pass YAML config to cross-plane service based on rules it will create/manage the resources outside on cloud providers. It will also create/Manage the RDS, CloudSQL instances, Kubernetes clusters and other resources that the cloud provider supports.

It has also concept of provider(AWS, GCP, AKS)

Harsh Manvar
  • 27,020
  • 6
  • 48
  • 102
0

Crossplane uses Kubernetes as the underlying platform to expose these features and workflows to manage cloud infrastructure outside of Kubernetes, such as data centers, the cloud or the edge. It installs a set of components called providers by extending Kubernetes to manage resources from cloud providers

Cluster API is a Kubernetes project to bring declarative, Kubernetes-style APIs to cluster creation, configuration, and management.

Kubernetes container orchestration technology has swept the enterprise world, with 75% of organizations running containers in production soon (most orchestrated by Kubernetes). Kubernetes delivers a cloud-native platform for application delivery, runtime, and scaling. While these are huge benefits for scale out applications, providing all these capabilities comes at the expense of the complexity of the platform itself. These complexities can be categorized as

Complex and heavyweight lifecycle management: significant time and resources needed to provision, upgrade, and maintain the control planes of clusters. Each cloud has a different set of IaaS primitives that need to be cobbled together to make a “cluster”.

Intricate and involved integrations for basic components such as storage, networking, security, and others. Blockquote

Difficult and not always consistent multi-cluster management and operations.

Jay Panchal
  • 257
  • 1
  • 7
0

Cluster API

Provisioning Kubernetes clusters is never an easy task. When there are 1000+ clusters, definitely want to have a standardized approach to ease tasks. Some of might know tools like kOps, Kubespray. Imagine Cluster API as their alternative solution, but more powerful!

According to the official page, "Cluster API is a Kubernetes sub-project focused on providing declarative APIs and tooling to simplify provisioning, upgrading, and operating multiple Kubernetes clusters."

Here are some highlighted points of Cluster API:

  • Pure YAML-based. Kubernetes style. Super handy.
  • Support any mainstream infrastructure provider. Provision your Kubernetes clusters in cloud/on-premise environments in the same place.
  • Managed Kubernetes services support. AWS EKS, Azure AKS, GCP GKE all are supported.
  • Bring your own infrastructure. Reuse existing infrastructures. Focus on provisioning Kubernetes clusters.

Crossplane

Crossplane uses Kubernetes as the underlying platform to expose these features and workflows to manage cloud infrastructure outside of Kubernetes, such as data centers, the cloud, or the edge.

It installs a set of components called providers by extending Kubernetes to manage resources from cloud providers. Providers build on the Kubernetes API, along with the custom resources and controllers, and expose declarative APIs to manage cloud provider resources.

Crossplane is geared toward platform teams and operators looking to build abstractions and easier-to-consume infrastructure components based on an organization's needs. It has a few concepts, such as CompositeResourceDefinition and Composition, that enable teams to extend and build on top of the default resources exposed for a cloud provider.

pr96
  • 994
  • 5
  • 17
-2

First of all lets understand what is Crossplane and what is Cluster API

Cluster API

Cluster API is a Kubernetes sub-project focused on providing declarative APIs and tooling to simplify provisioning, upgrading, and operating multiple Kubernetes clusters.
  • Provide declarative APIs
  • Give the tools to simplify provisioning, upgrading and operating multiple clusters
  • Helps to manage the lifecycle (create, scale, upgrade, destroy) of Kubernetes-conformant cluster (uses a declarative API)
  • Give you the ability to work on different environments (on-premisses and cloud)

Can find this and more about kubernets cluster api at https://cluster-api.sigs.k8s.io/

Crossplane

Crossplane is a framework for building cloud native control planes without needing to write code. It has a highly extensible backend that enables you to build a control plane that can orchestrate applications and infrastructure no matter where they run, and a highly configurable frontend that puts you in control of the schema of the declarative API it offers.

I've found a few interesting posts about Crossplane vs Kubernetes API's

Its not much but hope this helps

ATEK0
  • 82
  • 9