LogoLogo
Reliability HubAPI DocsPlatform
  • Welcome to Steadybit
  • Quick Start
    • First Steps
    • Compatibility
    • Install Agent and Extensions
    • Run an Experiment
    • Deploy Example Application
  • Concepts
    • Actions
    • Discovery
    • Query Language
  • Install and Configure
    • Install Agent
      • Architecture
      • Install on Kubernetes
      • Install on Linux Hosts
      • Install using Docker Compose
      • Install on Amazon ECS
      • Extension Registration
      • Using Mutual TLS for Extensions
      • Configuration Options
      • Agent State
      • Agent API
    • Install On-Prem Platform
      • Install on Minikube
      • Advanced Agent Authentication
      • Configuration Options
      • Maintenance & Incident Support
      • Syncing Teams via OIDC Attribute
    • Manage Environments
    • Manage Teams and Users
      • Users
      • Teams
      • Permissions
    • Manage Experiment Templates
  • Use Steadybit
    • Experiments
      • Design
      • Run
      • Run History
      • Schedule
      • Variables
      • Emergency Stop
      • Share
        • Templates
        • Duplicate
        • File
      • OpenTelemetry Integration
    • Explorer
      • Landscape
      • Targets
      • Advice
    • Reporting
  • Integrate with Steadybit
    • Extensions
      • Anatomy of an Extension
      • Extension Installation
      • Extension Kits
      • Available Extensions
    • API
      • Interactive API Documentation
    • CLI
    • Badges
    • Webhooks
      • Custom Webhooks
      • Preflight Webhooks
    • Preflight Actions
    • Slack Notifications
    • Audit Log
    • Hubs
  • Troubleshooting
    • How to troubleshoot
    • Common fixes
      • Extensions
      • Agents
      • On-prem platform
Powered by GitBook

Extension Docs

  • ActionKit
  • DiscoveryKit
  • EventKit

More Resources

  • Reliability Hub
  • API Docs
On this page
  • Prerequisites
  • Installation
  • Configure Container Runtime
  • Configure custom On-Prem Platform
  • Extensions
  • Alternative: Generate Kubernetes Manifests
  • Alternative: OpenShift installation
  • Alternative: GKE Autopilot installation
  • Resource limits
  • Update

Was this helpful?

Edit on GitHub
  1. Install and Configure
  2. Install Agent

Install on Kubernetes

Last updated 1 month ago

Was this helpful?

This method will install the Steadybit Agent on your Kubernetes Cluster using . So you need to have helm installed.

Prerequisites

You must be able to access the following URLs via HTTPS (443) on your target environment:

  • https://platform.steadybit.com (Platform)

  • https://steadybit.github.io (Kubernetes helm repository)

  • https://ghcr.io and https://github.com (Container Images)

Installation

To deploy the agent to Kubernetes, you can copy the installation script from the in the SaaS platform.

Alternatively, you can update the script below with the name of your Kubernetes cluster and your agent key, which you find in the platform's .

Just run the script while connected to your Kubernetes cluster.

helm repo add steadybit https://steadybit.github.io/helm-charts
helm repo update
helm install steadybit-agent --namespace steadybit-agent \
  --create-namespace \
  --set agent.key=<replace-with-agent-key> \
  --set global.clusterName=<replace-with-cluster-name> \
  steadybit/steadybit-agent

To configure the installation, specify the values on the command line using the --set flag, or provide a YAML file with your values using the -f flag.

Configure Container Runtime

By default, the agent assumes that your cluster uses the containerd runtime. If this is not the case, you need to add--set extension-container.container.runtime=docker or cri-o.

Determine Container Runtime on a Node

In case of a managed Kubernetes service, there might be a vendor-specific method to check the container runtime. In case you have access on the kubectl, you can get the container runtime via

kubectl get nodes -o wide

Configure custom On-Prem Platform

If you are running on-prem, make sure to set the URL of the platform: --set agent.registerUrl=<your-platform-url>

