Redis
 sql >> Datenbank >  >> NoSQL >> Redis

gke kann Transparent Huge Pages nicht deaktivieren... Berechtigung verweigert

Ihr Befehl ist etwas falsch:echo läuft als root, aber die Umleitung selbst (> ) wird als Benutzer ausgeführt, sodass /sys/ nicht geschrieben werden kann .

Der folgende Befehl funktioniert gut beide auf container-vm (debian-basiert) und gci (chromeos-basiert):

sudo sh -c 'echo never > /sys/kernel/mm/transparent_hugepage/enabled'

Beibehalten dieser Einstellung auf container-vm

Fügen Sie diesen Kernel-Befehlszeilenparameter in /etc/default/grub hinzu (Vergessen Sie nicht, sudo update-grub auszuführen und sudo reboot danach):

GRUB_CMDLINE_LINUX="... transparent_hugepage=never"

Diese Einstellung auf gci beibehalten

Kopieren Sie zunächst mithilfe der Cloud-Konsole die Instanzvorlage, die vom Knotenpool verwendet wird.

Zweitens ändern Sie unter Metadaten den Wert für Benutzerdaten:

#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

Drittens ändern Sie die Instanzvorlage in die neu erstellte:

gcloud compute instance-groups managed set-instance-template \
  gke-YOUCLUSTER-YOURPOOL-grp \
  --template=YOURNEWTEMPLATENAME \
  --zone=...

Als nächstes erstellen Sie die Instanz(en) neu:

gcloud compute instance-groups managed recreate-instances \
   gke-YOUCLUSTER-YOURPOOL-grp \
   --zone=... \
   --instances=...

Die Instanzen werden alle Daten verlieren und kommen mit THP deaktiviert. Bei allen neuen Instanzen wird THP ebenfalls deaktiviert (in diesem Knotenpool).