Aprendizaje de KubeSphere---Instalación y despliegue de middleware de Mysql combate real

inserte la descripción de la imagen aquí

prefacio

El artículo anterior explicaba el sistema multiinquilino de KubeSphere y creó muchos usuarios y muchos proyectos. Entre ellos, seleccionamos: el usuario "dev-zhao" y "su" proyecto para implementar y aprender middleware.

Elementos que requieren atención en la implementación de aplicaciones

Porque aquí mi KubeSphere se implementa en base a Kubernetes. Luego, cuando implementamos el middleware, es lo mismo que en Kubernetes, por ejemplo:
1. Método de implementación de la aplicación: ¿está utilizando cargas de trabajo sin estado? ¿O cargas con estado? ¿O es una carga al estilo daemon? Hacer
carga sin estado: adecuada para implementar Nginx, Httpd, etc. que no requieren almacenamiento de datos de back-end.
Carga con estado: para implementar Mysql y Redis, debe ser adecuado para conectarse al almacenamiento detrás de él. Por ejemplo, si un mysql Pod está inactivo, los datos almacenados detrás de él todavía están allí, y luego creamos un Mysql en la transmisión. , que puede conectarse automáticamente al almacenamiento de datos posterior.
Conjunto de procesos Daemon: adecuado para las herramientas de recopilación de registros, que deben implementarse en cada pod de nodo, y luego varios pods de recopilación de registros combinan datos y los envían a la plataforma xxx de back-end.

2. Montaje de datos de la aplicación: sabemos que es necesario almacenar volúmenes en Kubernetes, por lo que podemos implementarlo a través de KubeSphere

3. Accesibilidad de la aplicación: después de implementar la carga de trabajo, debemos crear un Servicio para muchos Pods para lograr el acceso de los usuarios, o el acceso a los componentes internos del clúster, o, si desea crear una entrada de tráfico total para todo el Kubernetes, también puedes crear Ingress

Los tres anteriores son los tres elementos principales de la implementación de middleware en KubeSphere De hecho, es lo mismo que la implementación de Kubernetes y es más conveniente operar en KubeSphere.

La relación anterior es la siguiente:
inserte la descripción de la imagen aquí

Ilustrar los elementos de los componentes de implementación de KubeSphere

Primero use dev-zhao (puede crear una cuenta a voluntad), ingrese su proyecto:
inserte la descripción de la imagen aquí

Implementar MySQL

Antes de implementar, pensemos primero: ¿Cuántos de los tres elementos anteriores deben cumplirse al implementar Mysql? (1), en primer lugar, Mysql almacena datos, necesitamos colgar los datos
allí (3) Necesitamos una carga Dado que Mysql necesita un lugar para almacenar datos, lo implementamos con una carga de trabajo con estado.

docker run -p 3306:3306 --name mysql-01 \
-v /mydata/mysql/log:/var/log/mysql \
-v /mydata/mysql/data:/var/lib/mysql \
-v /mydata/mysql/conf:/etc/mysql/conf.d \
-e MYSQL_ROOT_PASSWORD=root \
--restart=always \
-d mysql:5.7 

inserte la descripción de la imagen aquí
1. Implemente ConfigMap, ingrese su proyecto, busque "Centro de configuración------>Configuración" en la lista de la izquierda y haga clic en "Crear".
inserte la descripción de la imagen aquí
inserte la descripción de la imagen aquí

De esta forma se configura el ConfigMap.

2. Cree un PVC y el usuario almacene los datos de Mysql.
Ingrese su proyecto, busque "Gestión de almacenamiento------>Volumen de almacenamiento" en la lista de la izquierda y haga clic en "Crear".
inserte la descripción de la imagen aquí
inserte la descripción de la imagen aquí
No es necesario configurar las opciones avanzadas
para que se cree el PVC de almacenamiento persistente de Mysql.

3. Crear una carga con estado
Ingrese su proyecto, en la lista de la izquierda, busque "Carga de aplicación ------> Carga de trabajo ------> Conjunto de réplicas con estado" y luego haga clic en "Crear".
inserte la descripción de la imagen aquí
La siguiente configuración es más importante:
inserte la descripción de la imagen aquí

inserte la descripción de la imagen aquí
Establezca el Pod en el volumen clave de PVC en este momento, y asocie el ConfigMap que acaba de crear
inserte la descripción de la imagen aquí

y haga clic en "Crear":
inserte la descripción de la imagen aquí

Efecto de detección

1. Ingrese a Mysql Pod e inicie sesión en Mysql
-h se usa con la resolución DNS proporcionada por el Servicio
inserte la descripción de la imagen aquí

2. Ingrese a la terminal de este contenedor y vea el archivo my.cnf
inserte la descripción de la imagen aquí

inserte la descripción de la imagen aquí
Si desea modificarlo más tarde, simplemente busque la opción "Editar" para modificarlo, y automáticamente sincronizará la información de configuración modificada.
Por supuesto, también podemos consultarlo en la plataforma de Kubernetes

[root@k8s-master ~]# kubectl get pods -A | grep mysql
his                            his-mysql-0                                                       1/1     Running     0          9m30s

Ahora, se crea Mysql Pod, pero no podemos acceder al servicio Mysql fuera del clúster, por lo que debemos configurar la red Mysql: Servicio.

Implementar la red de balanceo de carga Mysql

Crear en "Servicio"
1. Primero vamos a crear un Servicio dentro del clúster.En
inserte la descripción de la imagen aquí
inserte la descripción de la imagen aquí
este momento, el nombre de dominio DNS se convierte en nuestra propia designación.

2. Para crear un Servicio para el acceso externo al clúster
inserte la descripción de la imagen aquí

Resumir

De esta forma, se completan las operaciones relacionadas en Mysql y los pasos son los mismos cuando se implementa otro middleware en el futuro.

Supongo que te gusta

Origin blog.csdn.net/m0_57776598/article/details/124063782
Recomendado
Clasificación