Helm v3 para desplegar PowerDNS sobre Kubernetes

En el artículo PowerDNS sobre Docker o Podman, fácil y rápido dejamos un punto pendiente sobre Kubernetes, esto es así porque la estructura de servicios de Kubernetes es mucho más compleja que la de Docker o Podman y por tanto hay que hacer un planteamiento completamente diferente. Empaquetar con Helm v3 Lo primero que debemos tener en mente es empaquetar aplicaciones para que su despliegue no requiera de amplios conocimientos sobre Kubernetes (hacer la vida al usuario más fácil) y lo segundo es que podemos tener muchos usuarios sobre el mismo entorno deseando querer la misma aplicación y no podemos crear un paquete para cada uno, debemos poder reutilizar el paquete creado. En Kubernetes el estándar de paquetes es Helm que nos va a permitir gestionar despliegues de forma fácil y siendo reutilizables por usuario, proyecto, etc. El paquete Helm está formado por: Helm v3 es la versión en desarrollo de Helm (en el momento de escribir estas lineas Helm va por la versión v3 beta3) pero que dispone de capacidades tan interesantes como gestión del ciclo de vida o no requerir de servicios integrados en Kubernetes para desplegar paquetes (para realizar algo parecido en la versión 2 ver Como lanzar un esquema (Chart) de Helm sin instalar Helm, que requiere de un job y un pod lanzador con Tiller, lo que representa una mayor complejidad). Usando Helm Una vez dispuesto nuestro cluster Kubernetes (ver Kubernetes: Crear un entorno mínimo para demos o K3s: Kubernetes más simple) procedemos a descargar en el nodo master el binario de Helm con: Y ya está, no hay que instalar nada y podemos instalar los paquetes que necesitemos directamente, eso si, hay que tener en cuenta que no crea automáticamente los espacios de nombres (namespaces) ya que se considera que eso no es una tarea de despliegue sino de gestión de la infraestructura.. En el caso de Powerdns, que tiene como dependencia una base de datos mariadb y al que podemos acoplar opcionalmente un dashboard con PowerDNS-Admin vamos a requerir este tipo de paquetes, porque son útiles si queremos que los clientes dispongan de su propio servidor DNS gestionado por ellos mismos. En próximos artículos veremos que además este servidor es integrable con External-DNS, que nos permitirá publicar en PowerDNS las modificaciones en los proxy de entrada de Kubernetes (por ejemplo un Ingress con Traefik). Para crear un paquete con la estructura mínima hacemos: […]

Abrir publicación
PowerDNS sobre Docker o Podman, fácil y rápido 1

PowerDNS sobre Docker o Podman, fácil y rápido

Que es PowerDNS y DNS como servicio crítico PowerDNS es un servidor DNS, siendo este un servicio especialmente crítico en cualquier infraestructura que deseemos desplegar, ya que es el principal punto de conexión entre servicios y operadores. Si de todas las opciones que nos encontramos cuando buscamos un servidor DNS (podemos ver una larga lista en https://en.wikipedia.org/wiki/Comparison_of_DNS_server_software) buscamos las tres siguientes condiciones: que se pueda gestionar fácilmente, despliegue sencillo y OpenSource nos vamos a quedar en una solo opción: PowerDNS y para su gestión PowerDNS-admin. PowerDNS ( cuyo desarrollo se puede ver en https://github.com/PowerDNS/pdns y tiene más de 1800 estrellas) es un potente servidor DNS cuya características más interesantes para la gestión son disponer de un servicio web con una potente API y ser capaz de almacenar la información en bases de datos, como MySQL. Y seleccionamos PowerDNS-Admin por dos razones: Está activamente mantenido (https://github.com/ngoduykhanh/PowerDNS-Admin, más de 750 estrellas) y visualmente es un entorno más amigable al tener un formato parecido al que las herramientas de RedHat están usando actualmente. ¿Porqué PowerDNS con PowerDNS-Admin? Porque conforman un potente paquete donde tenemos las siguientes ventajas: Fácil de instalar Fácil de mantener Interfaz intuitivo Todo está guardado en una base de datos (lo que facilita replicación, copias de seguridad, alta disponibilidad, etc). No requiere configuración especial del navegador (como es el caso de RedHat IDM que requiere instalar el certificado del servidor). Para la gestión de los operadores dispone de autenticación contra múltiples fuentes (LDAP, AD, SAML, Github, Google, etc). Dispone de control sobre los permisos de acceso a los dominios A estas ventajas hay que unirles la existencia de múltiples contenedores que facilitan sobremanera como desplegar y actualizar está solución. Desplegar PowerDNS con Docker-Composer La solución con PowerDNS consta de tres partes: el servidor dns, para el cual haremos uso de contenedor pschiffe/pdns-mysql:alpine (https://github.com/pschiffe/docker-pdns/tree/master/pdns), el servidor de base de datos mariadb a través del contenedor yobasystems/alpine-mariadb(https://github.com/yobasystems/alpine-mariadb) y el contenedor aescanero/powerdns-admin que hemos explicado en un post anterior (Docker: Reducir el tamaño de un contenedor). Es importante indicar que los tres contenedores tienen un mantenimiento activo y son de reducido tamaño, lo que permite un rápido despliegue. Los puertos 53/UDP y 9191/TCP deben de estar disponibles en la máquina que ejecute los contenedores. Para poder dotar de espacio de almacenamiento en la base de datos se le ha añadido un volumen a la base de datos mariadb, para obtener de esa manera […]

Volver arriba