Despliegue de un sistema MySQL Database de alta disponibilidad en un cluster de Oracle Cloud Infrastructure Kubernetes Engine

Oracle MySQL Database Service es un servicio de base de datos totalmente gestionado desplegado en Oracle Cloud Infrastructure (OCI) que admite operadores y desarrolladores que buscan desplegar rápidamente aplicaciones seguras y en la nube. Puede utilizar el operador de servicio de OCI para Kubernetes (OSOK) para aprovisionar y gestionar sistemas de MySQL Database para aplicaciones desplegadas en el despliegue de un sistema de MySQL Database de alta disponibilidad en un cluster de Oracle Cloud Infrastructure Kubernetes Engine (clusters de OCI Kubernetes Engine u OKE).

El uso de OSOK simplifica la gestión de sistemas de MySQL Database para administradores de OKE y permite desplegar instancias del sistema de MySQL Database junto con aplicaciones mediante la herramienta de gestión de paquetes de Kubernetes, Helm.

Arquitectura

Esta arquitectura de referencia muestra una aplicación desplegada en un cluster de OKE que utiliza un sistema MySQL Database de alta disponibilidad para su base de datos. El sistema MySQL Database se despliega y gestiona por completo desde el cluster de OKE con OSOK.

OSOK permite que el sistema MySQL Database se gestione como cualquier otro recurso de Kubernetes mediante la CLI de Kubernetes estándar - kubectl, modelando el sistema MySQL Database como definición de recurso personalizado (CRD) y aplicando esas definiciones al cluster de OKE.

El sistema MySQL Database se puede desplegar como un sistema independiente o con alta disponibilidad (HA). Un sistema MySQL Database activado para alta disponibilidad contiene tres instancias desplegadas en distintos dominios de disponibilidad o dominios de errores. La aplicación se conecta a un único punto final para leer y escribir en la base de datos. En caso de fallo, el sistema de base de datos realizará automáticamente un failover en una instancia secundaria sin volver a configurar la aplicación.

El siguiente diagrama ilustra esta arquitectura de referencia.

A continuación se muestra la descripción de oci-mysql-oke-ha-arch.png
Descripción de la ilustración oci-mysql-oke-ha-arch.png

oci-mysql-oke-ha-arch-oracle.zip

La arquitectura tiene los siguientes componentes:

  • Región

    Una región de Oracle Cloud Infrastructure es un área geográfica localizada que contiene uno o más centros de datos, denominados dominios de disponibilidad. Las regiones son independientes entre sí y puede haber grandes distancias que las separen (entre países e incluso continentes).

  • Dominios de disponibilidad

    Los dominios de disponibilidad son centros de datos independientes dentro de una región. Los recursos físicos de cada dominio de disponibilidad están aislados de los recursos de los otros dominios de disponibilidad, lo que proporciona tolerancia a fallos. Los dominios de disponibilidad no comparten infraestructura, como la alimentación o la refrigeración, ni la red interna del dominio de disponibilidad. Por lo tanto, un fallo en un dominio de disponibilidad no debería afectar a los otros dominios de disponibilidad de la región.

  • Dominios de errores

    Un dominio de errores es una agrupación de hardware e infraestructura dentro de un dominio de disponibilidad. Cada dominio de disponibilidad cuenta con tres dominios de errores con energía y hardware independientes. Al distribuir los recursos entre varios dominios de errores, las aplicaciones pueden tolerar fallos físicos del servidor, mantenimiento del sistema y fallos de energía en un dominio de errores.

  • Red y subredes virtuales en la nube (VCN)

    Una VCN es una red personalizable y definida por software que puede configurar en una región de Oracle Cloud Infrastructure. Al igual que las redes de los centros de datos tradicionales, las redes virtuales le proporcionan el control de su entorno de red. Una VCN puede tener varios bloques de CIDR no superpuestos que puede cambiar después de crear la VCN. Puede segmentar una VCN en subredes, las cuales se pueden acotar a una región o a un dominio de disponibilidad. Cada subred está formada por un rango contiguo de direcciones que no se solapan con las demás subredes de la VCN. Puede cambiar el tamaño de una subred después de la creación. Una subred puede ser pública o privada.

  • OCI Kubernetes Engine

    Oracle Cloud Infrastructure Kubernetes Engine (Kubernetes Engine u OKE) es un servicio totalmente gestionado, escalable y disponible que puede utilizar para desplegar las aplicaciones en contenedores en la nube. Especifique los recursos informáticos que necesitan sus aplicaciones y Kubernetes Engine los provisionará en Oracle Cloud Infrastructure en un arrendamiento existente. OKE utiliza Kubernetes para automatizar el despliegue, la ampliación y la gestión de aplicaciones en contenedores en clusters de hosts.

  • Oracle MySQL Database Service

    Oracle MySQL Database Service es un servicio de base de datos de Oracle Cloud Infrastructure (OCI) totalmente gestionado que permite a los desarrolladores desarrollar e implementar rápidamente aplicaciones nativas seguras en la nube. Optimizado y disponible exclusivamente en OCI, Oracle MySQL Database Service está 100 % creado, gestionado y soportado por los equipos de ingeniería de OCI y MySQL.

    Oracle MySQL Database Service cuenta con un motor de análisis integrado y de alto rendimiento (HeatWave) para ejecutar análisis sofisticados en tiempo real directamente en una base de datos MySQL operativa.

  • Gateway de traducción de direcciones de red (NAT)

    Un gateway de NAT permite que los recursos privados de una VCN accedan a hosts en Internet, sin exponer dichos recursos a conexiones de Internet entrantes.

  • Gateway de servicio

    El gateway de servicios proporciona acceso desde una VCN a otros servicios, como Oracle Cloud Infrastructure Object Storage. El tráfico de la VCN al servicio Oracle viaja por el tejido de red de Oracle y no atraviesa Internet.

  • Registro

    Oracle Cloud Infrastructure Registry es un registro gestionado por Oracle que permite simplificar el desarrollo y el flujo de trabajo de producción. El registro facilita el almacenamiento, el uso compartido y la gestión de artefactos de desarrollo, como imágenes de Docker. La arquitectura altamente disponible y escalable de Oracle Cloud Infrastructure garantiza que pueda desplegar y gestionar sus aplicaciones de forma fiable.

  • Equilibrador de carga

    El servicio Oracle Cloud Infrastructure Load Balancing proporciona una distribución automatizada del tráfico desde un único punto de entrada a varios servidores en el backend.

  • Tabla de rutas

    Las tablas de rutas virtuales contienen reglas para enrutar el tráfico de subredes a destinos fuera de una VCN, normalmente a través de gateways.

  • Lista de seguridad

    Para cada subred, puede crear reglas de seguridad que especifiquen el origen, el destino y el tipo de tráfico que se debe permitir dentro y fuera de la subred.

