Configuração do ClickHouseCluster
Configuração básica
Réplicas e shards
- Réplicas: Número de instâncias do ClickHouse em cada shard (para alta disponibilidade)
- Shards: Número de partições horizontais (para escalabilidade)
replicas: 3 e shards: 2 criará 6 pods do ClickHouse ao todo.
Integração com o Keeper
keeperClusterRef.namespace estiver definido, o operador deverá monitorar ambos os espaços de nomes. Se WATCH_NAMESPACE estiver configurado, inclua os espaços de nomes do ClickHouse e do Keeper nessa lista.
Configuração do KeeperCluster
Configuração de armazenamento
O Operator só pode modificar um PVC existente se a classe de armazenamento subjacente oferecer suporte à expansão de volume.
Configuração do pod do Kubernetes
Distribuição automática por topologia e afinidade
Garanta que seu cluster do Kubernetes tenha nós suficientes em zonas diferentes para atender às restrições de distribuição.
Configuração manual
Consulte a Referência da API para ver todas as opções de template de pod do Kubernetes compatíveis.
Orçamentos de interrupção de pods
Valores padrão
apply já proteja contra perda acidental de quórum.
Para um ClickHouseCluster com 3 shards e
replicas: 3, o operador cria três PDBs, um por shard, cada um com minAvailable: 1.
Substituindo os padrões
spec.podDisruptionBudget para substituir minAvailable ou maxUnavailable (exatamente um):
maxUnavailable, com uma porcentagem:
unhealthyPodEvictionPolicy para o PDB gerado — útil quando precisar permitir a evicção de pods que ainda estão em NotReady:
Políticas
spec.podDisruptionBudget.policy permite escolher com que nível de rigor o operador gerencia os PDBs:
Exemplo — desative completamente o gerenciamento de PDBs em um cluster de desenvolvimento:
Desativação em nível de cluster
ENABLE_PDB do operator. Com ENABLE_PDB=false, o operator ignora a etapa de reconciliação de PDB para todos os ClickHouseCluster e KeeperCluster, independentemente de spec.podDisruptionBudget.policy, e não monitora recursos PodDisruptionBudget de forma alguma. Portanto, o ServiceAccount do operator não precisa de permissões de RBAC em poddisruptionbudgets.policy/v1, o que é útil ao executar o operator com um ServiceAccount restrito que omite essas permissões intencionalmente.
Configuração do contêiner
Imagem personalizada
Recursos de contêiner
Variáveis de ambiente
Montagem de volumes
É permitido especificar várias montagens de volume no mesmo
mountPath.
O Operator criará um volume projetado com todas as montagens especificadas.Consulte a Referência da API para ver todas as opções de template de contêiner suportadas.
Configuração de TLS/SSL
Configure endpoints seguros
Formato do Secret de certificado SSL
tls.crt- certificado do servidor codificado em PEMtls.key- chave privada codificada em PEMca.crt- cadeia de certificados da CA codificada em PEM
Esse formato é compatível com certificados gerados pelo cert-manager.
Comunicação entre ClickHouse e Keeper via TLS
ca.crt para a verificação. Caso contrário, será usado o bundle de CA padrão.
O usuário pode fornecer uma referência para um bundle de CA personalizado:
Configurações do ClickHouse
Senha padrão do usuário
Não é recomendável usar ConfigMap para armazenar senhas em texto simples.
Usando ConfigMap para senhas de usuários
Usuários personalizados na configuração
Sincronização do banco de dados
Configuração personalizada
Configuração adicional embutida
extraConfig:
Links úteis:
Configuração embutida de usuários adicionais
extraUsersConfig. Isso é útil para definir usuários, perfis, quotas e permissões diretamente na especificação do cluster.
O
extraUsersConfig é armazenado em um objeto ConfigMap do k8s. Evite armazenar segredos em texto puro nele.