Su comando es ligeramente incorrecto:echo
se ejecuta como root pero la redirección en sí misma (>
) se ejecuta como usuario, por lo que no puede escribir /sys/
.
El siguiente comando funciona bien ambos en container-vm (basado en Debian) y gci (basado en Chromeos):
sudo sh -c 'echo never > /sys/kernel/mm/transparent_hugepage/enabled'
Mantener esta configuración en container-vm
Agregue este parámetro de línea de comando del kernel en /etc/default/grub
(no olvide ejecutar sudo update-grub
y sudo reboot
después):
GRUB_CMDLINE_LINUX="... transparent_hugepage=never"
Mantener esta configuración en gci
Primero, usando la consola en la nube, copie la plantilla de instancia que está usando el grupo de nodos.
En segundo lugar, en metadatos, cambie el valor de los datos de usuario:
#cloud-config
write_files:
- path: /etc/systemd/system/hugepage.service
permissions: 0644
owner: root
content: |
[Unit]
Description=Disable THP
[Service]
Type=oneshot
ExecStart=/bin/sh -c "echo never > /sys/kernel/mm/transparent_hugepage/enabled"
[Install]
WantedBy=kubernetes.target
...
runcmd:
- ...
- systemctl enable hugepage.service
- systemctl start kubernetes.target
Tercero, cambie la plantilla de instancia a la recién creada:
gcloud compute instance-groups managed set-instance-template \
gke-YOUCLUSTER-YOURPOOL-grp \
--template=YOURNEWTEMPLATENAME \
--zone=...
En cuarto lugar, vuelva a crear la(s) instancia(s):
gcloud compute instance-groups managed recreate-instances \
gke-YOUCLUSTER-YOURPOOL-grp \
--zone=... \
--instances=...
Las instancias perderán todos los datos y llegar a THP deshabilitado. Todas las instancias nuevas también tendrán THP deshabilitado (en este grupo de nodos).