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: Chart.yaml: Que es la metainformación sobre el propio paquete. templates: Carpeta donde vamos a definir los objetos que van a ser desplegados en Kubernetes, pero que van a tener ciertas modificaciones para que sean flexibles. values.yaml: En los objetos a desplegar existirán una serie de variables que habrán de definirse (p.e. servidores a los que acceder, claves de acceso, bases de datos en un servidor, etc), en este fichero se definen los valores predefinidos de cada variable, para que posteriormente el usuario que lance el paquete pueda ajustarlo a su gusto. NOTES.txt: Dentro de “templates” se coloca este archivo que contendrá un mensaje sobre el resultado de la instalación del paquete, como puede ser como obtener la IP o URL de acceso. _helpers.tpl: Este archivo que también encontraremos dentro de la carpeta “templates” contiene definiciones de variables que podremos usar en las objetos, como es por ejemplo el nombre del paquete correctamente definido y que nos permitirá realizar múltiples despliegues de la misma aplicación en el mismo espacio de nombres simplemente cambiando el nombre de versión del despliegue. 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 […]

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