Superfícies de configuração
O conector tem uma superfície de configuração para cada destino de instalação.- Kubernetes
- VM Linux
clicklink clctl init cria, no diretório de trabalho, uma sobreposição de valores chamada clicklink-values.yaml e implanta o chart clicklink-connector com ela. A sobreposição é o registro persistente da sua implantação: ao executar init novamente, ela é mantida, a menos que você informe --force, de modo que suas edições sejam preservadas em novas execuções e durante a recuperação.Os comandos de operação nesta página e em operações usam a CLI
helm. Somente o init inclui um cliente Helm integrado.--repo pelo seu espelho.Uma instalação a partir de uma referência direta ao chart (oci://, uma URL ou um arquivo ou diretório local; consulte espelhos privados) não tem um repositório para consulta. Execute o upgrade novamente usando a referência a partir da qual você instalou:modo managed
O modo managed executa o executor, que aplica ao seu cluster o lifecycle de serviço conduzido pelo ClickHouse Cloud. Oinit o ativa na inscrição e preenche a identity do cluster (consulte habilitar modo managed). As keys abaixo são as que você talvez queira revisar depois. Para alterar a postura, execute o init novamente com --force e --managed ou --no-managed. Como em toda execução do init, é preciso um entry point: --handoff, caso você tenha guardado o pacote, ou --enroll com um token novo (consulte novas execuções e recovery).
Em uma VM, --no-managed desabilita o executor na configuração, mas não interrompe nem desabilita um systemd unit em execução. Pare-o antes de alterar a configuração:
executor.enabled: false nos values e aplique com helm upgrade para remover a Implantação do executor. Em ambos os targets, a concessão no cluster permanece até que você a remova; consulte interromper o modo managed.
- Kubernetes
- VM Linux
O
init prepara o bloco executor no clicklink-values.yaml a partir do cluster EKS para o qual o seu contexto do kube aponta:cluster.namespacePrefixé compartilhado por todos os componentes e é o prefixo ao qual o grant do executor o restringe. Alterá-lo após a instalação significa executar o grant novamente.executor.clusteré exatamente um cluster:name,region,accountIdeinCluster: true, o que faz o executor se autenticar como o ServiceAccount do pod do Kubernetes. As demais chaves são repassadas ao executor literalmente em snake_case, comos3_storage.executor.serviceAccountpermanece comcreate: false: oinitconcede acesso cluster-wide ao ServiceAccountpcm-executorno espaço de nomes do connector, e o chart vincula-se a ele em vez de criar um novo sem vínculo.executor.persistencedá suporte a/var/lib/clicklink, onde o executor mantém seu banco de dados de comandos e o registry de serviços; consulte armazenamento.executor.platformBundleSecretindica o Secret que contém uma atualização de plataforma aprovada. A montagem é opcional, portanto o pod do Kubernetes inicia antes da primeira aprovação; consulte aprovar uma atualização de plataforma.executor.ports.healthserve/liveze/metrics; não há porta de métricas separada em nenhum componente.
helm upgrade mostrado em superfícies de configuração.Adicionando ou alterando instâncias do ClickHouse
Os serviços criados pelo executor se registram automaticamente, portanto, no modo gerenciado, você nunca os adiciona aqui. Esta seção se aplica a uma implantação separada do connector, executando sem o executor, que monitora o ClickHouse que você mesmo executa. Passe--ch-user-suffix no init dela quando as duas implantações compartilharem uma instância. Cada entrada em instances nomeia um endpoint de protocolo nativo do ClickHouse do qual o connector lê: host, port, database, secure, cluster e, no Kubernetes, namespace. max_open_conns e max_idle_conns limitam o connection pool. As credenciais nunca ficam na configuração; cada componente obtém seu usuário read-only do ClickHouse a partir do pacote de acesso criado pelo provisionamento.
- Kubernetes
- VM Linux
Adicione a instância ao map Provisione acesso read-only para cada componente a partir da sua estação de trabalho. Para uma instância gerenciada por operador sem um administrador capaz de executar SQL, substitua
instances de nível superior em clicklink-values.yaml (os mesmos campos do registro da VM). Adicione o respectivo espaço de nomes a networkPolicy.clickhouseNamespaces, correspondente ao label kubernetes.io/metadata.name do espaço de nomes. O chart renderiza o map no ConfigMap clicklink-instance-registry que ambos os daemons leem. Isso funciona apenas enquanto executor.enabled for false; com o executor ativo, a renderização falha porque o executor é o proprietário desse ConfigMap.--apply-ch-grants aplica as permissões geradas do ClickHouse no pod usando kubectl exec; sem essa opção, o comando cria apenas os recursos do Kubernetes e deixa ch-grants.sql no disco para que você o aplique. Se o usuário administrador tiver senha, adicione --ch-admin-password-stdin e forneça-a por pipe.--apply-ch-grants por --ch-user-via cr (as flags de seleção de pod permanecem); consulte a referência da CLI. Em seguida, associe o par Secret e ServiceAccount criado por cada comando ao map accessBundles correspondente e execute o helm upgrade mostrado acima:Lista de permissões de operadores
Uma lista de permissões de endereços de e-mail de operadores controla as sessões gerenciadas pelo gateway. Cada solicitação ao gateway de sessão deve incluir um token de ID OIDC de curta duração cujo e-mail atestado conste na lista. Uma lista de permissões vazia fecha o gateway. Em uma VM, o usuário root no host também pode gerenciar sessões diretamente pelo arquivo de sessão local; a lista de permissões controla apenas o acesso pelo gateway. Consulte sessões de suporte para conhecer o modelo de confiança completo.- Kubernetes
- VM Linux
A lista de permissões fica na sobreposição, e o chart a renderiza em um ConfigMap. Para alterá-la, edite a lista e execute
helm upgrade:Política de rede e egress
No Kubernetes, o chart inclui uma NetworkPolicy de negação padrão com uma lista de permissões de egress. Objetos NetworkPolicy só entram em vigor quando o seu CNI os aplica. Com um CNI que aplica essas regras, apenas o DNS do cluster e os espaços de nomes do ClickHouse Service ficam acessíveis até que ambas as listas de CIDRs sejam preenchidas. Até lá, o connector não tem egress para o seu connector endpoint nem para o Kubernetes API server. Oinit só prepara a policy como enabled quando conhece os CIDRs por trás do seu connector endpoint.
allowEgressCIDRscabe a você fornecer: são os intervalos por trás do seu connector endpoint, informados na instalação com--egress-cidrsou no prompt. Todos os componentes precisam deles para alcançar o seu connector endpoint. No modo gerenciado, quando os charts da plataforma ficam no Amazon ECR, adicione os intervalos do ECR e do STS da sua region (ou o intervalo do seu mirror). Sem eles, o download dos charts pelo executor falha sob a policy.apiserverCIDRsé derivado peloinit, no modo gerenciado, a partir da VPC do EKS cluster (eks:DescribeClustereec2:DescribeVpcs). Todos os componentes emitem requisições de token do Kubernetes e o executor opera os serviços pela API, portanto, sob um CNI que aplica as regras, todos ficam bloqueados até que ela seja definida. Se o lookup falhar, oinitemite um aviso e deixa a lista vazia para que você a preencha com os blocos CIDR da sua VPC.
clicklink.clickhouse.com/managed-by: executor, e a policy os admite por esse rótulo, de modo que uma instalação gerenciada pode deixar clickhouseNamespaces vazio. Somente os espaços de nomes criados fora do executor, para o ClickHouse que você mesmo executa, precisam ser listados pelo nome.
Habilitar a policy depois. Se você pulou os CIDRs do endpoint na instalação, o init deixou enabled: false com allowEgressCIDRs: [] e exibiu o passo necessário para concluir. Assim que souber os CIDRs, defina enabled: true e allowEgressCIDRs em clicklink-values.yaml, confirme que apiserverCIDRs contém os intervalos da sua VPC e execute o helm upgrade mostrado em superfícies de configuração.
Quando o gateway de sessão está habilitado, mais uma regra de egress entra em jogo: clctl.gateway.jwksEgressCIDRs. O solucionador de problemas busca o JWKS do seu identity provider para validar os tokens de operador, portanto, sob negação padrão, uma lista vazia bloqueia toda verificação de token:
private.googleapis.com, que abrange um identity provider do Google acessado via Private Google Access. Para qualquer outro identity provider, informe o range correspondente ou o CIDR do proxy de egress que fica à frente dele.
Restam duas chaves de entrada: metricsScrapeSelector restringe a entrada de scrape de metrics a um único espaço de nomes do Prometheus por rótulo, e kubeletProbeCIDRs admite explicitamente probes de saúde do agente de nó do Kubernetes sob negação padrão estrita. Consulte a referência de configuration para ver a lista completa de chaves.
Padrões de redação
O solucionador de problemas redige sua saída antes que ela saia do seu ambiente. Os padrões integrados abrangemipv4, ipv6, bearer-token, aws-access-key, email, jwt, ssh-private-key e connection-string-credentials. Adicione seus próprios padrões em um arquivo YAML. Eles são executados primeiro, na ordem em que aparecem no arquivo, seguidos pelos padrões integrados; uma entrada que reutiliza o name de um padrão integrado o substitui.
Cada padrão aceita name (obrigatório, único), regex (obrigatório, sintaxe RE2 do Go), replace (o padrão é [REDACTED], com suporte a referências de captura $1) e case_insensitive (o padrão é false):
/etc/clicklink/redaction-patterns.yaml. O instalador o inicializa com um conjunto inicial de padrões ativos (API keys de terceiros, AWS secret keys e assim por diante). Reduza ou amplie o conjunto; o instalador preserva sua versão durante os upgrades. No Kubernetes, coloque o YAML em um ConfigMap com a chave redaction-patterns.yaml e defina troubleshooter.redaction.patternsConfigMap como o nome dele; o chart o monta no mesmo caminho.
Espelhos privados e endpoints dentro da fronteira
O chart publicado predefineimage.repository para a imagem pública do connector, compatível com várias arquiteturas e assinada com cosign; portanto, instalações simples não exigem values de imagem. Para inspecionar os padrões publicados:
init aceita --chart como o nome de um chart resolvido a partir de --chart-repo ou como uma referência oci:// direta, uma URL, um arquivo compactado local ou um diretório local. Por padrão, --chart-version usa a própria versão da CLI, para que o binário e o chart sejam atualizados juntos.
--api-private-ca para init. Isso configura api.tls.caFile: /etc/clicklink/secrets/mtls/ca.crt, e o connector verifica o endpoint em relação às raízes do sistema mais a cadeia de CAs do pacote de inscrição. Em uma VM, o equivalente é api.tls.ca_file em /etc/clicklink/config.yaml: init instala a cadeia do pacote em /etc/clicklink/tls/ca.crt, e o connector a acrescenta às raízes do sistema da mesma forma. Para inscrição e assinatura de certificados em ambientes totalmente isolados da internet, consulte onboarding.
Armazenamento
- Kubernetes
- VM Linux
Dois componentes mantêm estado em PersistentVolumeClaims. O do solucionador de problemas guarda o estado da sessão e a trilha de auditoria:O do executor guarda seu banco de dados de comandos e o registro dos serviços que ele gerencia:O
init define os dois valores de storageClass com a classe que você escolheu. Um storageClass vazio usa a StorageClass padrão do cluster; quando o cluster não define nenhuma como padrão, o init solicita uma pelo prompt ou pela opção --storage-class. O claim do executor recebe a anotação helm.sh/resource-policy: keep, portanto o helm uninstall o mantém; consulte desinstalação.