Skip to main content
Version: v0.7 🚧

安装

使用 Helm 安装

如果您拥有 Kubernetes 集群,Helm 是推荐的安装方法。

以下教程将指导您使用 Helm 安装 Karpor,这将在命名空间 karpor 中以 karpor-release 为 Release 名称安装 Chart。

先决条件

  • Helm v3+
  • Kubernetes 集群(最简单的方法是使用 kindminikube 在本地部署 Kubernetes 集群)

远程安装

首先,将 Karpor chart 仓库添加到您的本地仓库。

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

然后,您可以使用以下命令安装 Karpor 的最新版本。

helm install karpor-release kusionstack/karpor

安装

注意:直接安装此 Chart 意味着它将使用 Karpor 的 默认模板值

如果将其部署到生产集群中,或者您想要自定义 Chart 配置,如 resourcesreplicasport 等,您可以通过 --set 参数覆盖默认值。

Karpor Chart 的所有可配置参数都详细说明在 这里

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

查看所有可用版本

您可以使用以下命令查看所有可安装的 Karpor Chart 版本。

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

升级到指定版本

您可以通过 --version 指定要升级的版本。

# 升级到最新版本
helm upgrade karpor-release kusionstack/karpor

# 升级到指定版本
helm upgrade karpor-release kusionstack/karpor --version 1.2.3

本地安装

如果您在生产中连接 https://kusionstack.github.io/charts/ 有问题,您可能需要从 这里 手动下载 Chart,并在本地使用它来安装或升级 Karpor 版本。

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

卸载

卸载/删除命名空间 karpor 中的 karpor-release Helm Release:

helm uninstall karpor-release

中国镜像代理

如果你在中国、并且从官方 DockerHub 上拉取镜像时遇到困难,那么你可以使用第三方的镜像代理服务:

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

注意: 以上只是一个样例,你可以根据需要替换 registryProxy 的值。

启用 AI 功能

如果您要安装带有 AI 功能的 Karpor,包括自然语言搜索和 AI 分析,则应配置 ai-auth-tokenai-base-url 等参数,例如:

# 最少配置,默认使用 OpenAI 作为 AI Backend
helm install karpor-release kusionstack/karpor \
--set server.ai.authToken={YOUR_AI_TOKEN}

# 使用 Azure OpenAI 的样例
helm install karpor-release kusionstack/karpor \
--set server.ai.authToken={YOUR_AI_TOKEN} \
--set server.ai.baseUrl=https://{YOUR_RESOURCE_NAME}.openai.azure.com \
--set server.ai.backend=azureopenai

# 使用 Hugging Face 的样例
helm install karpor-release kusionstack/karpor \
--set server.ai.authToken={YOUR_AI_TOKEN} \
--set server.ai.model={YOUR_HUGGINGFACE_MODEL} \
--set server.ai.backend=huggingface

# 自定义配置
helm install karpor-release kusionstack/karpor \
--set server.ai.authToken={YOUR_AI_TOKEN} \
--set server.ai.baseUrl=https://api.deepseek.com \
--set server.ai.backend=openai \
--set server.ai.model=deepseek-chat \
--set server.ai.topP=0.5 \
--set server.ai.temperature=0.2

Chart 参数

以下表格列出了 Chart 的所有可配置参数及其默认值。

通用参数

类型默认值描述
namespacestring"karpor"部署的目标命名空间。
namespaceEnabledbooltrue是否生成命名空间。
registryProxystring""镜像仓库代理,将作为所有组件镜像的前缀。

全局参数

类型默认值描述
global.image.imagePullPolicystring"IfNotPresent"应用于所有 Karpor 组件的镜像拉取策略。

Karpor 服务端

Karpor 服务器组件是主要的后端服务器。它本身是一个 apiserver,同时也提供 /rest-api 来服务仪表板。

