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
vm.swappiness = 1
root@example:~# cat /proc/sys/vm/swappiness
1
Crear partición SWAP en el disco adicional#
Listar los dispositivos de bloque y verificar que /dev/sdb1
se encuentre montado en el directorio /mnt
Warning
En caso de que la máquina virtual no tenga el disco /dev/sdb
, se tendrá que crear un swap-file en la ruta /.swap
con dueño root:root
y permisos 0600
root@example:~# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 30G 0 disk
|-sda1 8:1 0 29.9G 0 part /
|-sda14 8:14 0 3M 0 part
\-sda15 8:15 0 124M 0 part /boot/efi
sdb 8:16 0 4G 0 disk
\-sdb1 8:17 0 4G 0 part /mnt
Desmontar el directorio /mnt
para dejar de usar la partición /dev/sdb1
root@example:~# umount /mnt
Editar el archivo /etc/fstab
para deshabilitar el punto de montaje de la partición /dev/sdb1
- Comentar la siguiente línea al final del archivo
/etc/fstab
# /dev/disk/cloud/azure_resource-part1 /mnt auto defaults,nofail,comment=cloudconfig 0 2
Crear un espacio de SWAP en la partición /dev/sdb1
Danger
Verificar que la partición en la que se crea el espacio de SWAP no esté montada y no esté siendo utilizada por el sistema operativo
root@example:~# mkswap /dev/sdb1
mkswap: /dev/sdb1: warning: wiping old swap signature.
Setting up swapspace version 1, size = 4 GiB (4294967296 bytes)
no label, UUID=dd8a91f6-ca32-30e0-983c-8f309d653045
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=ad6b1df1-54de-4e70-800b-fccd17238cbc / ext4 rw,discard,errors=remount-ro,x-systemd.growfs 0 1
UUID=E098-B03A /boot/efi vfat defaults 0 0
#/dev/disk/cloud/azure_resource-part1 /mnt auto defaults,nofail,comment=cloudconfig 0 2
# swap
/dev/sdb1 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: /dev/sdb1: found signature [pagesize=4096, signature=swap]
swapon: /dev/sdb1: pagesize=4096, swapsize=4292870144, devsize=4292870144
swapon /dev/sdb1
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 83 543 1 287 697
Swap: 4093 0 4093
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 |