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
- https://www.linux.com/training-tutorials/increase-your-available-swap-space-swap-file/
- https://www.linuxjournal.com/article/10678
- https://www.linuxjournal.com/video/emergency-swapfile-when-your-memory-fills
- https://wiki.debian.org/Swap
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 |