类型默认值描述
server.aiobject{"authToken":"","backend":"openai","baseUrl":"","model":"gpt-3.5-turbo","temperature":1,"topP":1}AI 配置部分。AI 分析功能需要为 [authToken, baseUrl] 赋值。
server.ai.authTokenstring""访问 AI 服务的认证令牌。
server.ai.backendstring"openai"托管 AI 模型的后端服务或平台。可用选项:
- "openai": OpenAI API(默认)
- "azureopenai": Azure OpenAI 服务
- "huggingface": Hugging Face API
如果您使用的后端与 OpenAI 兼容,则无需在此处进行任何更改。
server.ai.baseUrlstring""AI 服务的基础 URL。例如:"https://api.openai.com/v1"。
server.ai.modelstring"gpt-3.5-turbo"要使用的 AI 模型的名称或标识符。例如:"gpt-3.5-turbo"。
server.ai.temperaturefloat1AI 模型的温度参数。控制输出的随机性,较高的值(例如 1.0)使输出更随机,较低的值(例如 0.0)使输出更确定性。
server.ai.topPfloat1AI 模型的 Top-p(核采样)参数。控制采样的概率质量,较高的值导致生成内容的多样性更大(通常范围为 0 到 1)。
server.enableRbacboolfalse如果设置为 true,则启用 RBAC 授权。
server.image.repostring"kusionstack/karpor"Karpor 服务器镜像的仓库。
server.image.tagstring""Karpor 服务器镜像的标签。如果未指定,则默认为 Chart 的 appVersion。
server.namestring"karpor-server"Karpor 服务器的组件名称。
server.portint7443Karpor 服务器的端口。
server.replicasint1要运行的 Karpor 服务器 Pod 数量。
server.resourcesobject{"limits":{"cpu":"500m","ephemeral-storage":"10Gi","memory":"1Gi"},"requests":{"cpu":"250m","ephemeral-storage":"2Gi","memory":"256Mi"}}Karpor 服务器 Pod 的资源限制和请求。
server.serviceTypestring"ClusterIP"Karpor 服务器的服务类型。可用类型值为 ["ClusterIP"、"NodePort"、"LoadBalancer"]

Karpor 同步器

Karpor 同步器组件是一个独立的服务器,用于实时同步集群资源。

类型默认值描述
syncer.image.repostring"kusionstack/karpor"Karpor 同步器镜像的仓库。
syncer.image.tagstring""Karpor 同步器镜像的标签。如果未指定,则默认为 Chart 的 appVersion。
syncer.namestring"karpor-syncer"Karpor 同步器的组件名称。
syncer.portint7443Karpor 同步器的端口。
syncer.replicasint1要运行的 Karpor 同步器 Pod 数量。
syncer.resourcesobject{"limits":{"cpu":"500m","ephemeral-storage":"10Gi","memory":"1Gi"},"requests":{"cpu":"250m","ephemeral-storage":"2Gi","memory":"256Mi"}}Karpor 同步器 Pod 的资源限制和请求。

ElasticSearch

ElasticSearch 组件用于存储同步的资源数据和用户数据。

类型默认值描述
elasticsearch.image.repostring"docker.elastic.co/elasticsearch/elasticsearch"ElasticSearch 镜像的仓库。
elasticsearch.image.tagstring"8.6.2"ElasticSearch 镜像的特定标签。
elasticsearch.namestring"elasticsearch"ElasticSearch 的组件名称。
elasticsearch.portint9200ElasticSearch 的端口。
elasticsearch.replicasint1要运行的 ElasticSearch Pod 数量。
elasticsearch.resourcesobject{"limits":{"cpu":"2","ephemeral-storage":"10Gi","memory":"4Gi"},"requests":{"cpu":"2","ephemeral-storage":"10Gi","memory":"4Gi"}}Karpor ElasticSearch Pod 的资源限制和请求。

ETCD

ETCD 组件是 Karpor 服务器作为 apiserver 的存储。

类型默认值描述
etcd.image.repostring"quay.io/coreos/etcd"ETCD 镜像的仓库。
etcd.image.tagstring"v3.5.11"ETCD 镜像的特定标签。
etcd.namestring"etcd"ETCD 的组件名称。
etcd.persistence.accessModeslist["ReadWriteOnce"]卷访问模式,ReadWriteOnce 表示单节点读写访问。
etcd.persistence.sizestring"10Gi"ETCD 持久卷的大小。
etcd.portint2379ETCD 的端口。
etcd.replicasint1要运行的 ETCD Pod 数量。
etcd.resourcesobject{"limits":{"cpu":"500m","ephemeral-storage":"10Gi","memory":"1Gi"},"requests":{"cpu":"250m","ephemeral-storage":"2Gi","memory":"256Mi"}}Karpor ETCD Pod 的资源限制和请求。

任务

此一次性任务用于生成根证书和一些准备工作。

类型默认值描述
job.image.repostring"kusionstack/karpor"任务镜像的仓库。
job.image.tagstring""Karpor 镜像的标签。如果未指定,则默认为 Chart 的 appVersion。