Preparación de la máquina virtual para k3s#


Danger

  • Las configuraciones aqui listadas son únicamente para un ambiente de pruebas
  • Ninguna de estas configuraciones se debe realizar en ambientes de producción

Warning

  • Estas configuraciones se realizan para que el cluster de k3s pueda ejecutarse en el equipo B1S que tiene únicamente 1 vCPU y 512 MB de RAM
  • No utilizar el tipo de instancia B1S para clusters de Kubernetes en ambientes de producción

Revisar el uso de memoria RAM en el equipo#

Revisar el uso de memoria RAM, debería ser significantemente menos que cuando se inició esta práctica

root@example:~# free -m
               total        used        free      shared  buff/cache   available
Mem:             913         498         206           1         209         281
Swap:              0           0           0

Deshabilitar los servicios de red del proyecto anterior#

Danger

  • Unicamente deshabilita los servicios de red
  • No vayas a desinstalarlos

Deshabilitar servidor web#

Deshabilita el demonio de HTTP instalado en la práctica anterior

root@example:~# systemctl disable --now apache2 nginx
    ...

Deshabilitar base de datos#

Deshabilita el servicio de base de datos instalado en la práctica anterior

root@example:~# systemctl disable --now mariadb postgresql
    ...

Deshabilitar caché en RAM#

Deshabilita el servicio de caché en RAM instalado en la práctica anterior

root@example:~# systemctl disable --now memcached redis-server
    ...

Deshabilitar servicio de la aplicación#

Deshabilita los servicios de SystemD instalados por tu aplicación en la práctica anterior

Note

  • Esto depende de cada aplicación
root@example:~# systemctl disable --now mattermost
    ...

root@example:~# systemctl disable --now openproject openproject-web openproject-worker
    ...

Reemplazar el demonio de syslog#

Se debe reemplazar el demonio de syslog para hacer que la máquina virtual consuma menos memoria RAM

En este caso se va a reemplazar rsyslog con busybox-syslogd

root@example:~# apt remove rsyslog
    ...

root@example:~# apt install busybox-syslogd
    ...

Deshabilitar el servicio de actualizaciones automáticas#

Otra manera de bajar el uso de memoria RAM es deshabilitar el servicio unattended-upgrades

root@example:~# systemctl disable unattended-upgrades

Deshabilitar tareas programadas#

El equipo ejecuta algunas tareas de manera periódica. Estas tareas hacen que se incremente el uso de memoria RAM por lo que se pueden deshabilitar para el contexto de esta práctica

root@example:~# mkdir -vp /etc/cron.daily.disabled
root@example:~# mv -v /etc/cron.daily /etc/cron.daily.disabled
    ...

Reducir el uso de memoria de JournalD#

El demonio systemd-journald guarda las bitácoras de estado de los servicios del sistema, se pueden deshabilitar algunas funciones para reducir el uso de memoria RAM.

Establecer los siguientes valores en el archivo de configuración /etc/systemd/journald.conf

root@example:~# egrep -v '^\s*(#|$)' /etc/systemd/journald.conf
[Journal]
Storage=none
ForwardToSyslog=no
ForwardToKMsg=no
ForwardToConsole=no
ForwardToWall=no
ReadKMsg=no
Audit=no

Establecer un área de intercambio SWAP#

Desde la versión 1.22 de Kubernetes es posible utilizar memoria swap en los nodos del cluster, esta característica está en fase alpha de desarrollo por lo que puede cambiar en cualquier versión futura

Esto ayuda mucho a nodos con poca memoria RAM, como la máquina virtual de tipo B1S en Azure

Habilitar política de SWAP en sysctl#

Establecer la política vm.swappiness en el archivo de configuración /etc/sysctl.d/local.conf

root@example:~# cat >> /etc/sysctl.d/local.conf << EOF
###################################################################
# https://www.kernel.org/doc/html/latest/admin-guide/sysctl/vm.html#swappiness
vm.swappiness = 1
EOF

Recargar la configuración de sysctl para probar que los cambios surtieron efecto

root@example:~# sysctl -p

root@example:~# sysctl -p /etc/sysctl.d/local.conf
vm.swappiness = 1

root@example:~# cat /proc/sys/vm/swappiness
1

Crear swap-file en el archivo /.swap#

Preparar swap-file en el archivo /.swap

root@example:~# touch /.swap

root@example:~# chmod -c 0600 /.swap
mode of '/.swap' changed from 0644 (rw-r--r--) to 0600 (rw-------)

Crear archivo sparse para SWAP

root@example:~# dd if=/dev/zero of=/.swap bs=1M count=1024 status=progress
1051721728 bytes (1.1 GB, 1003 MiB) copied, 17 s, 61.8 MB/s
1024+0 records in
1024+0 records out
1073741824 bytes (1.1 GB, 1.0 GiB) copied, 18.6303 s, 57.6 MB/s

root@example:~# ls -lah /.swap
-rw------- 1 root root 1.0G May 22 12:56 /.swap

Crear área de intercambio swap en el archivo /.swap

root@example:~# mkswap -L swap /.swap
Setting up swapspace version 1, size = 1024 MiB (1073737728 bytes)
LABEL=swap, UUID=6298196b-9e0e-4440-b41b-367e0b671f91

Para más información sobre SWAP y swap-files

Crear configuración de montaje de SWAP#

Verificar que la línea donde se monta el directorio /mnt está conentada y establecer el punto de montaje para la partición SWAP en el archivo /etc/fstab

Warning

En caso de utilizar un swap-file reemplazar /dev/sdb1 con /.swap en el primer campo de /etc/fstab

root@example:~# cat /etc/fstab
# /etc/fstab: static file system information
UUID=c0db73f0-f7cd-43df-b16e-20ae1caca357 / ext4 rw,discard,errors=remount-ro,x-systemd.growfs 0 1
UUID=ECD7-6DBA /boot/efi vfat defaults 0 0
/dev/disk/cloud/azure_resource-part1    /mnt    auto    defaults,nofail,comment=cloudconfig 0   2

# swap
/.swap  none    swap    defaults    0   0   ⬅️

Habilitar SWAP#

Habilitar de manera manual la partición SWAP para verifica que la configuración es correcta

root@example:~# swapon -va
swapon: /.swap: found signature [pagesize=4096, signature=swap]
swapon: /.swap: pagesize=4096, swapsize=1073741824, devsize=1073741824
swapon /.swap

Revisar el uso de memoria RAM, debería ser significantemente menos que cuando se inició esta práctica

root@example:~# free -m
               total        used        free      shared  buff/cache   available
Mem:             863         182          62           0         618         547
Swap:           1023           0        1023    ⬅️

Verifica la configuración#

Reinicia el equipo para verificar que los cambios sean persistentes

root@example:~# reboot

Danger

  • Verifica que TODAS las configuraciones que hiciste estén presentes respués de reiniciar la máquina antes de continuar con la siguiente sección

Note

  • Continúa en la siguiente página si el uso de memoria RAM es menor o igual al mostrado anteriormente

Página anterior Arriba Página siguiente