Install Kerno
Learn how to install Kerno on your Kubernetes cluster
Before installing Kerno, please make sure you meet the requirements.
Sign up to Kerno
The first step is to go to app.kerno.io, sign up using your email address, and follow the onboarding instructions.
When installing Kerno for the first time, you'll be asked to create an organization.
Enter your organization's name, then click Create Organization to proceed.

Once your organization is set up, you'll be prompted to register a cluster where Kerno will run.
Enter a name for your cluster. This is how it will appear inside Kerno.
Then click Register Cluster to continue.

IMPORTANT
Your <API-key> is automatically generated when you install Kerno on a new Cluster. You will have one API Key per cluster. You'll need these key to update and delete Kerno. So make sure you store then securely
Install Kerno Using Helm
You can install Kerno using the official Helm chart.
Step 1. Add the Helm Repository
helm repo add kerno https://kernoio.github.io/helm-charts
Step 2. Install the chart
Replace <KERNO_API_KEY>
with your API key:
helm install kerno-agent kerno/agent \
--create-namespace \
--namespace kerno \
--set apiKey="<KERNO_API_KEY>"
Step 3. Connect your Object Storage
Kerno stores sensitive data, including logs and traces, inside your AWS accounts and GCP projects within an Object Store. Below are the steps to create and configure access to an object storage resource.
Step 1. Create an S3 Bucket
Create a bucket in S3 and note the name. This bucket will be used to store Kerno logs and traces.
Step 2. Set Up IAM Role for EKS Access
Create an IAM role that your EKS cluster can assume via its OIDC provider:
Trusted Entity Type: Web Identity
Identity Provider: Use your cluster's OIDC URL
Audience:
sts.amazonaws.com
Condition:
Key:
<oidc-url>:sub
Operator:
StringLike
Value:
system:serviceaccount:kerno:*
Trust Policy Example
Replace placeholders with your values:
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Principal": {
"Federated": "arn:aws:iam::<account-id>:oidc-provider/<oidc-provider-url-https-prefix-removed>"
},
"Action": "sts:AssumeRoleWithWebIdentity",
"Condition": {
"StringLike": {
"<oidc-provider-url>:sub": "system:serviceaccount:kerno:*"
},
"StringEquals": {
"<oidc-provider-url>:aud": "sts.amazonaws.com"
}
}
}
]
}
Step 3. Attach Permissions to the IAM Role
Attach an inline policy granting access to the bucket:
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": ["s3:*"],
"Resource": [
"arn:aws:s3:::<bucket-name>",
"arn:aws:s3:::<bucket-name>/*"
]
}
]
}
Step 4. Update the Bucket Policy
Allow the IAM role access to the bucket using the role arn from step 2:
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Principal": {
"AWS": "<role-arn>"
},
"Action": "s3:*",
"Resource": [
"arn:aws:s3:::<bucket-name>",
"arn:aws:s3:::<bucket-name>/*"
]
}
]
}
Step 5. Update values.yaml
Set the following values in your values.yaml
:
cloud: AWS
bucketName: <bucket-name>
serviceAccountAnnotations:
eks.amazonaws.com/role-arn: <role-arn>
replacing <bucket-name>
and <role-arn>
.
An example can be found in examples/aws-values.yaml
.
Step 6. Install the Chart Using Your Config
helm install kerno-agent kerno/agent \
--create-namespace \
--namespace kerno \
-f path/to/values.yaml
IMPORTANT
Commit your values.yaml
file to version control so it can be reused during upgrades.
Make sure to keep your API key secret by storing it securely outside of the file.
Install Kerno Using Docker
Use the Kerno Docker to automate the installation process. The key benefit of this method is that Kerno will automatically provision the required object storage and apply the correct roles and access policies for you.
Prerequisites
Kubernetes RBAC Permissions
You'll need permission to deploy the following Kubernetes objects.
Namespace
Deployment
DaemonSet
ConfigMap
Secret
Service
ServiceAccount
ClusterRole
ClusterRoleBinding
Cloud Permissions
You'll need the following permission for your cloud account:
IAM Role
Role Policy
Bucket
Bucket Policy
Install on AWS
Step 1. Log into AWS with admin privileges.
OIDC (OpenID Connect) Provider
An OIDC Provider is required for your EKS cluster to support Kerno’s functionality. This is typically configured for EKS clusters. Since the OIDC Provider can be used for multiple services, including Kerno, we recommend you manage it within your cluster setup.
Depending on whether you have set your AWS credentials as environment variables or in the .aws/credentials
Use one of the following methods:
Step 2 [Option 1]. Install Using AWS Config File
Set your AWS Credentials as environment variables, add the missing values to the script, and run the script.

Step 2 [Option 2]. Using Environment Variables
Set your AWS Credentials as environment variables, add the missing values to the script, and run the script.

Install on GCP
Step 1. Log into GCP with admin privileges.
Step 2. Add the missing values to the script, and run the script.

If you encounter issues or have questions, message us on Slack, and we’ll gladly help.
Upgrade Kerno
Uninstall Kerno using the same method you used to install it (e.g., Helm, Docker)
helm upgrade --install kerno-agent kerno-dev/agent
--create-namespace
--namespace kerno
--set apiKey="<KERNO_API_KEY>"
--atomic
Uninstall Kerno
Uninstall Kerno using the same method you used to install it (e.g., Helm, Docker). Just run the corresponding uninstall command.
helm uninstall kerno-agent -n kerno
Troubleshoot your Installation.
These are some issues you might encounter when installing Kerno and how you can fix them.
Last updated