Recomendaciones

Utilice las siguientes recomendaciones como punto de partida. Sus requisitos pueden diferir de la arquitectura descrita aquí.
  • VCN

    Al crear una VCN, determine el número de bloques CIDR necesarios y el tamaño de cada bloque en función del número de recursos que planea asociar a las subredes de la VCN. Utilice bloques CIDR que estén dentro del espacio de direcciones IP privadas estándar.

    Seleccione bloques de CIDR que no se solapen con ninguna otra red (en Oracle Cloud Infrastructure, su centro de datos local u otro proveedor en la nube) a la que desee configurar conexiones privadas.

    Después de crear una VCN, puede cambiar, agregar y eliminar sus bloques CIDR.

    Al diseñar las subredes, tenga en cuenta el flujo de tráfico y los requisitos de seguridad. Asocie todos los recursos de un nivel o rol específico a la misma subred, que puede servir como límite de seguridad.

  • Ancho de banda de equilibrador de carga

    Al crear el equilibrador de carga, puede seleccionar una unidad predefinida que proporcione un ancho de banda fijo o especificar una unidad personalizada (flexible) en la que defina un rango de ancho de banda y permita que el servicio amplíe el ancho de banda automáticamente en función de los patrones de tráfico. Con cualquiera de los enfoques, puede cambiar la unidad en cualquier momento después de crear el equilibrador de carga.

  • Listas de seguridad

    Utilice listas de seguridad para definir las reglas de entrada y salida que se aplican a toda la subred.

  • Oracle MySQL Database Service

    En esta arquitectura, la aplicación almacena los datos relacionales en Oracle MySQL Database Service. Recomendamos utilizar la última versión.

Consideraciones

Al desplegar una aplicación en Oracle Cloud, tenga en cuenta estas opciones en cuanto a disponibilidad.

  • Disponibilidad de aplicación

    La aplicación se despliega con varios pods en el despliegue para proporcionar alta disponibilidad.

  • Disponibilidad y escalabilidad de mi servicio de base de datos SQL

    MySQL Database Service, que se muestra en la arquitectura de alta disponibilidad, utiliza la opción de alta disponibilidad incorporada MySQL, que crea tres instancias y las coloca en dominios de errores diferentes.

  • Seguridad

    Utilice políticas que restrinjan quién puede acceder a los recursos de OCI disponibles. OKE está integrado con OCI Identity and Access Management (IAM). IAM proporciona una autenticación sencilla con la funcionalidad de identidad nativa de OCI.

Despliegue

Esta arquitectura de referencia se puede desplegar y gestionar desde el cluster de OKE sin utilizar la consola o la CLI de OCI y automatizada con un gráfico de Helm. El gráfico de Helm de ejemplo para esta arquitectura de referencia facilita la creación y gestión de un sistema MySQL Database a partir de un cluster de Kubernetes desplegado en OCI. Puede descargar el código de GitHub y personalizarlo para que se adapte a sus necesidades específicas.

  1. Vaya a GitHub.
  2. Clone o descargue el repositorio en su computadora local.
  3. Siga las instrucciones del documento README.

Agradecimientos

Autor: Chiping Hwang