Quiero conectar el clúster de Galera desde el pod de haproxy implementado en kubernetes.
Archivo Docker para la imagen.
FROM haproxy:2.3 COPY haproxy.cfg /usr/local/etc/haproxy/haproxy.cfg Archivo haproxy.cfg
defaults log global mode tcp retries 10 timeout client 10000 timeout connect 100500 timeout server 10000 frontend mysql-router-service bind *:6446 mode tcp option tcplog default_backend galera_cluster_backend # MySQL Cluster BE configuration backend galera_cluster_backend mode tcp #option mysql-check user haproxy option tcp-check balance source server mysql_cluster_01 192.168.1.2:3306 check weight 1 server mysql_cluster_02 192.168.1.3:3306 check weight 1 server mysql_cluster_03 192.168.1.4:3306 check weight 1 Aquí mysql-router-service puede inducir a error, pero lo usamos como si fuera el servicio de conectividad db anterior.
Manifiesto de implementación de Kubernetes
apiVersion: apps/v1 kind: Deployment metadata: name: ha-proxy namespace: mysql-router spec: replicas: 1 selector: matchLabels: app: ha-proxy template: metadata: labels: app: ha-proxy version: v1 spec: imagePullSecrets: - name: dreg containers: - name: ha-proxy image: our-registry:5000/haproxy:v14 imagePullPolicy: Always ports: - containerPort: 6446Manifiesto de servicio de Kubernetes:
apiVersion: v1 kind: Service metadata: name: mysql-router-service namespace: mysql-router labels: app: ha-proxy spec: selector: app: ha-proxy version: v1 ports: - name: ha-proxy port: 6446 protocol: TCP targetPort: 6446 type: LoadBalancer loadBalancerIP: 192.168.1.101 Los siguientes se vieron en los registros del pod de ha-proxy
[WARNING] 237/114804 (1) : config : log format ignored for frontend 'mysql-router-service' since it has no log address. [NOTICE] 237/114804 (1) : New worker #1 (8) forked Si usamos la option mysql-check user haproxy en el archivo de configuración, Galera registra /var/log/mysql/error.log tiene
[Warning] Access denied for user 'haproxy'@'192.168.1.10' (using password NO) Aquí 192.168.1.10 es uno de los trabajadores k8.
En galera cluster tenemos los siguientes usuarios
+---------------+-------------+ | Host | User | +---------------+-------------+ | 192.168.1.% | haproxy | | localhost | mariadb.sys | | localhost | mysql | | localhost | root | +---------------+-------------+ Todos los nodos ejecutan Ubuntu 18-04 , ufw está deshabilitado.
Podemos hacer telnet a los nodos de galera desde trabajadores k8. (telnet 192.168.1.2 3306 )
¿Qué nos habíamos perdido aquí?
Depende de :
[Warning] Access denied for user 'haproxy'@'192.168.1.10' (using password NO)
Creo que tienes que establecer una contraseña para el usuario: haproxy .