Skip to main content
Version: v0.7 🚧

Installation

Install with Helm​

If you have a Kubernetes cluster, Helm is the recommended installation method.

The following tutorial will guide you to install Karpor using Helm, which will install the chart with the release name karpor-release in namespace karpor.

Prerequisites​

  • Helm v3+
  • A Kubernetes Cluster (The simplest way is to deploy a Kubernetes cluster locally using kind or minikube)

Remote Installation​

First, add the karpor chart repo to your local repository.

helm repo add kusionstack https://kusionstack.github.io/charts
helm repo update

Then you can use the following command to install the latest version of Karpor.

helm install karpor-release kusionstack/karpor

Install

Note that installing this chart directly means it will use the default template values for Karpor.

You may have to set your specific configurations if it is deployed into a production cluster, or you want to customize the chart configuration, such as resources, replicas, port etc.

All configurable parameters of the Karpor chart are detailed here.

helm install karpor-release kusionstack/karpor --set server.replicas=3 --set syncer.port=7654

Search all available versions​

You can use the following command to view all installable chart versions.

helm repo update
helm search repo kusionstack/karpor --versions

Upgrade specified version​

You can specify the version to be upgraded through the --version.

# Upgrade to the latest version.
helm upgrade karpor-release kusionstack/karpor

# Upgrade to the specified version.
helm upgrade karpor-release kusionstack/karpor --version 1.2.3

Local Installation​

If you have problem connecting to https://kusionstack.github.io/charts/ in production, you may need to manually download the chart from here and use it to install or upgrade locally.

git clone https://github.com/KusionStack/charts.git
helm install karpor-release charts/karpor
helm upgrade karpor-release charts/karpor

Uninstall​

To uninstall/delete the karpor-release Helm release in namespace karpor:

helm uninstall karpor-release

Image Registry Proxy for China​

If you are in China and have problem to pull image from official DockerHub, you can use the registry proxy:

helm install karpor-release kusionstack/karpor --set registryProxy=docker.m.daocloud.io

NOTE: The above is just an example, you can replace the value of registryProxy as needed.

Enable AI features​

If you are trying to install Karpor with AI features, including natural language search and AI analyze, ai-auth-token and ai-base-url should be configured, e.g.:

# At a minimum, server.ai.authToken and server.ai.baseUrl must be configured.
helm install karpor-release kusionstack/karpor \
--set server.ai.authToken=YOUR_AI_TOKEN \
--set server.ai.baseUrl=https://api.openai.com/v1

# server.ai.backend has default values `openai`, which can be overridden when necessary.
# If the backend you are using is compatible with OpenAI, then there is no need to make
# any changes here.
helm install karpor-release kusionstack/karpor \
--set server.ai.authToken=YOUR_AI_TOKEN \
--set server.ai.baseUrl=https://api.openai.com/v1 \
--set server.ai.backend=huggingface

# server.ai.model has default values `gpt-3.5-turbo`, which can be overridden when necessary.
helm install karpor-release kusionstack/karpor \
--set server.ai.authToken=YOUR_AI_TOKEN \
--set server.ai.baseUrl=https://api.openai.com/v1 \
--set server.ai.model=gpt-4o

# server.ai.topP and server.ai.temperature can also be manually modified.
helm install karpor-release kusionstack/karpor \
--set server.ai.authToken=YOUR_AI_TOKEN \
--set server.ai.baseUrl=https://api.openai.com/v1 \
--set server.ai.topP=0.5 \
--set server.ai.temperature=0.2

Chart Parameters​

The following table lists the configurable parameters of the chart and their default values.

General Parameters​

KeyTypeDefaultDescription
namespacestring"karpor"Which namespace to be deployed.
namespaceEnabledbooltrueWhether to generate namespace.
registryProxystring""Image registry proxy will be the prefix as all component image.

Global Parameters​

KeyTypeDefaultDescription
global.image.imagePullPolicystring"IfNotPresent"Image pull policy to be applied to all Karpor components.

Karpor Server​

The Karpor Server Component is main backend server. It itself is an apiserver, which also provides /rest-api to serve Dashboard.

