Implementación fuera de línea del servidor de Docker, migración de imágenes, construcción maestro-esclavo mysql y otros servicios

El proyecto de la empresa está a punto de entrar en línea, compró dos servidores en la nube y necesita implementar el entorno (un acceso a la red pública, uno solo puede acceder a través de la LAN), la implementación principal es la siguiente

1. Configurar ssh sin contraseña entre servidores

2. Implementación de la ventana acoplable fuera de línea

3. migración de imágenes acoplables

4. servicio redis

5. servicio de archivos minio

6. Servicio de vista previa de archivos kkFileView

7. Construcción maestro-esclavo de Mysql

Tabla de contenido

1. Configure dos servidores para ssh sin encriptación, lo cual es conveniente para la transferencia de archivos

2. Implementación de la ventana acoplable fuera de línea

 3. migración de imágenes acoplables

4. servicio redis

5. servicio de archivos minio

6. Servicio de vista previa de archivos kkFileView

7. Construcción maestro-esclavo de Mysql

1. nodo maestro mysql

2. nodo esclavo mysql

3. Problemas que surgen

1. slave_io_running: solución de conexión

 2. slave_io_running: no hay solución (posible motivo: los nodos maestro y esclavo server-uuid son los mismos)

3, Slave_SQL_Running: No 


1. Configure dos servidores para ssh sin encriptación, lo cual es conveniente para la transferencia de archivos

Configurar sin contraseña

1. Cambie el host y modifique el nombre del host

vim /etc/hosts

  Asigne la IP en la parte inferior, de modo que el nodo01 configurado se asigne a 192.168.52.100 

192.168.52.100 nodo01
192.168.52.101 nodo02

vim /etc/nombre de host 

2. Configure sin contraseña, genere la clave pública y la clave privada del servidor ,

 Si es usuario root, ingrese cd /root/.ssh/ 

ssh-keygen -t rsa

3. Copie la clave pública en el nodo01 y genere un archivo authorized_keys que contenga las claves públicas de los dos nodos.

ssh-copia-id nodo01

4. Copie la clave pública generada authorized_keys en node02 en node01 

scp autorizado_claves nodo02:$PWD

5. La misma operación se realiza en node02, y ahora puede usar ssh para iniciar sesión sin contraseña

2. Implementación de la ventana acoplable fuera de línea

Dirección de descarga: Índice de linux/static/stable/x86_64/

descargué lo siguiente

Porque cargué el archivo docker descargado en la red pública y luego lo cargué en el servidor node02 fuera de Ningwai a través de la LAN.

scp docker-24.0.4.tgz node02:$PWD

1. Descomprimir el archivo

tar zxf docker-24.0.4.tgz 

 2. Copie los comandos relacionados con la ventana acoplable a /usr/bin

