This section provides an introduction to Kubernetes Operator as a custom installer to deploy Release.

Operator — An Overview

The Kubernetes Operator allows you to deploy the Docker image on various platforms. Before discussing how to install Release using Kubernetes Operator, let us go through a brief overview about the Operator.

What is an Operator?

Operator is a method of packaging, deploying, and managing Kubernetes application. In other words, operators perform the role similar to human operators who manage services and applications. Operators are Kubernetes software extensions that monitor a custom Kubernetes resource and enhances its functionality to manage complex application instances. Kubernetes Operators help in packaging, deploying, and managing a Kubernetes application on behalf of the Kubernetes user. A Kubernetes Operator follows the basic Kubernetes and controller concepts, but uses the application-specific knowledge to automate the management of the complete life cycle of an application.

Why Do We Need Kubernetes Operators?

Managing application deployments with native Kubernetes objects can be difficult when handling complex applications with changing requirements. Kubernetes operators help in simplifying complex deployments by automating tasks that otherwise requires manual intervention or some form of automation.

The following are the key features of a Kubernetes Operator:

  • Repeatable installation and upgrade methods on Kubernetes platforms
  • Performs health checks of all the system components
  • Records and redistributes the knowledge of field engineers to the Kubernetes users

Operators Versus Helm Charts

Helm Charts are packaging formats that automates and simplifies deployment and management of Release on a Kubernetes cluster. They also provide some additional features necessary for the functioning of your container clusters. Kubernetes operators include complex configuration data within their packages in addition to packaging applications. Helm Charts is useful when your requirement is to automate the deployment with the default configuration settings. However, Kubernetes Operators provide custom configurations with your regular deployment.

How does an Operator Work?

Operator is an application that monitors the resource and interacts with Kubernetes API to create (or update) deployment with the specified number of pod replicas. An operator transforms the applications you deploy into intelligent Kubernetes objects, which contains the domain-specific schema. The controller is encoded with the operational intelligence or domain-specific knowledge to maintain the desired state of the object. Operators combine customer resource definitions (CRD) and custom controllers to eliminate the need for manual intervention when performing tasks like upgrade, failure recovery handling, and when scaling complex stateful applications.

Operator Illustration

Helm-based Operator

Helm is the package manager for Kubernetes, and Operator SDK is the framework used to create Kubernetes Operator. Helm Charts simplify and automate the installation and management of Release solution. The operator SDK uses Helm Chart as input to create custom resource definition (CRD) and custom resource (CR).

Operator-SDK creates a project with the required folder structure for monitoring Release resource. The SDK also generates Role-based Access Control (RBAC) rules in dairelease_cr.yaml file based on the resources deployed by Helm chart’s default manifest file when generating the API.

Note: Operator can only be deployed in the default namespace.

Installing Release 10.2

You can install Release 10.2 using the Kubernetes Operator on the following platforms:

  • Amazon EKS
  • Azure Kubernetes Service (AKS)
  • Kubernetes On-premise
  • OpenShift cluster on Amazon EKS
  • OpenShift cluster on VMWare vSphere
  • Google Cloud Platform (GCP)

Upgrading to Release 10.2

You can upgrade to Release 10.2 from the previous Helm Charts-based solution on the following platforms:

  • Amazon Elastic Container Service for Kubernetes (EKS)
  • Azure Kubernetes Service (AKS)
  • Kubernetes On-premise
  • OpenShift cluster on Amazon EKS
  • OpenShift cluster on VMWare vSphere
  • Google Cloud Platform (GCP)