Introduction
This section provides an introduction to Kubernetes Operator as a custom installer to deploy Digital.ai Release.
Operator — An Overview
The Kubernetes Operator allows you to deploy the Digital.ai 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 Digital.ai 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.
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.
Installing Release 22.0
You can install Release 22.0 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 22.0
Depending on whether you have an existing Release solution that is Helm Charts-based or Operator-based (Kubernetes Operator 10.2), you must choose the Helm to Operator or Operator to Operator upgrade option when upgrading to Release 22.0. You can upgrade to Release 22.0 using the Kubernetes Operator 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)
The Operator can only be deployed in the default namespace.