¿Cómo crear contenedores con OpenVZ?

Logo OpenVZ

Este es el tercer y último artículo de la serie de tres artículos sobre OpenVZ; en este artículo vamos a conocer cómo crear un contenedor en nuestro HN y habilitar el acceso a internet.

Los prerequisitos para seguir este artículo de forma práctica son:

  • Haber realizado los pasos del segundo artículo relacionado a OpenVZ.
  • Dirección IP pública del HN.
  • Nombre de la interface de red del HN.
  • Rango de red que se usará para los contenedores.

Muy bien, teniendo los puntos anteriores listos y habiendo iniciado sesión como root en nuestro HN estamos listos para comenzar.

1. Lo primero que vamos a hacer es descargar un template del sistema operativo que vamos a instalar en nuestro contenedor. En esta ubicación puedes encontrar un listado de templates publicados por la comunidad de OpenVZ. Una vez hayamos elegido nuestro template procedemos a descargarlo en /vz/template/cache sin descomprimirlo, en nuestro caso vamos a instalar la versión minimal de CentOS 7

wget /vz/template/cache/ http://download.openvz.org/template/precreated/centos-7-x86_64-minimal.tar.gz;

2. El siguiente paso es crear nuestro contenedor. Este contenedor lo vamos a crear con la cantidad de recursos físicos que se asignan por defecto, pero estos valores pueden ser modificados al momento de crear el contenedor. Par mas información sobre como limitar los recursos puedes consultar el manual de vzctl. Para crear el contenedor vamos indicar un identificador y el template que deseamos usar; nuestro identificador será 100 y el template será el que descargamos en el paso anterior. Es posible listar los templates disponibles con el comando ls /vz/template/cache/

vzctl create 100 --ostemplate centos-7-x86_64;

3. Una vez creado nuestro contenedor procedemos a asignarle su nombre de host, dirección IP y el nameserver que usará para las resoluciones DNS; en el comando debemos indicar el identificador del contenedor al cual le vamos a asignar estos valores. Para este ejemplo vamos a usar la IP de uno de los servidores DNS de Google

vzctl set 100 --hostname example.com --ipadd 192.168.0.100 --namesever 8.8.8.8 --save;

4. Ahora que tenemos nuestro contenedor con la configuración básica vamos a iniciarlo

vzctl start 100;

5. En este punto ya hemos creado y configurado nuestro contenedor y lo hemos iniciado; el comando vzlist permite ver los contenedores que se encuentran en ejecución actualmente. El paso siguiente será agregar las reglas necesarias en IPtables para permitir que el contenedor se conecte a internet (en el comando siguiente ip_publica representa la IP pública de tu HN)

iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -o eth0 -j SNAT --to ip_publica;

6. ¡Listo! Nuestro contenedor ha quedado creado, configurado y con acceso a internet. Solo queda acceder a nuestro contenedor y probar el acceso a internet

vzctl enter 100;
wget --server-response http://www.google.com;

Espero que estos tres sencillos artículos te hayan servido para darte cuenta del potencial de OpenVZ.

Si te interesa este tipo de contenido y no quieres perderte nuestros artículos, puedes registrarte para recibir notificaciones de contenido nuevo en tu correo, o darle like a nuestra Facebook Page. Para conocer nuestros planes de hosting ingresa hosting.smartbox.host.

No olvides comentar ?

¿Cómo instalar OpenVZ?

Logo OpenVZ

Este es el segundo artículo de la serie de tres artículos sobre OpenVZ; en este artículo vamos a conocer cómo se lleva a cabo la instalación de OpenVZ.

