Friday, February 7, 2025

Kube Resource Orchestrator Simplifies Kubernetes Development

Google Cloud is excited to share the news of Google Cloud, AWS, and Azure working together on Kube Resource Orchestrator, often known as Kro (pronounced “crow”). Kro offers a cloud-agnostic, Kubernetes-native method for defining resource groups. Kro allows you to organise your apps and dependencies into a single resource that end users may utilise with ease.

Challenges of Kubernetes resource orchestration

Kubernetes is the technology that platform and DevOps teams want to utilise to establish and enforce rules for how application teams deploy their workloads. Resource generation, security settings, monitoring setup, end-user interface definition, and other tasks must be handled by each service. Although client-side templating tools like Helm and Kustomize can assist with this, Kubernetes does not provide platform teams with a native method for creating unique resource groups that end users can utilise.

Prior to Kube Resource Orchestrator, platform teams had to spend money on specialised solutions that couldn’t take use of Kubernetes CRDs, such creating their own Kubernetes controllers or utilising packaging tools like Helm. These methods are difficult for non-Kubernetes specialists to understand and are expensive to develop, maintain, and debug. A lot of Kubernetes users deal with this issue. Instead of creating vendor-specific solutions, Google Cloud has teamed up with Microsoft and Amazon to simplify K8s APIs for all Kubernetes customers.

How kro simplifies the developer experience

A Kubernetes-native framework called Kube Resource Orchestrator enables you to develop reusable APIs for the deployment of several resources as a single entity. Your application teams, even those who are not familiar with Kubernetes, may use it to condense a Kubernetes deployment and its dependencies into a single API. Kro may be used to build unique end-user interfaces that conceal the intricacy of cloud-provider APIs and Kubernetes by exposing just the parameters that an end user should see.

Kro does this by presenting the idea of a ResourceGraphDefinition, which outlines the process for extending a typical Kubernetes Custom Resource Definition (CRD) into a collection of Kubernetes resources. Kube Resource Orchestrator extends the single resource that end users define into the custom resources specified in the CRD.

Any Kubernetes resource may be grouped and managed using Kro. Cloud provider resources, such as storage buckets, may be produced and managed as Kubernetes resources with technologies like ACK, KCC, or ASO, which specify CRDs to control cloud provider resources from Kubernetes. Kube Resource Orchestrator may also be used to describe a whole application deployment and the cloud provider resources it depends on by combining resources from these tools with any other Kubernetes resources.

Example use cases

Here are a few instances of kro being utilised with Google Cloud. Additional examples are available on the Kube Resource Orchestrator website.

Example 1: Definition of the GKE cluster

Consider a scenario where a platform administrator wishes to grant self-service access to GKE cluster creation to end users inside their company. The platform administrator creates a CRD named GKE cluster that only exposes the parameters they want end users to be able to configure, and a corresponding ResourceGraphDefinition called GKEclusterRGD that specifies the necessary Kubernetes resources. The platform team needs clusters to install administrative tasks like agents, rules, and so on in addition to building a cluster. The following resources are defined by the ResourceGraphDefinition, which uses KCC to supply the mappings between K8s CRDs and Google Cloud APIs:

  • IAM ServiceAccount, IAM PolicyMember, Container Node Pools, GKE cluster, Services, and Policies

In order to establish a new cluster, the platform administrator would then provide the end-user interface by generating an instance of the CRD that specifies:

  • Name of cluster, name of nodepool, maximum number of nodes, location (e.g., us-east1), and optional networks

The end user’s experience is made simpler by keeping everything pertaining to policy, service accounts, and service activation (as well as the relationships between these resources) concealed from them.

GKE cluster
Image credit to Google Cloud

Example 2:  Web application definition

In this instance, a DevOps Engineer want to define a web application and its dependencies in a reusable manner. A new Kubernetes CRD named WebApp is defined by a ResourceGraphDefinition called WebAppRGD. All of the resources required for a web application environment are contained in this new resource, including:

  • Cloud resources such as object storage buckets, monitoring agents, deployments, services, and service accounts.

In addition to defining which parameters are set by the end user at deployment time, the WebAppRGD ResourceGraphDefinition may provide a default configuration (this gives you the freedom to select what is immutable and what an end user can configure). After that, a developer inputs any user-facing settings to construct an instance of the WebApp CRD. The desired Kubernetes resource is then deployed by Kube Resource Orchestrator.

Web application
Image credit to Google Cloud

Key benefits of Kube Resource Orchestrator

Kro, in Google Cloud’s opinion, offers platform engineering teams several benefits and is a significant advancement.

  • Kubernetes-native: Kro connects with pre-existing Kubernetes tools and processes and works with any Kubernetes resource by utilising Kubernetes Custom Resource Definitions (CRDs) to expand Kubernetes.
  • Let’s design a more straightforward end user experience: People who are not specialists in Kubernetes may easily utilise services developed on the platform with Kro’s ease of use in defining end-user interfaces for intricate sets of Kubernetes resources.
  • Standardised services are made possible for application teams since Kube Resource Orchestrator templates are reusable across many contexts and projects, which encourages uniformity and minimises effort duplication.

Start using Kube Resource Orchestrator

Kro can be found on GitHub as an open-source project. Teams from Google, AWS, and Microsoft presently jointly own the GitHub organisation, and community contributions are encouraged. Additionally, Google Cloud has a webpage providing installation and usage instructions for Kro, along with sample use cases. Google Cloud invite you to try Kro in your own Kubernetes development settings even if it is still in its early stages and not yet suitable for production use!

Thota nithya
Thota nithya
Thota Nithya has been writing Cloud Computing articles for govindhtech from APR 2023. She was a science graduate. She was an enthusiast of cloud computing.
RELATED ARTICLES

Recent Posts

Popular Post

Govindhtech.com Would you like to receive notifications on latest updates? No Yes