KeyTypeDefaultDescription
server.aiobject{"authToken":"","backend":"openai","baseUrl":"","model":"gpt-3.5-turbo","temperature":1,"topP":1}AI configuration section. The AI analysis feature requires that [authToken, baseUrl] be assigned values.
server.ai.authTokenstring""Authentication token for accessing the AI service.
server.ai.backendstring"openai"Backend service or platform that the AI model is hosted on. e.g., "openai". If the backend you are using is compatible with OpenAI, then there is no need to make any changes here.
server.ai.baseUrlstring""Base URL of the AI service. e.g., "https://api.openai.com/v1".
server.ai.modelstring"gpt-3.5-turbo"Name or identifier of the AI model to be used. e.g., "gpt-3.5-turbo".
server.ai.temperaturefloat1Temperature parameter for the AI model. This controls the randomness of the output, where a higher value (e.g., 1.0) makes the output more random, and a lower value (e.g., 0.0) makes it more deterministic.
server.ai.topPfloat1Top-p (nucleus sampling) parameter for the AI model. This controls Controls the probability mass to consider for sampling, where a higher value leads to greater diversity in the generated content (typically ranging from 0 to 1)
server.enableRbacboolfalseEnable RBAC authorization if set to true.
server.image.repostring"kusionstack/karpor"Repository for Karpor server image.
server.image.tagstring""Tag for Karpor server image. Defaults to the chart's appVersion if not specified.
server.namestring"karpor-server"Component name for karpor server.
server.portint7443Port for karpor server.
server.replicasint1The number of karpor server pods to run.
server.resourcesobject{"limits":{"cpu":"500m","ephemeral-storage":"10Gi","memory":"1Gi"},"requests":{"cpu":"250m","ephemeral-storage":"2Gi","memory":"256Mi"}}Resource limits and requests for the karpor server pods.
server.serviceTypestring"ClusterIP"Service type for the karpor server. The available type values list as ["ClusterIP"、"NodePort"、"LoadBalancer"].

Karpor Syncer​

The Karpor Syncer Component is independent server to synchronize cluster resources in real-time.

KeyTypeDefaultDescription
syncer.image.repostring"kusionstack/karpor"Repository for Karpor syncer image.
syncer.image.tagstring""Tag for Karpor syncer image. Defaults to the chart's appVersion if not specified.
syncer.namestring"karpor-syncer"Component name for Karpor syncer.
syncer.portint7443Port for Karpor syncer.
syncer.replicasint1The number of karpor syncer pods to run.
syncer.resourcesobject{"limits":{"cpu":"500m","ephemeral-storage":"10Gi","memory":"1Gi"},"requests":{"cpu":"250m","ephemeral-storage":"2Gi","memory":"256Mi"}}Resource limits and requests for the karpor syncer pods.

ElasticSearch​

The ElasticSearch Component to store the synchronized resources and user data.

KeyTypeDefaultDescription
elasticsearch.image.repostring"docker.elastic.co/elasticsearch/elasticsearch"Repository for ElasticSearch image.
elasticsearch.image.tagstring"8.6.2"Specific tag for ElasticSearch image.
elasticsearch.namestring"elasticsearch"Component name for ElasticSearch.
elasticsearch.portint9200Port for ElasticSearch.
elasticsearch.replicasint1The number of ElasticSearch pods to run.
elasticsearch.resourcesobject{"limits":{"cpu":"2","ephemeral-storage":"10Gi","memory":"4Gi"},"requests":{"cpu":"2","ephemeral-storage":"10Gi","memory":"4Gi"}}Resource limits and requests for the karpor elasticsearch pods.

ETCD​

The ETCD Component is the storage of Karpor Server as apiserver.

KeyTypeDefaultDescription
etcd.image.repostring"quay.io/coreos/etcd"Repository for ETCD image.
etcd.image.tagstring"v3.5.11"Specific tag for ETCD image.
etcd.namestring"etcd"Component name for ETCD.
etcd.persistence.accessModeslist["ReadWriteOnce"]Volume access mode, ReadWriteOnce means single node read-write access
etcd.persistence.sizestring"10Gi"Size of etcd persistent volume
etcd.portint2379Port for ETCD.
etcd.replicasint1The number of etcd pods to run.
etcd.resourcesobject{"limits":{"cpu":"500m","ephemeral-storage":"10Gi","memory":"1Gi"},"requests":{"cpu":"250m","ephemeral-storage":"2Gi","memory":"256Mi"}}Resource limits and requests for the karpor etcd pods.

Job​

This one-time job is used to generate root certificates and some preliminary work.

KeyTypeDefaultDescription
job.image.repostring"kusionstack/karpor"Repository for the Job image.
job.image.tagstring""Tag for Karpor image. Defaults to the chart's appVersion if not specified.