配置方式
- Kubernetes
- Linux VM
clicklink clctl init 会在工作目录中创建名为 clicklink-values.yaml 的配置值覆盖文件,并使用该文件部署 clicklink-connector 图表。该覆盖文件是部署配置的持久记录:除非传入 --force,否则重新运行 init 时会保留该文件,因此你的修改可在重新运行和恢复过程中保留。本页及操作中的 Day-2 命令使用
helm 命令行客户端。只有 init 内置 Helm 客户端。--repo 替换为你的镜像仓库。通过直接 图表 引用 (oci://、URL 或本地归档文件或目录;参见私有镜像) 安装时,没有可供解析的仓库。请使用安装时使用的引用重新运行升级命令:添加或更改 ClickHouse 实例
instances 下的每个条目都定义了连接器要读取的 ClickHouse 原生协议端点:host、port、database、secure,以及 Kubernetes 环境中的 namespace 和 cluster。凭据绝不会存储在配置中;每个组件都会从预配过程创建的访问包中获取其只读 ClickHouse 用户。
- Kubernetes
- Linux VM
将实例添加到 在工作站上为每个组件预配只读访问权限。对于由 Operator 管理且没有可执行 SQL 的管理员用户的实例,请将
clicklink-values.yaml 中两个组件的映射内,并将其命名空间添加到 networkPolicy.clickhouseNamespaces (根据命名空间的 kubernetes.io/metadata.name 标签匹配) :--apply-ch-grants 会通过 kubectl exec 在 pod (容器组) 中应用生成的 ClickHouse 授权;如果不使用该选项,命令只会创建 Kubernetes 端的资源,并将 ch-grants.sql 保留在磁盘上供你自行应用。如果管理员用户设置了密码,请添加 --ch-admin-password-stdin 并通过管道传入密码。--apply-ch-grants 替换为 --ch-user-via cr (保留 pod 选择标志) ;请参阅 CLI 参考。然后,将各命令创建的 Secret 和 ServiceAccount 对接入相应的 accessBundles 映射,并运行上文所示的 helm upgrade:运维人员允许列表
- Kubernetes
- Linux VM
允许列表位于覆盖层中,并会渲染为 ConfigMap。要更改允许列表,请编辑该列表并运行
helm upgrade:网络策略和出站流量
networkPolicy.enabled: true) 。只有 CNI 实际执行 NetworkPolicy 时,这些对象才会生效;在启用强制执行的 CNI 中,连接器不会产生任何出站流量,除非通过 allowEgressCIDRs 指定连接器 API 端点所在的 CIDR。
apiserverCIDRs:留空时,图表 不会生成 API server 出站规则。守护进程首次请求 Kubernetes 标记时将因网络错误而失败,这表明需要设置此项。在托管 Kubernetes 环境中,请使用 cluster 的 API server 端点 CIDR。clctl.gateway.jwksEgressCIDRs:启用会话网关后,故障排查工具会拉取身份提供商的 JWKS,以验证运维人员 标记。在默认拒绝策略下,留空会导致所有标记检查被阻止:
private.googleapis.com 地址范围,其中包括通过 Private Google Access 访问的 Google 身份提供商;对于其他身份提供商,请提供相应提供商的地址范围 (或其前置出口代理的 CIDR) 。
另外还有两个入口相关配置:metricsScrapeSelector 通过标签将指标抓取入口限制为特定 Prometheus 命名空间,而 kubeletProbeCIDRs 则会在默认严格拒绝的环境中显式允许 kubelet 健康探针。完整的键列表请参阅配置参考。
脱敏模式
ipv4、ipv6、bearer-token、aws-access-key、email、jwt、ssh-private-key 和 connection-string-credentials。您可以在 YAML 文件中添加自定义模式;这些模式会先按文件中的顺序执行,然后再执行内置模式。如果某个条目使用了与内置模式相同的 name,则会替换该内置模式。
每个模式包含 name (必填且唯一) 、regex (必填,采用 Go RE2 语法) 、replace (默认为 [REDACTED],支持 $1 捕获组引用) 和 case_insensitive (默认为 false) :
/etc/clicklink/redaction-patterns.yaml;安装程序会创建一份带注释的默认文件,并在升级时保留您修改后的版本。在 Kubernetes 上,将 YAML 放入 ConfigMap,并使用键名 redaction-patterns.yaml,然后将 troubleshooter.redaction.patternsConfigMap 设置为该 ConfigMap 的名称;chart 会将其挂载到相同路径。
私有镜像 和边界内端点
image.repository 预设为公网、多架构且经 cosign 签名的 connector 镜像,因此常规安装无需指定镜像配置值。要查看已发布的默认配置:
init 的 --chart 参数可指定为在 --chart-repo 中解析的图表名称,也可直接指定 oci:// 引用、URL、本地归档文件或目录。--chart-version 默认使用命令行客户端自身的版本,以确保 binary 与图表保持同步:
init 传入 --api-private-ca:这会设置 api.tls.caFile: /etc/clicklink/secrets/mtls/ca.crt,使端点根据注册包中的 CA 证书链而非系统根证书进行验证。在 VM 上,对应配置为 /etc/clicklink/config.yaml 中的 api.tls.ca_file;init 会将包中的证书链安装到 /etc/clicklink/tls/ca.crt,并将其添加到系统根证书中用于验证。如需在完全隔离网络环境中进行注册和证书签名,请参阅 onboarding。
存储
- Kubernetes
- Linux VM
故障排查工具会将其状态保存在 PersistentVolumeClaim 中,因此即使 pod (容器组) 被重新调度,会话状态和审计记录也能保留:将
storageClass 留空会使用集群的默认存储类。如果集群未设置默认存储类,init 会要求通过提示或 --storage-class 指定一个存储类。