Fondo
Las tareas se mueven con frecuencia en DC / OS, los recursos deben resolverse dinámicamente mediante un protocolo de aplicación y se hace referencia a ellos por nombre. Esto significa que DNS es una parte integral de DC / OS. En lugar de implementar un cliente ZooKeeper o Mesos en cada proyecto, hemos elegido DNS como la lengua franca para el descubrimiento entre todos nuestros componentes en DC / OS.
Esto se implementa utilizando Mesos-DNS, que se ejecuta en cada uno de los maestros DC / OS. En los sistemas cliente, colocamos cada uno de los maestros en /etc/resolv.conf
. Si un maestro deja de funcionar, las consultas DNS a ese maestro expirarán. El proxy DNS distribuido resuelve este problema enviando consultas DNS dobles a múltiples maestros y devolviendo el primer resultado.
- ¿Por qué Quora tiene constantemente una advertencia de "no se puede conectar a Internet"?
- Cómo dominar el arte de las redes
- Alguien hackeó mi dirección IP y está rastreando mi teléfono y también me está molestando. También él es mi pariente. Quiero darle una lección que no olvidará. ¿Cuáles son algunas ideas?
- ¿Cuáles son las diferencias importantes entre un firewall de hardware y un firewall de software?
- ¿Cuáles son algunos proyectos simples pero buenos en redes?
Para aliviar aún más el riesgo, el Proxy DNS Distribuido enruta las consultas a los nodos que determina que son más óptimos para hacer una consulta. Específicamente, si un dominio termina en mesos
, enviará consultas a los maestros de Mesos. Si no termina en mesos
, enviará la consulta a 2 de los nodos configurados aguas arriba.
Implementación
El Proxy DNS distribuido en sí mismo es muy simple. Tiene lógica de despacho dual y aloja un dominio spartan
que solo tiene un registro: ready.spartan
. El propósito de este registro es investigar la disponibilidad del Proxy DNS Distribuido. Muchos servicios, incluido ICMP, hacen ping a esta dirección antes de comenzar.
El proxy DNS distribuido obtiene su información del expositor. Por esta razón, es crítico que el Expositor esté configurado correctamente en los maestros. Alternativamente, si el clúster se configura utilizando maestros estáticos, los cargará desde el archivo de configuración estática.
ZooKeeper
El proxy DNS distribuido también permite una alta disponibilidad de ZooKeepers. Siempre puede usar las direcciones zk-1.zk
zk-2.zk
, zk-3.zk
zk-4.zk
, zk-4.zk
, zk-4.zk
, zk-5.zk
. Si hay menos de 5 ZooKeepers, el Proxy DNS Distribuido apuntará múltiples registros en un solo ZooKeeper.
Perro guardián
Dado que DNS es un subsistema tan especializado y sensible, hemos elegido protegerlo con un perro guardián. Hay un servicio instalado en cada nodo que se ejecuta cada 5 minutos y comprueba si puede consultar ready.spartan
. Para evitar efectos armónicos, duerme durante 1 minuto después de su hora de inicio inicial para evitar correr espartano. Puede monitorear el estado del sistema del watchdog como DNS Dispatcher Watchdog en el panel de estado del sistema.
Además de este perro guardián, también ejecutamos genresolv, que verifica si el Proxy DNS Distribuido está vivo o no para generar el resolv.conf. Si cree que el Proxy DNS distribuido no está activo, reescribe el resolv.conf con los resolvers ascendentes que ha configurado en su clúster DC / OS.
Interfaz de proxy DNS distribuido
El proxy DNS distribuido crea su propia interfaz de red. Esta interfaz es en realidad un dispositivo ficticio llamado spartan
. Este dispositivo aloja 3 IP, 198.51.100.1/32
, 198.51.100.2/32
, 198.51.100.3/32
. Puede supervisar el estado del sistema del Proxy DNS como el componente del Despachador DNS en el panel de estado del sistema.