sudo cp docker/* /usr/bin/

3. Inicie el demonio Docker

 sudo dockerd &

4. Para verificar si la instalación es exitosa, ejecute el comando docker info Si la información de la versión se imprime normalmente, la instalación es exitosa.

 información de la ventana acoplable

5. Cree un archivo docker.service en el directorio /usr/lib/systemd/system/

sudo vi /usr/lib/systemd/system/docker.servicio

[Unidad]
Descripción=Docker Application Container Engine
Documentación=https://docs.docker.com
After=network-online.target firewalld.service
Wants=network-online.target
 
[Servicio]
Type=notify
ExecStart=/usr/bin/ dockerd
ExecReload=/bin/kill -s HUP $MAINPID
LimitNOFILE=infinito
LimitNPROC=infinito
TimeoutStartSec=0
Delegate=sí
KillMode=process
Restart=on-failure
StartLimitBurst=3
StartLimitInterval=60s
 
[Install]
WantedBy=multi-user.target
 

6. Configure la ventana acoplable para que arranque

systemctl habilitar/deshabilitar la ventana acoplable 

 3. migración de imágenes acoplables

Debido a que la ventana acoplable en la LAN no puede extraer la imagen de forma remota, es necesario transferir el servidor de destino a través de la LAN después de extraer el archivo de imagen de la red pública.

1. Empaquetar la imagen del servidor de la red pública (yo empaqueté mysql)

ventana acoplable guardar mysql:5.7 > /home/soft/mysql5.7.tar

2. Transfiera la imagen empaquetada al servidor LAN node02

 scp mysql5.7.tar nodo02:$PWD

3. Restaure el paquete comprimido a una imagen reflejada en el servidor node02

carga de la ventana acoplable < /home/soft/mysql5.7.tar

4. servicio redis

requirepass: contraseña redis

 docker run --name=redis -p 6333:6379 \
    -v /data/redis/data:/data \
     -v /data/redis/conf/redis.conf:/usr/local/etc/redis/redis.conf \
    -d redis:latest --requirepass 123456 servidor-redis /usr/local/etc/redis/redis.conf \
    --appendonly sí

5. servicio de archivos minio

Obtenga la última versión u otras versiones

ventana acoplable pull minio/minio

MINIO_ACCESS_KEY: usuario de inicio de sesión

MINIO_ACCESS_KEY: contraseña de usuario de inicio de sesión

docker run -p 9000:9000 -p 9090:9090 \
 --name minio \
 -d --restart=always \
 -e "MINIO_ACCESS_KEY=test" \
 -e "MINIO_SECRET_KEY=123456" \
 -v /root/docker/minio /data:/data \
 -v /root/docker/minio/config:/root/.minio \
 minio/minio server\
 /data --console-address ":9090" -address ":9000"

6. Servicio de vista previa de archivos kkFileView

Sitio web oficial de kkFileView: kkFileView - vista previa de archivos en línea

# El entorno de red facilita el acceso al almacén central docker

docker pull keking/kkfileview:4.1.0

docker run -it -p 8012:8012 keking/kkfileview:4.1.0 

7. Construcción maestro-esclavo de Mysql

1. nodo maestro mysql

1. Implemente el contenedor del nodo maestro mysql

docker run -p 3333:3306 --name mysql-master \
-v /mydata/mysql-master/log:/var/log/mysql \
-v /mydata/mysql-master/data:/var/lib/mysql \
-v /misdatos/mysql-master/conf:/etc/mysql/conf.d \
-e MYSQL_ROOT_PASSWORD=123456 \
-d mysql:5.7

 Descripción del catálogo:

-v /mydata/mysql-master/conf:/etc/mysql; montar la carpeta de configuración en el host
-v /mydata/mysql-master/log:/var/log/mysql: montar la carpeta de registro en el host
- v /mydata/mysql-master/data:/var/lib/mysql: monte la carpeta de datos en el host

2. Modifique la configuración my.conf del nodo maestro

vim /misdatos/mysql-master/conf/mi.cnf 

[mysqld] ## Establezca server_id, se requiere server_id único = 101 
en la misma red de área local ## Especifique el nombre de la base de datos que no necesita sincronizarse binlog-ignore-db=mysql   ## Habilite la función de registro binario log-bin= mall-mysql-bin   ## La configuración del registro binario utiliza el tamaño de la memoria (transacción) binlog_cache_size=1M   ## Establece el formato de registro binario utilizado (mixto, instrucción, fila) binlog_format=mixed   ## Tiempo de limpieza de vencimiento del registro binario. El valor predeterminado es 0, lo que significa que no hay limpieza automática. expire_logs_days=7  










## Ignorar la configuración del caso

 lower_case_table_names = 1 
## Omita todos los errores o tipos específicos de errores encontrados en la replicación maestro-esclavo para evitar la interrupción de la replicación del lado esclavo.
## Tales como: el error 1062 significa que algunas claves primarias están duplicadas, el error 1032 se debe a que los datos de la base de datos maestro-esclavo son inconsistentes
slave_skip_errors=1062

Reinicie el contenedor del nodo maestro 

 ventana acoplable reiniciar mysql-master

3. Ingrese al contenedor del nodo maestro y agregue una cuenta de usuario de sincronización

docker exec -it mysql-master /bin/bash

mysql -uroot -p123456

Crear cuenta de sincronización 

CREAR USUARIO 'esclavo' @'%' IDENTIFICADO POR '123456';


CONCEDER ESCLAVO DE REPLICACIÓN, CLIENTE DE REPLICACIÓN EN *.* A 'esclavo'@'%';

2. nodo esclavo mysql

1. Crear un contenedor de nodos esclavos

docker run -p 3334:3306 --name mysql-slave \
-v /mydata/mysql-slave/log:/var/log/mysql \
-v /mydata/mysql-slave/data:/var/lib/mysql \
-v /misdatos/esclavo-mysql/conf:/etc/mysql/conf.d \
-e MYSQL_ROOT_PASSWORD=123456 \
-d mysql:5.7

2. Modifique la configuración my.conf del nodo maestro

vim /misdatos/mysql-master/conf/mi.cnf 

[mysqld] ## Establezca server_id, se requiere server_id
único = 122 en la misma red de área local ## Especifique el nombre de la base de datos que no necesita sincronizarse binlog-ignore-db=mysql   ## Habilite la función de registro binario, en caso El esclavo se usa como maestro de otras instancias de la base de datos log-bin=mall-mysql-slave1-bin   ## Establece el tamaño de la memoria de registro binario (transacción) binlog_cache_size=1M   ## Establece el formato de registro binario utilizado (mixto, declaración, fila) binlog_format=mixed   ## Tiempo de limpieza de vencimiento del registro binario. El valor predeterminado es 0, lo que significa que no hay limpieza automática. expire_logs_days=7   ## Omita todos los errores o tipos específicos de errores encontrados en la replicación maestro-esclavo para evitar la interrupción de la replicación del lado esclavo. ## Tales como: el error 1062 significa que algunas claves primarias están duplicadas, el error 1032   se debe a que los datos en la base de datos maestro-esclavo son   inconsistentes Registro binario propio log_slave_updates=1   ## el esclavo está configurado como de solo lectura (excepto para usuarios con super autoridad)



















solo lectura = 1

## Ignorar configuración de mayúsculas
minúsculas_case_table_names = 1 

Reinicie el contenedor del nodo secundario 

ventana acoplable reiniciar mysql-esclavo

3. Verifique el parámetro Posición de la base de datos principal, porque ya hay algunos datos, es 5483771. Generalmente, la posición es 443 al principio

mostrar el estado del maestro;

 4. Ingrese a la base de datos esclava

docker exec -it mysql-slave /bin/bash

mysql -uroot -p123456

 5. Ver el estado de sincronización maestro-esclavo en la base de datos esclava

mostrar el estado del esclavo \G

cambiar maestro a 
master_host='10.0.0.4',master_user='slave',master_password='123456',master_port=3333,
master_log_file='mall-mysql-bin.000002',master_log_pos=684,master_connect_retry=30;

master_host: dirección IP de la base de datos maestra;
master_port: puerto de ejecución de la base de datos maestra;
master_user: cuenta de usuario creada en la base de datos maestra para sincronizar datos;
master_password: contraseña de usuario creada en la base de datos maestra para sincronizar datos;
master_log_file: esclavo especificado El registro archivo de la base de datos para copiar datos, al ver el estado de los datos maestros, obtenga el parámetro Archivo;
master_log_pos: especifique la posición desde la cual comenzar a copiar datos de la base de datos, y obtenga el parámetro Posición al ver el estado de los datos maestros ;
master_connect_retry: el tiempo para reintentar el intervalo de falla de conexión, en segundos.

 6. Iniciar el servicio desde los datos

iniciar esclavo;

slave_io_running es responsable de la comunicación io con el host;
slave_sql_running es responsable de su propio proceso mysql esclavo.

Dos sí significa éxito

3. Problemas que surgen

1. slave_io_running: solución de conexión

1. Falla de la red

Haga ping a la IP del nodo maestro para ver si se puede hacer ping. Si el ping falla, verifique si el grupo de seguridad o el firewall ha abierto el protocolo ICMP.

2. Si la cuenta esclava puede conectarse de forma remota al servicio de nodo maestro

docker exec -it mysql-slave /bin/bash

mysql -u esclavo -p123456 -h10.0.0.4 -P 3333

 3. Compruebe si el nodo esclavo inicia el servicio, si el comando es correcto, si el archivo de inicio y el nodo de inicio son correctos y si la dirección IP del host es correcta.

 Primero detenga, luego modifique y luego inicie el servicio

dejar de esclavo;

iniciar esclavo; 

mostrar el estado del esclavo \G

 2. slave_io_running: no hay solución (posible motivo: los nodos maestro y esclavo server-uuid son los mismos)

1. Encuentra la ubicación del archivo

encontrar / -iname "auto.cnf"

2. Ingrese al directorio de archivos y elimine el archivo.

rm auto.cnf

3. Reinicie el servicio de nodo secundario

dejar de esclavo;

iniciar esclavo; 

mostrar el estado del esclavo \G

3, Slave_SQL_Running: No 


1. El programa puede haber escrito en el esclavo

2. También puede deberse a la reversión de la transacción después de reiniciar la máquina esclava.

mysql> detener esclavo; 
mysql> establecer GLOBAL SQL_SLAVE_SKIP_COUNTER=1; 
mysql> iniciar esclavo;

Supongo que te gusta

Origin blog.csdn.net/weixin_43288858/article/details/131664353
Recomendado
Clasificación