Extensions

Add more Extensions

Disable Default Extensions

If you want to disable some, or all, of the default extensions, please set the following values in helm:

Alternative: Generate Kubernetes Manifests

We currently don't provide a static Kubernetes manifest, but you can generate it from the helm chart. We recommend to use the helm chart, as it is easier to update the agent and extensions.

helm repo add steadybit https://steadybit.github.io/helm-charts
helm repo update
helm template steadybit-agent --namespace steadybit-agent \
  --create-namespace \
  --set agent.key=<replace-with-agent-key> \
  --set global.clusterName=<replace-with-cluster-name> \
  steadybit/steadybit-agent

Alternative: OpenShift installation

The SecurityContextConstraints for OpenShift are included in our helm chart. You need to configure the CRI-O container runtime and we're good to go.

helm repo add steadybit https://steadybit.github.io/helm-charts
helm repo update
helm template steadybit-agent --namespace steadybit-agent \
  --create-namespace \
  --set agent.key=<replace-with-agent-key> \
  --set global.clusterName=<replace-with-cluster-name> \
  --set extension-container.container.runtime=cri-o \
  steadybit/steadybit-agent

Alternative: GKE Autopilot installation

You can install the agent and extensions on Google Kubernetes Engine Autopilot clusters (1.32.1-gke.1729000 or later). Due to restrictions by GKE host attacks won't be available.

For the container extension to work, you first need to apply a workload allow list:

kubectl apply -f - <<'EOF'
apiVersion: auto.gke.io/v1
kind: AllowlistSynchronizer
metadata:
  name: steadybit-synchronizer
spec:
  allowlistPaths:
    - Steadybit/extension-container/*
EOF
kubectl wait --for=condition=Ready allowlistsynchronizer/steadybit-synchronizer --timeout=60s

After this, you're ready to deploy the agent while specifying the cluster name and agent key.

helm repo add steadybit https://steadybit.github.io/helm-charts
helm repo update
helm upgrade --install steadybit-agent --namespace steadybit-agent \
  --create-namespace \
  --set agent.key=<replace-with-agent-key> \
  --set global.clusterName=<replace-with-cluster-name> \
  --set extension-container.container.runtime=containerd \
  --set extension-container.platform=gke-autopilot \
  --set extension-host.enabled=false \
  --set agent.registerUrl=https://platform.steadybit.com \
  steadybit/steadybit-agent

Resource limits

Keep an eye on OOMing / crash looping agents and extensions after installation. The memory usage highly depends on the number of discovered targets. We try to provide reasonable defaults, but you might need to adapt the resource limits to your use case.

For example, to increase the memory limits for the agent:

  --set agent.resources.limits.memory=1Gi

Update

To update the agent and extensions, you can use the following command:

helm repo update
helm upgrade --reuse-values steadybit-agent --namespace steadybit-agent \
  steadybit/steadybit-agent

For more configuration options have a look at our .

The column CONTAINER-RUNTIME shows you the runtime you are using. You can find further in the .

The agent's purpose is to establish a communication from the platform to your systems. However, the discovery of your systems and providing Chaos Engineering to a technology works via extensions. By default, the helm chart already installs the extensions , , and .

Further extensions can be enabled via helm values of steadybit-agent. For example, can be enabled by settingextension-postman.enabled=true. See our for a detailed list of all the configuration parameters.

Alternatively, you can also install extensions independently with their own helm charts. The installation instructions are listed in the Github repositories of the extension and can be browsed via the .

: --set extension-container.enabled=false

: --set extension-host.enabled=false

: --set extension-http.enabled=false

: --set extension-kubernetes.enabled=false

Helm
setup page
setup page
steadybit/helm-charts repository
official Kubernetes documentation
extension-container
extension-host
extension-http
extension-kubernetes
extension-postman
GitHub Repository
Reliability Hub
extension-container
extension-host
extension-http
extension-kubernetes