Tipos de equilibrio de carga
Hay dos tipos de plataformas de equilibrio de carga: HAProxy y servidor virtual de Linux, también conocido como LVS, y Seesaw v2 es una plataforma de equilibrio de carga basada en un servidor virtual de Linux.
Seesaw es una herramienta muy flexible que se puede utilizar como un balanceador de carga básico para sitios web de tamaño pequeño a mediano o como un balanceador de carga avanzado para redes de nivel corporativo donde una docena de servidores están interconectados. Admite algunas de las funciones avanzadas de Ipv6, como anycast, multicast, unicast y retorno directo del servidor, múltiples VLAN.
Tener un diseño robusto lo hace adecuado para un fácil mantenimiento y confiabilidad. Está diseñado en 2012 para satisfacer las necesidades únicas de Google, que las opciones existentes no cumplían. Está desarrollado en Go, que es un lenguaje de tipado estático y se deriva de Lenguaje C. Contiene muchas características de lenguaje de alto nivel, como recolección de basura para limpiar la memoria, seguridad de tipos, matrices de longitud variable, capacidades de escritura dinámica y mapas de valores clave, y una gran biblioteca estándar. Golang es un lenguaje compilado desarrollado por Google. Muchas aplicaciones modernas como Docker, Kubernetes, InfluxDB, Gogs (Go Git Service) y Caddy están escritas en Go.
Requisito previo
- El enlace para descargar la última versión de GoLang para Linux está disponible en https: // golang.org / dl / en forma de archivo de almacenamiento.
- La integridad del tarball se puede verificar comparando el valor hash generado usando el comando shassum con el valor hash proporcionado en el sitio web. Si hay alguna diferencia en los valores hash, siempre se debe descargar un nuevo tarball del archivo. Si la verificación es exitosa, continúe con el tutorial.
En este comando, -a se usa para especificar el algoritmo para generar valor hash y este comando en su conjunto realiza la suma de comprobación SHA256 de los archivos de almacenamiento.
- El siguiente paso es extraer los archivos tar, si la verificación de integridad es exitosa, en el directorio / usr / local usando el comando que se proporciona a continuación: $ sudo tar -C / user / local -xvzf go1.11.5.linux-amd64.alquitrán.gz
En este comando -C especifica el directorio de destino donde se envían los archivos extraídos.
- Para configurar Go Environment en Ubuntu, configure el espacio de trabajo de Go creando un directorio ~ / go_project_directory que es la raíz del espacio de trabajo. El espacio de trabajo contiene tres directorios principales
• bin: contiene archivos binarios del golang.
• src- que almacena todos los archivos fuente.
• pkg- que almacenará los objetos del paquete.
Se puede crear un árbol de directorios de la siguiente manera: $ mkdir -p ~ / go_projects / bin, src, pkg
$ cd go_projects /
$ ls - Para ejecutar Go, siga como el resto de programas de Linux sin especificar su ruta absoluta. El directorio donde está instalado golang debe usarse como uno de los valores de la variable de entorno $ PATH.
- Para agregar / usr / local / go / bin a la variable de entorno PATH, se debe ejecutar el siguiente comando:
O puede abrirlo en la terminal usando el comando
$ vi .perfilLuego / usr / local / go / bin debe ser agregado a la ruta. Luego, todos los cambios deben guardarse y el usuario debe cerrar la sesión del perfil y volver a iniciar sesión para continuar con los procedimientos.
- Todas las rutas se establecen en el perfil configurando los valores de GOPATH y GOBIN.
exportar GOBIN = "$ GOPATH / bin"- Si GoLang está instalado en un directorio personalizado que no sea el predeterminado (/ usr / local), existe el requisito de especificar ese directorio como la variable GOROOT. Se hace en th .perfil por
export PATH = $ PATH: / usr / local / go / bin: $ GOPATH / bin - El entorno de GoLang después de una configuración exitosa se puede verificar en la terminal ejecutando el siguiente comando: $ go
$ ir env
Instalación de balancín
- Era un requisito instalar Go, ya que Seesaw v2 está desarrollado con él y depende de varios paquetes de Go como:
> github.com / golang / glog
> github.com / dlintw / goconf
> github.com / golang / protobuf / proto
> github.com / miekg / dns
- Si se desea regenerar el código protobuf, también se necesitan el compilador protobuf y el generador del compilador Go protobuf: $ apt-get install protobuf-compiler
$ ir a buscar -u github.com / golamg / protobuf / proto, proto-gen-go- Siempre debe asegurarse de que $ GOPATH / bin esté en $ PATH y en el directorio de balancín.
- El siguiente paso es ejecutar el comando make, ya que lleva a la adición de varios binarios en $ GOPATH / bin con un prefijo seesaw_, estos binarios deben instalarse en las ubicaciones adecuadas.
$ hacer prueba
$ hacer instalar
$ hacer protoDespués de ejecutar los tres comandos anteriores, los binarios de balancín se configuran en las ubicaciones adecuadas. se puede hacer creando seesaw_install en $ GOPATH / bin y ejecutando el siguiente script.
SEESAW_BIN = "/ usr / local / balancín"
SEESAW_ETC = "/ etc / balancín
SEESAW_LOG = "/ var / log / balancín"
INIT = 'ps -p 1 -o comm ='
instalar -d "$ SEESAW_BIN" "$ SEESAW_ETC" "$ SEESAW_LOG"
instalar "$ GOPATH / bin / seesaw_cli" / usr / bin / seesaw
para el componente en ecu, engine, ha, healthcheck, ncc, watchdog; hacer
instalar "$ GOPATH / bin / seesaw _ $ component" "$ SEESAW_BIN"
hecho
si [$ INIT = "init"]; luego
instalar "etc / init / seesaw_watchdog.conf "" / etc / init "
elif [$ INIT = "systemd"]; luego
instalar "etc / systemd / system / seesaw_watchdog.servicio "" / etc / systemd / system "
systemctl --system daemon-reload
fi
instalar "etc / seesaw / watchdog.cfg "" $ SEESAW_ETC "
# Habilite CAP_NET_RAW para binarios de balancín que requieren sockets sin procesar.
/ sbin / setcap cap_net_raw + ep "$ SEESAW_BIN / seesaw_ha"
/ sbin / setcap cap_net_raw + ep "$ SEESAW_BIN / seesaw_healthcheck"
Configuración de balancín
- Cada nodo requiere un balancín.cfg, conocido como archivo de configuración, donde se almacena la información sobre el nodo y su par perteneciente. Protobuf es el archivo de configuración del clúster para cada clúster y está en formato de texto sin formato. Esto permite que se abra con cualquier editor de texto de Linux como nano, vi. Se puede cambiar el balancín.cfg usando el siguiente comando:
Un ejemplo del balancín.archivo cfg
[grupo]anycast_enabled = falso
nombre = au-syd
node_ipv4 = 192.168.
node_ipv6 = 2015: café :: 2
peer_ipv4 = 192.168.10.3
peer_ipv6 = 2015: café :: 3
vip_ipv4 = 192.168.10.1
vip_ipv6 = 2015: café :: 1
[config_server]
primario = balancín-config1.ejemplo.com
secundario = balancín-config2.ejemplo.com
terciario = seesaw-config3.ejemplo.com
[interfaz]
nodo = eth0
lb = eth1
La descripción de la cript antes mencionada se da a continuación
- anycast_enabled - Anycast se puede habilitar estableciendo este valor.
- nombre: el nombre corto que se le da a este clúster.
- node_ipv4: dirección IPv4 del nodo Seesaw actual.
- peer_ipv4: dirección IPv4 de nuestro nodo de balancín par.
- vip_ipv4: la dirección IPv4 para la IP virtual del clúster actual.
Conclusión
Debido a las inmensas ventajas de la función de equilibrio de carga, a menudo se usa en muchas redes corporativas. Hay tres tipos de modos de entrega en general en el estándar IPv4, Unicast, Multicast y Broadcast. Anycast se acepta en IPv6. Anycast rara vez está presente en IPv4. Anycast utiliza para identificar una interfaz de un grupo de interfaces que se conectan al mismo servicio. Las VIP son direcciones IP virtuales que no pertenecen a ninguna interfaz de red física. Un equilibrador de carga debe ser confiable y tener las características más importantes de los servicios en la nube.
Muchos de los balanceadores de carga en el mercado no tienen monitoreo de servidor backend y muchas otras características específicas. Hay varios métodos de equilibrio de carga en la capa de interconexión de sistemas abiertos 2/3/4. Estas capas son la capa de enlace de datos, la capa de red y la capa de transporte. Seesaw utiliza la técnica de capa 4 con NAT Y DSR (Direct Server Return). DSR modifica el flujo de tráfico o la carga al permitir que el servidor responda directamente al cliente. Con todo, el balanceador de carga Seesaw es robusto y confiable debido a estos aspectos.