Despliegue de un cluster de Kubernetes con gestión automática de DNS para varios entornos

Gestionar la estrategia de DNS en la nube para sus entornos internos y externos (desarrollo, prueba y producción, por ejemplo) puede ser complicado y laborioso sin una solución automatizada. Lo ideal es que tanto sus usuarios como clientes puedan navegar a un dominio, y su solución DNS debe dirigirse a la dirección IP del entorno correcto. Este escenario ideal es fácil de usar y puede evitar errores humanos.

Kubernetes ExternalDNS ofrece capacidades para automatizar una solución de DNS a fin de facilitar a los usuarios la navegación hasta el dominio que desean, incluidas funciones avanzadas como el equilibrio de carga global, el failover automático, la gestión de tráfico basada en DNS y funciones de seguridad incorporadas como extensiones de seguridad del sistema de nombres de dominio (DNSSEC) para ayudar a protegerse contra ataques de falsificación y manipulación.

Esta arquitectura de referencia utiliza un despliegue de cluster de kubernetes único con Oracle Cloud Infrastructure DNS Zones y Kubernetes ExternalDNS para configurar una solución de DNS diseñada para varios entornos.

Arquitectura

Esta arquitectura utiliza un cluster de Oracle Cloud Infrastructure Container Engine for Kubernetes (OCI OKE) desplegado en una zona de DNS de OCI para contener los "registros A" de los servicios expuestos a través de equilibradores de carga. En esta arquitectura, el cluster de OKE tiene tres nodos de trabajador y tres espacios de nombres diferentes para la segregación del despliegue. Utilice esta arquitectura para un despliegue de OKE de varios entornos que utilice un único cluster en lugar de varios.

El siguiente diagrama ilustra esta arquitectura de referencia.



multiinquilino-oke-dns-architecture.zip

Cada entorno (desarrollo, prueba y producción) tiene su propio juego de componentes de kubernetes, como espacios de nombres, pods y servicios. Kubernetes ExternalDNS permite la creación y gestión automáticas de registros de DNS para servicios de kubernetes expuestos externamente. Esto facilita que los clientes externos accedan a los servicios dentro del cluster. Los componentes de kubernetes se enrutan a Kubernetes ExternalDNS, que luego crea "Registros A" que apuntan a cada equilibrador de carga de servicio en OCI.

El siguiente diagrama ilustra esta arquitectura de software.



kubernetes-external-dns.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 de otras regiones, y grandes distancias pueden separarlos (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, es poco probable que un fallo en un dominio de disponibilidad afecte 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 consta de tres dominios de errores con una potencia y un hardware independientes. Al distribuir recursos entre varios dominios de errores, las aplicaciones pueden tolerar fallos físicos de servidor, mantenimiento del sistema o 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 se configura en una región de Oracle Cloud Infrastructure. Al igual que las redes de los centros de datos tradicionales, las redes virtuales le proporcionan un control completo 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.

  • 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.

  • 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.

  • Container Engine para Kubernetes

    Oracle Cloud Infrastructure Container Engine for Kubernetes es un servicio totalmente gestionado, escalable y con alta disponibilidad que puede utilizar para desplegar las aplicaciones en contenedores en la nube. Especifique los recursos informáticos que necesitan sus aplicaciones y Container Engine for Kubernetes los aprovisionará en Oracle Cloud Infrastructure en un arrendamiento existente. Container Engine for Kubernetes utiliza Kubernetes para automatizar el despliegue, el ajuste y la gestión de aplicaciones en contenedores en clusters de hosts.

  • DNS

    El servicio de sistema de nombres de dominio (DNS) de Oracle Cloud Infrastructure es una red de sistema de nombres de dominio (DNS) anycast global altamente escalable que ofrece rendimiento, resiliencia y posibilidades de ampliación mejoradas de DNS para que los usuarios finales se conecten a la aplicación del cliente lo más rápido posible y desde cualquier lugar.

  • Zona de DNS público/privado

    El servicio Oracle Cloud Infrastructure DNS permite gestionar zonas. Una zona es una parte del espacio de nombres DNS. Un registro de inicio de autoridad (SOA) define una zona. Una zona contiene todas las etiquetas que están por debajo del árbol, a menos que se especifique lo contrario.

Recomendaciones

Utilice las siguientes recomendaciones como punto de partida. Los requisitos pueden diferir de la arquitectura que se describe aquí.
  • Red virtual en la nube (VCN)

    Al crear una VCN, determine el número de bloques de 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 dirección IP privada estándar.

    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 dejar que el servicio escale el ancho de banda automáticamente en función de los patrones de tráfico. Con cualquier enfoque, puede cambiar la unidad en cualquier momento después de crear el equilibrador de carga.

Consideraciones

Al desplegar varios entornos dentro de un único cluster de Oracle Cloud Infrastructure Container Engine for Kubernetes, tenga en cuenta lo siguiente.

  • Seguridad

    Considere el uso de políticas de red de Kubernetes para separar la conectividad de los espacios de nombres y confíe en el control de acceso basado en roles para controlar el acceso a la gestión de los espacios de nombres.

Despliegue

Las instrucciones para configurar Kubernetes ExternalDNS para utilizar Oracle Cloud Infrastructure DNS están disponibles en "Configuración de ExternalDNS para utilizar Oracle Cloud Infrastructure DNS" en la Documentación de Oracle Cloud Infrastructure.

Explorar más

Obtenga más información sobre el despliegue de un cluster de Oracle Container Engine for Kubernetes con gestión automática de DNS.

Revise estos recursos adicionales:

Agradecimientos

Autor:

  • Guido Alejandro Ferreyra