Redis
 sql >> Base de Dados >  >> NoSQL >> Redis

gke não pode desativar Transparent Huge Pages... permissão negada


Seu comando está um pouco incorreto:echo é executado como root, mas o próprio redirecionamento (> ) é executado como usuário, portanto, não pode escrever /sys/ .

O comando a seguir funciona bem ambos em container-vm (baseado em debian) e gci (baseado em chromeos):
sudo sh -c 'echo never > /sys/kernel/mm/transparent_hugepage/enabled'

Persistindo esta configuração em container-vm


Adicione este parâmetro de linha de comando do kernel em /etc/default/grub (não se esqueça de executar sudo update-grub e sudo reboot mais tarde):
GRUB_CMDLINE_LINUX="... transparent_hugepage=never"

Persistindo esta configuração no gci


Primeiro, usando o console da nuvem, copie o modelo de instância que está em uso pelo pool de nós.

Segundo, em metadados, altere o valor de userdata:
#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

Terceiro, altere o modelo de instância para o recém-criado:
gcloud compute instance-groups managed set-instance-template \
  gke-YOUCLUSTER-YOURPOOL-grp \
  --template=YOURNEWTEMPLATENAME \
  --zone=...

Em seguida, recrie a(s) instância(s):
gcloud compute instance-groups managed recreate-instances \
   gke-YOUCLUSTER-YOURPOOL-grp \
   --zone=... \
   --instances=...

As instâncias perdem todos os dados e chegar com THP desabilitado. Todas as novas instâncias também terão o THP desabilitado (neste pool de nós).