Prerequisites

  1. Kubernetes Cluster: You need to have a Kubernetes cluster up and running. This can be an on-premises cluster or a cloud-based Kubernetes service like Amazon EKS, Google Kubernetes Engine (GKE), or Azure Kubernetes Service (AKS).
  2. Blink User: You must have either the Owner role,Contributor role, or a custom role that includes both the runners:view and runners:edit permissions. To learn more about role-based access and permissions, see the User Roles documentation.
  3. (Optional)-SSH Access to Kubernetes Cluster: If you need to manually manage your Kubernetes cluster or troubleshoot any issues, you should have SSH access or appropriate permissions to interact with the cluster.
    Make sure you have the kubectl installed, Kubernetes command-line (CLI) tool for managing your clusters. Detailed instructions can be found in the official Kubernetes documentation.

Deployment Guide

1

Navigate to the Runners page

In the left-hand navigation bar, select Runners. Then, click the New Runner button in the top-right corner to open the configuration dialog.

2

Fill in the parameters:

Fill in the required details:

  • Name: Enter a name for the Runner group.
  • Tags: Add or create tags (optional).
  • Default: Check this box to set this Runner group as the default. When enabled, any workflows that do not explicitly specify a Runner group will automatically be assigned to this one.
3

Choose Runner Type

Choose Kubernetes as your runner type. Click the ‘Continue’ button to proceed.

4

Under the heading Runner Profile , please choose between the following options: Low, Medium, High or Custom. This allows you to better manage your resource containers and pods. To read more about it you can visit resource container links.

5

Copy and save the command

Click the button in the top-right corner to copy command needed to install the Runner in your Kubernetes environment.

WARNING

Please be aware that the provided command contains the registration token of the Runner, which will not be retrievable after copying. It is essential to securely store this token in a safe location for future reference.


Plugin Resource Control

Configuring Runner Resource Limitations


Scale with Kubernetes Runner

In Kubernetes, you can take advantage of the built-in ‘Horizontal Pod Autoscaler’ (HPA) to automatically scale your workloads. Instead of manually specifying a fixed number of pods, you define the minimum and maximum pod count, and Kubernetes adjusts the number based on resource usage. This approach works seamlessly with both runners and plugins, allowing you to scale them dynamically based on demand.

1

Enable Horizontal Pod Autoscaler (HPA) for the Kubernetes Runner deployment by including the following addition in the helm command: --set hpa=true.

2

Configure the Horizontal Pod Autoscaler (HPA) for the Kubernetes Runner deployment by including the following addition in the helm command:

--set minReplicas={minReplicas} (The default value is set to 3)
--set maxReplicas={maxReplicas} (The default value is set to 6)
--set targetCPUUtilizationPercentage={targetCPUUtilizationPercentage} (The default value is set to 80%)
--set targetMemoryUUtilizationPercentage={targetMemoryUUtilizationPercentage} (The default value is set to 80%)

Scale Plugins with Kubernetes Runner

Note: This configuration currently does not affect core plugins, but we are working on it and support will be available soon.
1

Enable Horizontal Pod Autoscaler (HPA) for the plugins deployed by the runner using the following addition to the helm command:

--set plugins.hpa.enabled=true
2

Configure the Horizontal Pod Autoscaler (HPA) for the plugins deployed by the runner using the following addition to the helm command:

--set plugins.hpa.minReplicas={minReplicas} (The default value is set to 2)
--set plugins.hpa.maxReplicas={maxReplicas} (The default value is set to 4)
--set plugins.hpa.targetCPUUtilizationPercentage={targetCPUUtilizationPercentage} (The default value is set to 60%)
--set plugins.hpa.targetMemoryUUtilizationPercentage={targetMemoryUUtilizationPercentage} (The default value is set to 60%)