Cómo acceder al servicio mysql implementado en un clúster k8s
1. Configurar la entrada del tráfico empresarial
Los entornos de máquinas virtuales tradicionales utilizan IP virtual para permitir que las aplicaciones empresariales configuren una IP virtual predefinida como la dirección vinculada a la base de datos y luego proporcionen alta calidad. servicios de disponibilidad Esto garantizará que la IP virtual siempre se enrute a la base de datos principal. En Kubernetes, hay una capa de complementos de red que protege la topología de la red subyacente. La forma en que los servicios de alta disponibilidad administran las IP virtuales debe adaptarse y ajustarse en consecuencia. Por ejemplo, la deriva de las IP virtuales se completa combinando servicios con. etiquetas, pero el servicio en sí es una función proporcionada por kubernetes, su confiabilidad y rendimiento dependen de la estabilidad del servicio de kubernetes. En términos de rendimiento, el servicio se implementa mediante el componente kubeproxy configurando iptables. Cuando hay muchas reglas de iptables, inevitablemente se producirán retrasos, lo que requiere que las resuelvamos de manera específica.
2. El aislamiento del contenedor trae problemas de visión de monitoreo.
En Kubernetes, si MySQL se ejecuta como un contenedor en un pod, el contenedor aislará el proceso de MySQL y se ejecutará en un entorno de espacio de nombres separado. . Es posible que los componentes de monitoreo deban ingresar al mismo espacio de nombres que MySQL para obtener ciertas métricas de MySQL, por lo que debe considerar estas limitaciones al implementar y diseñar componentes de monitoreo.
3. El almacenamiento en Kubernetes admite varias configuraciones de almacenamiento.
Si utiliza volúmenes persistentes locales de almacenamiento local, debe vincular MySQL a un nodo fijo, lo que desperdicia por completo la ventaja natural de la programación flexible en Kubernetes y si utiliza almacenamiento remoto disfrutado; Luego, desacopla completamente el proceso MySQL de su almacenamiento, lo que permite programar el proceso MySQL en cualquier nodo. Es cierto que el uso del almacenamiento remoto desacopla el proceso MySQL de su almacenamiento, lo que permite programarlo en cualquier nodo, pero esto no es tan bueno cuando se considera un alto rendimiento de E/S. Al diseñar, debe considerar si el almacenamiento remoto puede cumplir con los requisitos de ancho de banda de MySQL.
4. Alta disponibilidad/recuperación de respaldo
El controlador statefulset proporcionado por Kubernetes solo puede proporcionar funciones básicas de implementación y eliminación, y no puede lograr una alta disponibilidad/recuperación de respaldo completa del clúster MySQL. Para la implementación de aplicaciones con estado, aún se requiere un desarrollo personalizado, por lo que la mayoría de las empresas proporcionan operadores personalizados para completar la gestión de los contenedores de aplicaciones. Por ejemplo, el operador etcd, el operador MySQL y, posteriormente, algunos de mis registros de prueba sobre el operador MySQL.