Como mencionamos en el artículo anterior, el sistema operativo tanto para los anfitriones (el anfitrión es nuestro servidor físico, también conocido como Hardware Node, HN ó VE0) como para los huéspedes (los huéspedes son nuestros Entornos Virtuales, también conocidos como VE ó VPS) debe ser Linux. En nuestro caso vamos a revisar los pasos requeridos para llevar a cabo la instalación de OpenVZ sobre nuestro anfitrión al que previamente hemos instalado CentOS 6, así que los prerequisitos para seguir este artículo de forma práctica son:

  • Servidor físico con CentOS release 6.8 minimal instalado. De ahora en adelante HN.
  • Acceso root sobre el HN.
  • Acceso a internet desde el HN.
  • Software wget instalado en el HN.

Bien, ¡menos charla y mas acción!

1. Lo primero que debemos hacer es acceder como root al HN,una vez allí procedemos a descargar el repositorio de OpenVZ.

wget -P /etc/yum.repos.d/ https://download.openvz.org/openvz.repo;

2. En este caso vamos a pasar por alto la validación de la firma de los paquetes y vamos a instalar el kernel de OpenVZ sin realizar la validación, aunque para un servidor de producción es necesario realizar la validación para garantizar que los paquetes no hayan sido manipulados.

yum install -y vzkernel;

3. Luego de instalado será necesario modificar algunos parámetros del kernel para garantizar que OpenVZ funcione correctamente. En nuestro caso lo que vamos a hacer es agregar los parámetros necesarios al final del archivo sysctl.conf, ya que el sistema sobreescribe estos parámetros y aplica el último valor leído desde el archivo sysctl.conf. Todo el fragmento de código siguiente es un único comando.

echo "
#####
# Inicio - Customización del kernel
#####
# Kernel parameters configuration for OpenVZ
net.ipv4.ip_forward = 1
net.ipv6.conf.default.forwarding = 1
net.ipv6.conf.all.forwarding = 1
net.ipv4.conf.default.proxy_arp = 0

# Enables source route verification
net.ipv4.conf.all.rp_filter = 1

# Enables the magic-sysrq key
kernel.sysrq = 1

# We do not want all our interfaces to send redirects
net.ipv4.conf.default.send_redirects = 1
net.ipv4.conf.all.send_redirects = 0
#####
# Final - Customización del kernel
#####
" >> /etc/sysctl.conf;

4. El siguiente paso que vamos a realizar es inhabilitar SELinux

echo "SELINUX=disabled" > /etc/sysconfig/selinux;

5. Luego vamos a instalar las herramientas de usuario de OpenVZ

yum install -y vzctl vzquota ploop;

6. ¡Listo! Hemos finalizado la instalación de OpenVZ, solo queda reiniciar el HN

/sbin/shutdown -r now;

7. Al iniciar el sistema selecciona OpenVZ en el menú del boot loader, aunque esta debe ser la elección por defecto del sistema. Luego de iniciar sesión como root nuevamente, procedemos a validar que las modificaciones realizadas al kernel sean persistentes, es decir, que continúen siendo las mismas luego de haber reiniciado el HN. La salida de los siguientes comandos deberán mostrar los valores asignados durante el paso número 3.

sysctl net.ipv4.ip_forward;
sysctl net.ipv6.conf.default.forwarding;
sysctl net.ipv6.conf.all.forwarding;
sysctl net.ipv4.conf.default.proxy_arp;
sysctl net.ipv4.conf.all.rp_filter;
sysctl kernel.sysrq;
sysctl net.ipv4.conf.default.send_redirects;
sysctl net.ipv4.conf.all.send_redirects;

Si los valores de salida de los comandos anteriores son iguales a los valores asignados en el paso número 3 entonces todo ha salido bien y tenemos nuestro sistema listo para comenzar a crear contenedores.

Has aquí el segundo artículo de la serie de tres relacionados a OpenVZ, en nuestro tercer artículo veremos como crear contenedores y habilitar el acceso a internet.

Si te interesa este tipo de contenido y no quieres perderte nuestros artículos, puedes registrarte para recibir notificaciones de contenido nuevo en tu correo, o darle like a nuestra Facebook Page. Para conocer nuestros planes de hosting ingresa hosting.smartbox.host.

No olvides comentar ?