VM 配置文件
在 Linux VM 上,连接器会读取/etc/clicklink/config.yaml。该文件由 clicklink clctl init 写入,除非传入 --force,否则重新运行时会保留该文件。文件中未指定的键将使用下方的编译时默认值。init 不会将任何凭据写入其中:HMAC 密钥存放在 *_file 路径中,客户端证书存放在 /etc/clicklink/tls 下。
顶层键
| 键 | 默认值 | 含义 |
|---|---|---|
pcm_infra_uuid | 由 init 生成 | 此连接器部署的唯一标识符,会随每个上游请求一同发送。重复运行时会保留,包括使用 --force 的情况。请勿编辑。 |
cloud | 由 init 检测 | 此主机的云提供商标签。必填;为空时,守护进程将拒绝启动。 |
region | 由 init 检测 | 此主机的区域标签。必填;为空时,守护进程将拒绝启动。 |
namespace_prefix | ns- | 托管服务所在 Kubernetes 命名空间的前缀 (<prefix><service>) 。每个守护进程都据此推导出命名空间。 |
report_infra_meta | true | 在每次心跳时向 ClickHouse Cloud 上报受管 cluster 的名称、区域和 account。相当于图表中 cluster.reportInfraMeta 的 VM 版本。 |
token_renew.sweep_interval | 10m | executor 和抓取器检查其 access-bundle ServiceAccount 标记是否需要续订的频率。 |
token_renew.requested_ttl | 24h | 续订时请求的标记生存时间 (TTL)。API server 可能会将其限制为更低的值。 |
api | 上游 API 连接块,参见 api。 | |
scraper | 抓取器守护进程块,参见 scraper。 | |
troubleshooter | 故障排查工具守护进程块,参见 troubleshooter。 | |
executor | executor 守护进程块 (托管模式) ,参见 executor。 | |
observability | 共享日志和端口块,参见 observability。 |
instances: 部分。实例定义位于实例 registry 中。
api
| 键 | 默认值 | 含义 |
|---|---|---|
api.endpoint | 来自注册包 | 您的连接器端点:https://<subdomain>.<connector-domain>。 |
api.access_key_file | /etc/clicklink/access-key (由 init 写入) | 存储 HMAC 访问密钥的文件 (权限模式为 0600) 。 |
api.secret_key_file | /etc/clicklink/secret-key (由 init 写入) | 存储 HMAC 密钥的文件 (权限模式为 0600) 。 |
api.access_key、api.secret_key | 未设置 | 内联 HMAC 密钥,仅用于开发。init 绝不会写入它们;存放它们的文件需要与密钥文件相同的 0600 保护。若两种形态同时设置,守护进程会拒绝该文件。 |
api.tls.enabled | true | 在 API 连接中出示 mTLS 客户端证书。 |
api.tls.cert_file | /etc/clicklink/tls/client.crt | mTLS 客户端叶证书;续订时守护进程会重写它。 |
api.tls.key_file | /etc/clicklink/tls/client.key | mTLS 客户端私钥。 |
api.tls.ca_file | /etc/clicklink/tls/ca.crt | 用于验证服务器的额外 CA 证书链,会追加到系统根证书中;init 会将注册包中的证书链安装到此处。 |
api.retry.max_retries | 5 | 每个 API 请求的重试次数。 |
api.retry.initial_delay | 1s | 首次重试的退避延迟。 |
api.retry.max_delay | 30s | 退避延迟上限。 |
api.retry.jitter_factor | 0.25 | 应用于退避延迟的随机抖动。 |
实例 registry
实例保存在/var/lib/clicklink/instances.yaml 中,这是一个以名称为键的顶层 instances: 映射。init 会初始化它,executor 负责维护;抓取器会监视该文件,因此编辑后无需重启即可生效。每个条目描述一个 ClickHouse 原生协议目标:
| 键 | 默认值 | 含义 |
|---|---|---|
host | ClickHouse 原生监听端点的主机名或 IP 地址。 | |
port | 原生协议端口 (启用 TLS 时通常为 9440,明文连接时为 9000) 。 | |
database | 连接器会话默认使用的数据库。 | |
secure | false | 在原生连接中启用 TLS。 |
max_open_conns | 未设置 | 此实例的打开连接数上限。 |
max_idle_conns | 未设置 | 此实例的空闲连接池连接数上限。 |
namespace | 实例所在的 Kubernetes 命名空间,用于限定故障排查工具读取 Kubernetes 资源的范围。 | |
cluster | default | 用于分布式查询的 ClickHouse 集群名称。 |
scraper
| 键 | 默认值 | 含义 |
|---|---|---|
scraper.enabled | false (init 会写入 true) | 运行抓取器守护进程。 |
scraper.labels.platform | 注入到每个导出指标中的标记。启用抓取器时必填。 | |
scraper.labels.env | 环境标记,例如 production。必填。 | |
scraper.labels.region | 区域标记。必填。 | |
scraper.scrape.interval | 2m | 抓取各实例的频率。 |
scraper.scrape.timeout | 30s | 单次抓取的查询超时时间。必须短于 interval。 |
scraper.scrape.max_scrape_window | 30m | 在未持久化游标时,首次抓取可回溯的时间范围。 |
scraper.scrape.grace_period | 35s | 每个抓取时间窗口的结束时间相对当前时刻延后多久,以免遗漏延迟写入的行。 |
scraper.scrape.tables | 见下文 | 每个实例抓取的系统表。默认集合为 metric_log、asynchronous_metric_log、tables、warnings、server_settings。特意排除 query_log,因此默认情况下原始 SQL 文本不会离开您的安全边界。 |
scraper.buffer.path | /var/lib/clicklink/buffer | 连接器端点不可访问时,用于确保至少一次交付的磁盘缓冲区。 |
scraper.buffer.retention | 168h | 缓冲数据的最长保留时间。 |
scraper.buffer.max_size_mb | 1024 | 缓冲区大小上限 (MB) 。 |
scraper.buffer.max_segments | 0 (无限制) | 磁盘上缓冲分段文件数量的上限。 |
scraper.sender.bandwidth_limit_mb | 1.0 | 上传速率上限 (MB/s) 。 |
scraper.instance_sync.interval | 0 (30s) | 抓取器向 ClickHouse Cloud 上报各已注册实例 ClickHouseCluster 状态的频率。 |
scraper.backup_sync.interval | 0 (30s) | 抓取器向 ClickHouse Cloud 上报 Backup 状态的频率。 |
scraper.observability.health_port | 8082 | 抓取器健康状况与指标端口。 |
scraper.access_directory | /etc/clicklink/access/scraper | 抓取器各实例访问包的根目录。 |
故障排查工具
| 键 | 默认值 | 含义 |
|---|---|---|
troubleshooter.enabled | false (init 会写入 true) | 运行故障排查器守护进程。 |
troubleshooter.poll_interval | 5s | 会话状态轮询时间间隔。 |
troubleshooter.command_timeout | 60s | 单个命令的执行超时。 |
troubleshooter.session_timeout | 4h | 默认支持会话时长。 |
troubleshooter.session_file_path | /var/lib/clicklink/session.json | 会话状态文件,与 clicklink clctl troubleshoot session 命令共用。 |
troubleshooter.access_directory | /etc/clicklink/access/troubleshooter | 故障排查器按实例划分的访问包根目录。 |
troubleshooter.allowed_tables | 参见默认表允许列表 | 故障排查器可执行 SELECT 查询的系统表。条目必须为 schema.table 格式。如果列出了 query_log 或 text_log,守护进程将拒绝启动。 |
troubleshooter.max_open_conns | 5 | 打开的 ClickHouse 连接数上限。 |
troubleshooter.max_idle_conns | 5 | 连接池中空闲连接数上限。 |
troubleshooter.redaction.workers | 4 | 并行脱敏工作线程数。 |
troubleshooter.redaction.patterns_file | /etc/clicklink/redaction-patterns.yaml | 客户可编辑的脱敏模式;如果文件存在但无效,守护进程将拒绝启动。 |
troubleshooter.redaction.metrics_per_pattern | false | 为每个模式输出匹配计数器指标。 |
troubleshooter.redaction.metrics_per_pattern_cap | 50 | 每模式指标中不同模式名称的数量上限。 |
troubleshooter.audit_log.path | /var/log/clicklink/troubleshoot-audit.log | 仅追加的 NDJSON 审计日志,记录每个已接受或被阻止的命令。 |
troubleshooter.audit_log.max_size_mb | 128 | 活动日志文件超过此大小时进行轮转。 |
troubleshooter.audit_log.max_files | 5 | 保留的轮转日志文件数。 |
troubleshooter.audit_log.max_age | 168h | 早于此时间的轮转日志文件将被清理。 |
troubleshooter.gateway.enabled | false | 提供会话网关服务 (通过 OIDC 支持会话) 。 |
troubleshooter.gateway.listen_addr | 无 (init 会写入 ":8443") | 网关监听地址。启用网关时必需。 |
troubleshooter.gateway.audience | 无 (init 会写入 clicklink-clctl) | 操作员标记中必需的受众声明。启用网关时必需。 |
troubleshooter.gateway.required_hosted_domain | "" | 可选的托管域声明限制;在查询允许列表前,网关会拒绝来自该域外的标记。 |
troubleshooter.gateway.allowed_operators_file | /etc/clicklink/allowed-operators.txt (由 init 写入) | 以换行符分隔的操作员电子邮件允许列表。为空表示不允许任何人访问。启用网关时必需;缺少该文件时守护进程将拒绝启动。 |
troubleshooter.gateway.require_verified_email | true | 要求操作员标记包含 email_verified 声明。仅在设置了 jwks_uri 和 issuer 时,false 才会生效。 |
troubleshooter.gateway.rate_limit_per_minute | 0 (已禁用) | 每位操作员的请求速率限制。 |
troubleshooter.gateway.handler_timeout | 15s | 服务器端请求超时。 |
troubleshooter.gateway.jwks_uri | "" | 非 Google 身份提供商的 JWKS 端点;为空时使用 Google 的端点。 |
troubleshooter.gateway.issuer | "" | 设置 jwks_uri 时要固定的签发方声明。 |
troubleshooter.gateway.tls.enabled | false (启用支持会话时,init 会在 VM 上写入 true) | 通过 TLS 提供网关服务。守护进程会在证书不存在时生成自签名证书;操作员需固定其指纹。 |
troubleshooter.gateway.tls.cert_file | /var/lib/clicklink/gateway/tls/server.crt | 网关服务证书。 |
troubleshooter.gateway.tls.key_file | /var/lib/clicklink/gateway/tls/server.key | 网关服务私钥。 |
troubleshooter.gateway.tls.ca_file | "" | 操作员客户端证书必须链接到的 CA。设置后,将在 OIDC bearer 之上要求 mTLS。 |
troubleshooter.gateway.tls.self_signed_dns_names | [] (init 会预填充主机名) | 自签名证书的 SAN;可解析为 IP 地址的条目将成为 IP SAN。 |
executor
executor 以托管模式运行。init --managed 会写入 enabled: true 以及 cluster 身份标识;其余项均使用默认值。
| Key | Default | 含义 |
|---|---|---|
executor.enabled | false (init --managed 会写入 true) | 运行 executor daemon。 |
executor.cluster.name | 由 init 写入 | 该 executor 所管理的那个 EKS cluster 的名称。启用 executor 时必填。 |
executor.cluster.region | 由 init 写入 | 该 cluster 所在的 AWS 区域。必填。 |
executor.cluster.account_id | 由 init 写入 | 该 cluster 所属的 AWS 账户。必填。 |
executor.cluster.kubeconfig_path | 未设置 | executor 用于认证的 kubeconfig。未设置时,所有 service 命令都会基于 /etc/clicklink/access/executor 下的访问包运行。 |
executor.cluster.in_cluster | false | 以 Pod 自身的 ServiceAccount 进行认证,而不使用 kubeconfig;这是 Kubernetes 安装方式的形态,与 kubeconfig_path 互斥。 |
executor.cluster.delete_instance_data.enabled | false | 在不带 --delete-data 的情况下,clicklink clctl executor teardown 是否删除已退役 service 的数据。executor daemon 本身不会删除任何数据。 |
executor.target_cluster | executor.cluster.name | inbound 命令分发到的 cluster。请勿设置;填写任何其他值都会导致启动失败。 |
executor.poll_interval | 5m | poll interval。必须为正值。 |
executor.sync_interval | 30s | 从 cluster 刷新 service status 的频率。必须为正值。 |
executor.stop_wait_timeout | 8m | 删除操作在重试前等待服务器停止的时长。 |
executor.create_retry_horizon | 30m | 创建操作的重试时长,从其最后一次进度上报开始计算。 |
executor.delete_retry_horizon | 2h | 删除操作的重试时长,从其最后一次进度上报开始计算。 |
executor.db_path | /var/lib/clicklink/executor.db | 本地命令数据库。 |
executor.api_port | 9999 | 本地 API 端口,仅绑定到回环地址。 |
executor.observability.health_port | 8086 | executor 健康状况与指标端口。 |
executor.cluster 是单个映射:每个 executor 只对应一个 cluster。若配置中只有一个条目的旧式 clusters: 列表且不存在 cluster: 映射,加载器会将其折叠为 cluster。在 executor 已启用的情况下,如果列表包含多个条目,或列表与 cluster: 键同时存在,加载器将拒绝加载。
可观测性
| 键 | 默认值 | 含义 |
|---|---|---|
observability.enabled | true | 提供健康检查和指标端点。 |
observability.log_level | info | 日志级别。 |
observability.health_port | 8080 | 共享健康检查端口的基准值。 |
/livez (返回 JSON 状态请求正文) 、/readyz、/healthz 和 /metrics;不存在单独的指标端口。各组件的 observability 块会在这些基础配置之上进行覆盖:抓取器使用 8082,故障排查工具使用 8084,执行器使用 8086,网关启用时则监听 8443。旧版配置中的 metrics_port 键仍可加载,但不会绑定任何内容。
默认表允许列表
故障排查器的默认allowed_tables 集合,与图表中 troubleshooter.allowedTables 的默认值相同:
system.build_options system.clusters system.columns
system.databases system.tables system.parts
system.parts_columns system.parts_summary system.detached_parts
system.processes system.merges system.mutations
system.replicas system.replication_queue
system.metrics system.events system.asynchronous_metrics
system.disks system.storage_policies
system.settings system.settings_profiles
system.settings_profile_elements
system.functions system.formats system.table_engines
system.users system.roles system.grants
Helm 图表配置值
在 Kubernetes 中,连接器通过clicklink-connector Helm 图表的配置值进行配置。clicklink clctl init 会生成一个 clicklink-values.yaml 覆盖文件,其中已填入以下所有内容;除非传入 --force,否则在重复运行时会保留该文件。下表列出了图表的默认值。每个组件都提供标准工作负载配置项 (resources、nodeSelector、tolerations、affinity、serviceAccount.annotations、env) ,其默认值均为空,因此不在各表中重复列出。
顶层键
| 键 | 默认值 | 含义 |
|---|---|---|
imagePullSecrets | [] | 所有组件共享的镜像拉取 Secret。 |
instances | {} | 由你自行运行的 ClickHouse 实例注册表,字段与 VM 实例注册表相同,会渲染到 clicklink-instance-registry ConfigMap 中。当 executor.enabled 为 true 时必须为空,否则渲染失败。 |
podSecurityContext | 非 root,uid 65532,RuntimeDefault seccomp | 所有组件共享的 Pod 安全上下文。 |
securityContext | 禁止特权提升、根文件系统只读、丢弃所有能力 | 所有组件共享的容器安全上下文。 |
serviceMonitor.enabled | false | 为各组件的 Service 渲染 Prometheus Operator 的 ServiceMonitor,其形态由 namespace、interval (30s) 、scrapeTimeout (10s) 和 labels 决定。 |
externalSecrets.enabled | false | 通过 External Secrets Operator 生成 mTLS、HMAC 和访问包 Secret,而不使用预先创建的 Secret。远程存储及其键由 secretStoreRef、refreshInterval (1h) 、mtlsRemoteKey、hmacRemoteKey 和 accessBundles 指定。 |
集群
| 键 | 默认值 | 含义 |
|---|---|---|
cluster.pcmInfraUuid | "" (由 init 填写) | 此连接器部署的唯一标识符。启用任一组件时必须提供;重新运行时会保留。 |
cluster.region | "" (由 init 填写) | 区域标签。必填。 |
cluster.cloud | "" (由 init 填写) | 云提供商标签。必填。 |
cluster.namespacePrefix | ns- | 托管服务所在 Kubernetes 命名空间的前缀 (<prefix><service>) 。 |
cluster.reportInfraMeta | true | 在每次心跳时向 ClickHouse Cloud 上报受管集群的名称、区域和账户,用于问题分诊。设为 false 可选择不上报。 |
image
| 键 | 默认值 | 含义 |
|---|---|---|
image.repository | 已在发布的 图表 中预先设置 | Connector 镜像仓库。发布的 图表 指向公网 registry 中的镜像 (支持多架构,且已通过 cosign 签名) ;仅在需要覆盖时设置,例如使用网络边界内的 mirror。可使用 helm show values 查看发布的值。 |
image.tag | "" (跟随 图表 的 appVersion;init 固定命令行客户端版本) | 镜像标签。 |
image.pullPolicy | IfNotPresent | Kubernetes 镜像拉取策略。 |
api
| 键 | 默认值 | 含义 |
|---|---|---|
api.endpoint | "" (由 init 填充) | 你的连接器端点,供所有组件共用。 |
api.tls.enabled | true | 在 API 连接中提供 mTLS 客户端证书。 |
api.tls.caFile | "" (系统根证书) | 用于服务器验证的 CA,会附加到系统根证书中。当端点使用由私有 CA 签发的证书时,将其设置为 /etc/clicklink/secrets/mtls/ca.crt (或使用 --api-private-ca 重新运行 init) 。 |
密钥
该 图表 使用预先创建的 Secret;init 会在安装前创建这些 Secret。
| 键 | 默认值 | 含义 |
|---|---|---|
secrets.mtlsSecretName | clicklink-mtls | 包含 mTLS 客户端私钥、证书和 CA 链的 kubernetes.io/tls Secret。 |
secrets.hmacSecretName | clicklink-hmac | 包含用于请求签名的 access-key 和 secret-key 的 Opaque Secret。 |
secrets.mtlsWriteback | true | 允许守护进程将自动续订的 mTLS 叶证书写回 mTLS Secret。这会为组件的 ServiceAccount 授予对该指定名称 Secret 的 update 权限;否则,续订后的证书将没有可持久化存储的位置。当 externalSecrets.enabled 为 true 时该项被忽略。 |
scraper
| 键 | 默认值 | 含义 |
|---|---|---|
scraper.enabled | false (init 会写入 true) | 部署抓取器。 |
scraper.replicaCount | 1 | 抓取器副本数。 |
scraper.logLevel | info | 日志级别。 |
scraper.ports.health | 8082 | 健康状况与指标端口。 |
scraper.labels.platform、scraper.labels.env、scraper.labels.region | "" | 注入到每个输出指标中的标记。启用抓取器时,这三个标记均为必填;否则 图表 会在渲染时报错。 |
scraper.config | {} | 透传上文未涵盖的任意 scraper 配置键 (如抓取时间间隔、缓冲区和发送器等;schema 与 VM scraper 块相同) 。 |
scraper.bufferSizeLimit | 2Gi | 抓取器临时卷的容量上限;抓取器不保留持久化磁盘状态。 |
scraper.rbac.extraSecretNames | [] | 抓取器的 ServiceAccount 可执行 get 操作的额外 Secret 名称,仅支持精确名称。 |
scraper.accessBundles | {} | 按实例名称索引的每实例访问包,每个访问包包含 secretName 和 serviceAccountName。挂载至 /etc/clicklink/access/scraper/<instance>/;由 clicklink clctl scraper access provision --target helm 创建。 |
故障排查工具
| 键 | 默认值 | 含义 |
|---|---|---|
troubleshooter.enabled | false (init 会写入 true) | 部署故障排查工具 (单副本 StatefulSet) 。 |
troubleshooter.logLevel | info | 日志级别。 |
troubleshooter.ports.health | 8084 | 健康状况与指标端口。 |
troubleshooter.sessionTimeout | 4h | 默认支持会话时长。 |
troubleshooter.allowedTables | 默认表允许列表 | 故障排查工具的 ClickHouse 用户可执行 SELECT 查询的表。这是需要在覆盖配置中调整的安全审查范围。如果列出了 query_log 或 text_log,图表将拒绝渲染,daemon 也将拒绝启动。 |
troubleshooter.auditLog.path | /var/log/clicklink/troubleshoot-audit.log | 审计日志路径,位于状态卷上,因此记录可在 pod (容器组) 重新调度后保留。 |
troubleshooter.auditLog.maxSizeMb | 128 | 超过此大小时旋转。 |
troubleshooter.auditLog.maxFiles | 5 | 保留的轮转文件数。 |
troubleshooter.auditLog.maxAge | 168h | 早于此时间的轮转文件会被清理。 |
troubleshooter.redaction.workers | 4 | 并行脱敏工作线程数。 |
troubleshooter.redaction.patternsConfigMap | "" | 包含自定义模式的 ConfigMap 名称,其 redaction-patterns.yaml 键存储自定义模式;图表 会将其挂载到 /etc/clicklink/redaction-patterns.yaml。为空时,仅应用内置模式。 |
troubleshooter.redaction.metricsPerPattern | false | 为每种模式导出匹配计数器指标。 |
troubleshooter.redaction.metricsPerPatternCap | 50 | 每种模式指标中不同模式名称的数量上限。 |
troubleshooter.config | {} | 透传上方未涵盖的任何 troubleshooter 配置键 (轮询间隔、命令超时、连接上限等) 。 |
troubleshooter.rbac.extraSecretNames | [] | 故障排查工具的 ServiceAccount 可执行 get 操作的额外 Secret 名称,仅支持精确名称。 |
troubleshooter.accessBundles | {} | 按实例配置的访问包,结构与 scraper.accessBundles 相同,挂载到 /etc/clicklink/access/troubleshooter/<instance>/。 |
executor
托管模式下的 executor:运行在 PersistentVolumeClaim 之上的单副本 Deployment。init --managed 会将其预置为启用状态,并填入 集群身份。
| Key | Default | Meaning |
|---|---|---|
executor.enabled | false (init --managed 写入 true) | 部署 executor。 |
executor.logLevel | info | 日志级别。 |
executor.pollInterval | 30s | 轮询间隔。 |
executor.syncInterval | 30s | 从 集群刷新 service 状态的频率。 |
executor.apiPort | 9999 | 本地 API 端口。在 pod (容器组) 内绑定到 127.0.0.1,不通过 Service 对外暴露;可通过 kubectl port-forward 访问。 |
executor.ports.health | 8086 | 健康状况与指标端口。 |
executor.cluster.name | "" (由 init 填入) | 该 executor 所管理的那个 EKS cluster 的名称。启用 executor 时必填。 |
executor.cluster.region | "" (由 init 填入) | 该 集群所在的 AWS 区域。必填。 |
executor.cluster.accountId | "" (由 init 填入) | 该 集群所属的 AWS 账户。必填;同时也接受蛇形命名的 account_id 写法。 |
executor.cluster.inCluster | false (init 写入 true) | 以 pod (容器组) 的 ServiceAccount 身份进行认证,这正是 Kubernetes 安装形态的特点;pod (容器组) 内不存在访问包。 |
executor.cluster.delete_instance_data.enabled | false | 在不带 --delete-data 的情况下,clicklink clctl executor teardown 是否删除已下线 service 的数据。init 不会设置该项。其他按集群划分的 key 均以二进制程序使用的蛇形命名原样透传。 |
executor.targetCluster | "" (由 cluster.name 推导) | inbound 命令分发到的 集群。请勿设置;取值若与 cluster.name 不一致,渲染时会失败。 |
executor.config | {} | 用于透传上文未涵盖的任意 executor config key,例如 VM executor 区块中的重试时限。 |
executor.platformBundleSecret | clicklink-platform-bundle | 保存平台审批 bundle 的 secret,以只读方式挂载在 /etc/clicklink/access/executor/_platform;由 clicklink clctl platform approve --secret-namespace 写入。该挂载为可选项,因此 pod (容器组) 在首次审批之前即可启动。留空则禁用该挂载。 |
executor.serviceAccount.create | false | 图表 是否创建 executor 的 ServiceAccount。默认关闭:init --managed 会在 图表 之外按固定名称授予 executor 的 RBAC,图表 只负责绑定。 |
executor.serviceAccount.name | pcm-executor | executor 运行时使用的 ServiceAccount。当 create 为 false 时必填。 |
executor.persistence.enabled | true | 使用 PersistentVolumeClaim 承载 /var/lib/clicklink (命令数据库 与 实例 registry) 。 |
executor.persistence.storageClass | "" (集群 默认值) | 该 声明 使用的存储类;init 会根据 --storage-class 或检测到的默认值填入。 |
executor.persistence.size | 5Gi | 声明 大小。 |
executor.persistence.accessModes | [ReadWriteOnce] | 声明 的 access mode。 |
executor.cluster 是单个映射:每个 executor 只对应一个 集群。使用 clusters 列表会导致渲染失败。
持久化
| 键 | 默认值 | 含义 |
|---|---|---|
persistence.enabled | true | 使用 PersistentVolumeClaim 持久化故障排查器的状态目录,确保会话状态和审计记录在重启后仍会保留。 |
persistence.storageClass | "" (集群默认值) | 此声明使用的存储类;init 会根据 --storage-class 或检测到的默认值进行填充。 |
persistence.size | 5Gi | 声明的大小。 |
persistence.accessModes | [ReadWriteOnce] | 声明的访问模式。 |
clctl.gateway
用于支持会话的会话网关。| 键 | 默认值 | 含义 |
|---|---|---|
clctl.gateway.enabled | false | 在 故障排查工具 中提供会话网关。 |
clctl.gateway.listenAddr | ":8443" | pod (容器组) 本地监听地址。 |
clctl.gateway.port | 8443 | 通过 故障排查工具 Service 和入口公开的容器端口;与 listenAddr 中的端口一致。 |
clctl.gateway.audience | clicklink-clctl | 操作员 标记中必须包含的 受众声明。会话客户端默认使用相同的值,因此仅在更改此值时才需要协调两者。 |
clctl.gateway.requiredHostedDomain | "" | 网关要求的可选托管域声明;在查询允许列表前拒绝工作区外的标记。 |
clctl.gateway.allowedOperators | [] (关闭) | 操作员 电子邮件允许列表,会渲染为 ConfigMap;轮换时需更改配置值并执行 helm upgrade。 |
clctl.gateway.requireVerifiedEmail | true | 要求 操作员 标记中包含 email_verified 声明。若设置为 false 但未同时提供 jwksUri 和 issuer,渲染将失败。 |
clctl.gateway.jwksUri | "" | 非 Google 身份提供商的 JWKS 端点覆盖值;留空时使用 Google 的端点。 |
clctl.gateway.issuer | "" | 要固定的签发方声明。任何设置了 jwksUri 的实际部署都必须提供此项。 |
clctl.gateway.jwksEgressCIDRs | [] | 在默认拒绝的 NetworkPolicy 下,网关为进行 JWKS 验证需要访问的 CIDR;留空会阻止所有标记检查。 |
clctl.gateway.ingressFromSelector | {} | 网关端口的 NetworkPolicy 入口来源;留空时允许图表命名空间中的任何 pod (容器组) 访问。使用入口时,请将其设置为入口 controller 的命名空间标签。 |
clctl.gateway.rateLimit.requestsPerMinute | 30 | 每个 操作员 的每分钟请求速率限制。 |
clctl.gateway.ingress.enabled | false | 为网关渲染入口。禁用时,操作员 可通过 kubectl port-forward 访问网关;无需入口 controller 或 cert-manager。 |
clctl.gateway.ingress.className, hosts, tls, annotations | "", [], [], {} | 标准入口字段;tls 引用 kubernetes.io/tls Secrets。 |
networkPolicy
| 键 | 默认值 | 含义 |
|---|---|---|
networkPolicy.enabled | true | 生成默认拒绝的 NetworkPolicy,并配置 egress 允许列表。需要使用支持强制执行的 CNI 才能生效。 |
networkPolicy.allowEgressCIDRs | [] (由 init --egress-cidrs 填入) | 连接器端点所在的 CIDR。在托管模式下,当平台图表位于 Amazon ECR 时,还需包含所在区域的 ECR 与 STS 地址段,或你的 mirror 的地址段。在支持强制执行的 CNI 环境中,填入此项前连接器无法进行 egress;只有在这些值已知时,init 才会将该策略以启用状态暂存。 |
networkPolicy.allowEgressPorts | [443] | 向 allowEgressCIDRs 开放的端口;如果端点监听非默认端口,请覆盖此值。 |
networkPolicy.clickhouseNamespaces | [] | ClickHouse 服务所在的命名空间,通过 kubernetes.io/metadata.name 标签匹配。由 executor 创建的命名空间无论如何都会被放行,因为 executor 会为其打上 clicklink.clickhouse.com/managed-by=executor 标签,因此托管安装只需列出在 executor 之外创建的命名空间。留空时,故障排查工具的策略会回退到顶层 instances 映射中的 namespace 值;抓取器的策略没有回退机制,因此需要在此列出用于抓取的命名空间。 |
networkPolicy.metricsScrapeSelector | {} | 通过标签将指标抓取入口限制为特定的 Prometheus 命名空间;留空则允许图表所在命名空间中的任意 pod (容器组) 抓取。 |
networkPolicy.kubeletProbeCIDRs | [] | kubelet 健康探针的来源 CIDR (节点 IP) 。留空则允许来自任何来源的探针入口,这与大多数 CNI 对 kubelet 的豁免行为一致;在严格的默认拒绝策略下应显式设置。 |
networkPolicy.apiserverCIDRs | [] (由 init --managed 从集群 VPC 填入) | Kubernetes API server 的 CIDR。留空不会生成 API server egress 规则;在托管 Kubernetes 环境中,守护进程在设置此项前首次请求 token 时会失败。请固定 VPC 的地址段,而不是 API server 自身的地址,后者会在集群的生命周期内发生变化。 |