Helm Chart 参考
Kubetail Helm Chart 会将完整的 Kubetail 栈部署到 Kubernetes 集群中。它发布在我们的 Helm chart 仓库 https://kubetail-org.github.io/helm-charts/ 中,源代码位于 kubetail-org/helm-charts 仓库下的 charts/kubetail。
该 chart 会部署 3 个组件:
| Component | Kind | Description |
|---|---|---|
| Dashboard | Deployment | Web UI 和后端 API |
| Cluster API | Deployment | 用于集群操作的 GraphQL API |
| Cluster Agent | DaemonSet | 读取容器日志文件的逐节点 agent |
添加 kubetail Helm 仓库:
helm repo add kubetail https://kubetail-org.github.io/helm-charts/将 chart 安装到专用 namespace 中:
helm install kubetail kubetail/kubetail --namespace kubetail-system --create-namespace默认情况下,chart 会自动生成所需的 secret(KUBETAIL_DASHBOARD_SESSION_SECRET),并将其存储在 Kubernetes Secret 中,以便在升级后保留。
拉取最新的 chart index,然后升级该 release:
helm repo update kubetailhelm upgrade kubetail kubetail/kubetail --namespace kubetail-systemhelm uninstall kubetail --namespace kubetail-systemValues
Section titled “Values”| Parameter | Type | Default | Description |
|---|---|---|---|
fullnameOverride | string | null | 覆盖 chart 计算出的 fullname |
nameOverride | string | null | 覆盖 chart 名称 |
namespaceOverride | string | null | 覆盖 release 的 namespace |
General
Section titled “General”| Parameter | Type | Default | Description |
|---|---|---|---|
kubetail.allowedNamespaces | array | [] | 将所有组件限制在这些 namespace 内 |
kubetail.secrets.KUBETAIL_DASHBOARD_SESSION_SECRET | string | null | Base64 编码的 dashboard session secret(为 null 时自动生成) |
kubetail.global.annotations | map | {} | 添加到所有资源的额外 annotation |
kubetail.global.labels | map | {} | 添加到所有资源的额外 label |
Dashboard
Section titled “Dashboard”| Parameter | Type | Default | Description |
|---|---|---|---|
kubetail.dashboard.enabled | bool | true | 启用或禁用 Dashboard 组件 |
kubetail.dashboard.authMode | string | "auto" | 认证模式 (auto, token) |
kubetail.dashboard.runtimeConfig | map | see values.yaml | Dashboard 运行时配置(参见 Dashboard 参考) |
kubetail.dashboard.image.registry | string | "ghcr.io" | 镜像仓库域名 |
kubetail.dashboard.image.repository | string | "kubetail-org/kubetail-dashboard" | 镜像仓库 |
kubetail.dashboard.image.tag | string | see values.yaml | 镜像标签 |
kubetail.dashboard.image.digest | string | null | 用 digest 覆盖镜像标签 |
kubetail.dashboard.image.pullPolicy | string | "IfNotPresent" | 镜像拉取策略 |
kubetail.dashboard.container.name | string | "kubetail-dashboard" | 容器名称 |
kubetail.dashboard.container.extraEnv | array | [] | 额外环境变量 |
kubetail.dashboard.container.extraEnvFrom | array | [] | 额外的 envFrom 来源 |
kubetail.dashboard.container.securityContext | map | see values.yaml | 容器 security context |
kubetail.dashboard.container.resources | map | {} | CPU/内存 requests 与 limits |
kubetail.dashboard.podTemplate.annotations | map | {} | 额外 Pod annotation |
kubetail.dashboard.podTemplate.labels | map | {} | 额外 Pod label |
kubetail.dashboard.podTemplate.extraContainers | array | [] | 额外 sidecar 容器 |
kubetail.dashboard.podTemplate.securityContext | map | {} | Pod security context |
kubetail.dashboard.podTemplate.affinity | map | {} | Pod affinity 规则 |
kubetail.dashboard.podTemplate.nodeSelector | map | {} | Node selector |
kubetail.dashboard.podTemplate.tolerations | array | [] | Pod toleration |
kubetail.dashboard.configMap.name | string | null | 覆盖 ConfigMap 名称 |
kubetail.dashboard.configMap.annotations | map | {} | 额外 ConfigMap annotation |
kubetail.dashboard.configMap.labels | map | {} | 额外 ConfigMap label |
kubetail.dashboard.deployment.name | string | null | 覆盖 Deployment 名称 |
kubetail.dashboard.deployment.annotations | map | {} | 额外 Deployment annotation |
kubetail.dashboard.deployment.labels | map | {} | 额外 Deployment label |
kubetail.dashboard.deployment.replicas | int | 1 | 副本数量 |
kubetail.dashboard.deployment.revisionHistoryLimit | int | 5 | 修订历史上限 |
kubetail.dashboard.deployment.strategy | map | {type: RollingUpdate} | Deployment 更新策略 |
kubetail.dashboard.ingress.enabled | bool | false | 创建 Ingress 资源 |
kubetail.dashboard.ingress.name | string | null | 覆盖 Ingress 名称 |
kubetail.dashboard.ingress.annotations | map | {} | 额外 Ingress annotation |
kubetail.dashboard.ingress.labels | map | {} | 额外 Ingress label |
kubetail.dashboard.ingress.rules | array | [] | Ingress 规则 |
kubetail.dashboard.ingress.tls | array | [] | Ingress TLS 配置 |
kubetail.dashboard.ingress.className | string | null | Ingress class 名称 |
kubetail.dashboard.rbac.name | string | null | 覆盖 RBAC 资源名称 |
kubetail.dashboard.rbac.annotations | map | {} | 额外 RBAC annotation |
kubetail.dashboard.rbac.labels | map | {} | 额外 RBAC label |
kubetail.dashboard.secret.enabled | bool | true | 创建 Secret 资源 |
kubetail.dashboard.secret.name | string | null | 覆盖 Secret 名称 |
kubetail.dashboard.secret.annotations | map | {} | 额外 Secret annotation |
kubetail.dashboard.secret.labels | map | {} | 额外 Secret label |
kubetail.dashboard.service.name | string | null | 覆盖 Service 名称 |
kubetail.dashboard.service.annotations | map | {} | 额外 Service annotation |
kubetail.dashboard.service.labels | map | {} | 额外 Service label |
kubetail.dashboard.service.ports.http | int | 8080 | Service HTTP 端口 |
kubetail.dashboard.serviceAccount.name | string | null | 覆盖 ServiceAccount 名称 |
kubetail.dashboard.serviceAccount.annotations | map | {} | 额外 ServiceAccount annotation |
kubetail.dashboard.serviceAccount.labels | map | {} | 额外 ServiceAccount label |
Cluster API
Section titled “Cluster API”| Parameter | Type | Default | Description |
|---|---|---|---|
kubetail.clusterAPI.enabled | bool | true | 启用或禁用 Cluster API 组件 |
kubetail.clusterAPI.runtimeConfig | map | see values.yaml | Cluster API 运行时配置(参见 Cluster API 参考) |
kubetail.clusterAPI.image.registry | string | "ghcr.io" | 镜像仓库域名 |
kubetail.clusterAPI.image.repository | string | "kubetail-org/kubetail-cluster-api" | 镜像仓库 |
kubetail.clusterAPI.image.tag | string | see values.yaml | 镜像标签 |
kubetail.clusterAPI.image.digest | string | null | 用 digest 覆盖镜像标签 |
kubetail.clusterAPI.image.pullPolicy | string | "IfNotPresent" | 镜像拉取策略 |
kubetail.clusterAPI.container.name | string | "kubetail-cluster-api" | 容器名称 |
kubetail.clusterAPI.container.extraEnv | array | [] | 额外环境变量 |
kubetail.clusterAPI.container.extraEnvFrom | array | [] | 额外的 envFrom 来源 |
kubetail.clusterAPI.container.securityContext | map | see values.yaml | 容器 security context |
kubetail.clusterAPI.container.resources | map | {} | CPU/内存 requests 与 limits |
kubetail.clusterAPI.podTemplate.annotations | map | {} | 额外 Pod annotation |
kubetail.clusterAPI.podTemplate.labels | map | {} | 额外 Pod label |
kubetail.clusterAPI.podTemplate.extraContainers | array | [] | 额外 sidecar 容器 |
kubetail.clusterAPI.podTemplate.securityContext | map | {} | Pod security context |
kubetail.clusterAPI.podTemplate.affinity | map | {} | Pod affinity 规则 |
kubetail.clusterAPI.podTemplate.nodeSelector | map | {} | Node selector |
kubetail.clusterAPI.podTemplate.tolerations | array | [] | Pod toleration |
kubetail.clusterAPI.configMap.name | string | null | 覆盖 ConfigMap 名称 |
kubetail.clusterAPI.configMap.annotations | map | {} | 额外 ConfigMap annotation |
kubetail.clusterAPI.configMap.labels | map | {} | 额外 ConfigMap label |
kubetail.clusterAPI.deployment.name | string | null | 覆盖 Deployment 名称 |
kubetail.clusterAPI.deployment.annotations | map | {} | 额外 Deployment annotation |
kubetail.clusterAPI.deployment.labels | map | {} | 额外 Deployment label |
kubetail.clusterAPI.deployment.replicas | int | 1 | 副本数量 |
kubetail.clusterAPI.deployment.revisionHistoryLimit | int | 5 | 修订历史上限 |
kubetail.clusterAPI.deployment.strategy | map | {type: RollingUpdate} | Deployment 更新策略 |
kubetail.clusterAPI.rbac.name | string | null | 覆盖 RBAC 资源名称 |
kubetail.clusterAPI.rbac.annotations | map | {} | 额外 RBAC annotation |
kubetail.clusterAPI.rbac.labels | map | {} | 额外 RBAC label |
kubetail.clusterAPI.secret.enabled | bool | true | 创建 Secret 资源 |
kubetail.clusterAPI.secret.name | string | null | 覆盖 Secret 名称 |
kubetail.clusterAPI.secret.annotations | map | {} | 额外 Secret annotation |
kubetail.clusterAPI.secret.labels | map | {} | 额外 Secret label |
kubetail.clusterAPI.service.name | string | null | 覆盖 Service 名称 |
kubetail.clusterAPI.service.annotations | map | {} | 额外 Service annotation |
kubetail.clusterAPI.service.labels | map | {} | 额外 Service label |
kubetail.clusterAPI.service.ports.http | int | 8080 | Service HTTP 端口 |
kubetail.clusterAPI.serviceAccount.name | string | null | 覆盖 ServiceAccount 名称 |
kubetail.clusterAPI.serviceAccount.annotations | map | {} | 额外 ServiceAccount annotation |
kubetail.clusterAPI.serviceAccount.labels | map | {} | 额外 ServiceAccount label |
Cluster Agent
Section titled “Cluster Agent”| Parameter | Type | Default | Description |
|---|---|---|---|
kubetail.clusterAgent.enabled | bool | true | 启用或禁用 Cluster Agent 组件 |
kubetail.clusterAgent.runtimeConfig | map | see values.yaml | Cluster Agent 运行时配置(参见 Cluster Agent 参考) |
kubetail.clusterAgent.image.registry | string | "ghcr.io" | 镜像仓库域名 |
kubetail.clusterAgent.image.repository | string | "kubetail-org/kubetail-cluster-agent" | 镜像仓库 |
kubetail.clusterAgent.image.tag | string | see values.yaml | 镜像标签 |
kubetail.clusterAgent.image.digest | string | null | 用 digest 覆盖镜像标签 |
kubetail.clusterAgent.image.pullPolicy | string | "IfNotPresent" | 镜像拉取策略 |
kubetail.clusterAgent.container.name | string | "kubetail-cluster-agent" | 容器名称 |
kubetail.clusterAgent.container.extraEnv | array | [] | 额外环境变量 |
kubetail.clusterAgent.container.extraEnvFrom | array | [] | 额外的 envFrom 来源 |
kubetail.clusterAgent.container.securityContext | map | see values.yaml | 容器 security context |
kubetail.clusterAgent.container.resources | map | {} | CPU/内存 requests 与 limits |
kubetail.clusterAgent.podTemplate.annotations | map | {} | 额外 Pod annotation |
kubetail.clusterAgent.podTemplate.labels | map | {} | 额外 Pod label |
kubetail.clusterAgent.podTemplate.extraContainers | array | [] | 额外 sidecar 容器 |
kubetail.clusterAgent.podTemplate.securityContext | map | {fsGroup: 0} | Pod security context |
kubetail.clusterAgent.podTemplate.affinity | map | {} | Pod affinity 规则 |
kubetail.clusterAgent.podTemplate.nodeSelector | map | {} | Node selector |
kubetail.clusterAgent.podTemplate.tolerations | array | see values.yaml | Pod toleration(默认容忍 master/control-plane 节点) |
kubetail.clusterAgent.configMap.name | string | null | 覆盖 ConfigMap 名称 |
kubetail.clusterAgent.configMap.annotations | map | {} | 额外 ConfigMap annotation |
kubetail.clusterAgent.configMap.labels | map | {} | 额外 ConfigMap label |
kubetail.clusterAgent.daemonSet.name | string | null | 覆盖 DaemonSet 名称 |
kubetail.clusterAgent.daemonSet.annotations | map | {} | 额外 DaemonSet annotation |
kubetail.clusterAgent.daemonSet.labels | map | {} | 额外 DaemonSet label |
kubetail.clusterAgent.networkPolicy.enabled | bool | true | 创建 NetworkPolicy 资源 |
kubetail.clusterAgent.networkPolicy.name | string | null | 覆盖 NetworkPolicy 名称 |
kubetail.clusterAgent.networkPolicy.annotations | map | {} | 额外 NetworkPolicy annotation |
kubetail.clusterAgent.networkPolicy.labels | map | {} | 额外 NetworkPolicy label |
kubetail.clusterAgent.service.name | string | null | 覆盖 Service 名称 |
kubetail.clusterAgent.service.annotations | map | {} | 额外 Service annotation |
kubetail.clusterAgent.service.labels | map | {} | 额外 Service label |
kubetail.clusterAgent.service.ports.grpc | int | 50051 | Service gRPC 端口 |
kubetail.clusterAgent.serviceAccount.name | string | null | 覆盖 ServiceAccount 名称 |
kubetail.clusterAgent.serviceAccount.annotations | map | {} | 额外 ServiceAccount annotation |
kubetail.clusterAgent.serviceAccount.labels | map | {} | 额外 ServiceAccount label |