Configuración de ClickHouseCluster
Configuración básica
Réplicas y segmentos
- Réplicas: Número de instancias de ClickHouse por segmento (para alta disponibilidad)
- Segmentos: Número de particiones horizontales (para el escalado)
replicas: 3 y shards: 2 creará 6 pods de ClickHouse en total.
Integración de Keeper
keeperClusterRef.namespace, el operador debe observar ambos espacios de nombres. Si WATCH_NAMESPACE está configurado, incluya los espacios de nombres de ClickHouse y Keeper en esa lista.
Configuración de KeeperCluster
Configuración de almacenamiento
El operador solo puede modificar un PVC existente si la clase de almacenamiento asociada admite la expansión de volúmenes.
Configuración del pod de Kubernetes
Dispersión de topología y afinidad automáticas
Asegúrese de que su clúster de Kubernetes tenga suficientes nodos en distintas zonas para cumplir las restricciones de distribución.
Configuración manual
Consulta la Referencia de la API para ver todas las opciones compatibles de la plantilla de pod de Kubernetes.
Presupuestos de interrupción de pods
Valores predeterminados
apply inicial ya proteja frente a una pérdida accidental de quorum.
Para un ClickHouseCluster de 3 segmentos con
replicas: 3, el operador crea tres PDB, uno por segmento, cada uno con minAvailable: 1.
Sobrescribir los valores predeterminados
spec.podDisruptionBudget para sobrescribir minAvailable o maxUnavailable (exactamente uno):
maxUnavailable, con un porcentaje:
unhealthyPodEvictionPolicy al PDB generado, lo que resulta útil cuando necesitas permitir la expulsión de pods que aún siguen en NotReady:
Políticas
spec.podDisruptionBudget.policy te permite elegir con qué nivel de agresividad el operador gestiona los PDB:
Ejemplo — deshabilita por completo la gestión de PDB en un clúster de desarrollo:
Desactivación a nivel de clúster
ENABLE_PDB del operador. Con ENABLE_PDB=false, el operador omite el paso de reconciliación de PDB para todos los ClickHouseCluster y KeeperCluster, independientemente de su spec.podDisruptionBudget.policy, y no observa en absoluto los recursos PodDisruptionBudget. Por lo tanto, el ServiceAccount del operador no necesita permisos de RBAC sobre poddisruptionbudgets.policy/v1, lo cual resulta útil cuando el operador se ejecuta con un ServiceAccount restringido que omite intencionadamente esos permisos.
Configuración del contenedor
Imagen personalizada
Recursos de los contenedores
Variables de entorno
Montajes de volúmenes
Se permite especificar varios montajes de volúmenes en el mismo
mountPath.
El operador creará un volumen proyectado con todos los montajes especificados.Consulta la referencia de la API para ver todas las opciones compatibles de la plantilla de contenedor.
Configuración de TLS/SSL
Configurar endpoints seguros
Formato del Secret del certificado SSL
tls.crt- certificado del server codificado en PEMtls.key- private key codificada en PEMca.crt- cadena de certificados de la CA codificada en PEM
Este formato es compatible con los certificados generados por cert-manager.
Comunicación de ClickHouse-Keeper mediante TLS
ca.crt para la verificación. De lo contrario, se usa el bundle de CA predeterminado.
El usuario puede proporcionar una referencia a un bundle de CA personalizado:
Configuración de ClickHouse
Contraseña predeterminada del usuario
No se recomienda usar ConfigMap para almacenar contraseñas en texto plano.
Uso de ConfigMap para las contraseñas de los usuarios
Usuarios personalizados en la configuración
Sincronización de la base de datos
Configuración personalizada
Configuración adicional integrada
extraConfig:
Enlaces útiles:
Configuración integrada de usuarios adicionales
extraUsersConfig. Esto es útil para definir usuarios, perfiles, cuotas y privilegios directamente en la especificación del clúster.
La
extraUsersConfig se almacena en el objeto ConfigMap de k8s. Evite incluir secretos en texto plano allí.