Estoy tratando de crear un clúster MySQL de 3 nodos usando contenedores acoplables mysql-server .
Tengo 3 instancias de nube separadas y la ventana acoplable está configurada en las 3. Cada servidor tendrá solo 1 contenedor ejecutándose en él , para lograr una alta disponibilidad cuando esté en un clúster.
Comienzo los contenedores en los 3 servidores, individualmente, con el comando
docker run --name=db -p 3301:3306 -v db:/var/lib/mysql -d mysql/mysql-serverEstoy asignando el puerto 3306 del contenedor al puerto 3301 de mi servidor . También he creado un nuevo usuario 'clusteradmin' para acceso remoto.
Luego, desde mysql-shell, ejecuté el siguiente comando: para los 3 servidores
dba.configureInstance('clusteradmin@serverIp:3301') Recibo un mensaje similar para todos- 
Tenga en cuenta que dice 'Esta instancia informa su propia dirección como 39xxxxxxxxxx: 3306'.
A continuación, creo un clúster en uno de los servidores con éxito. Pero, al agregar los otros 2 servidores a este clúster, recibo el siguiente error
Al revisar los registros de ese servidor en particular, veo las siguientes líneas
Dice 'la dirección del par a9yyyyyyyyyy:33061 no es válida'. Esto se debe a que, dado que los contenedores se ejecutan en diferentes servidores, otros contenedores en otro servidor no reconocen el ID del contenedor.
Probé muchas opciones pero fue en vano. Un método era usar las opciones de host de informe y puerto de informe al iniciar el contenedor, así
docker run --name=db2 -p 3301:3306 -v db2:/var/lib/mysql -d mysql/mysql-server --report-host=139.59.11.215 --report-port=3301Pero, el problema con este enfoque es que, durante dba.configureInstance(), quiere actualizar el puerto al valor predeterminado y arroja un error como ese
Cualquiera que haya logrado crear un grupo de contenedores mysql-server que se ejecutan en diferentes servidores, realmente agradecería sugerencias al respecto.
Revisé la documentación y el código fuente, pero no encontré una explicación de por qué es problemático escuchar y anunciar diferentes puertos.
Resolví el problema usando --port 3301 al invocar mysql-server:
docker run --name=db2 -p 3301:3301 -v db2:/var/lib/mysql -d mysql/mysql-server --report-host=139.59.11.215 --port 3301