コマンドが少し間違っています:echo
ルートとして実行されますが、リダイレクト自体(>
)ユーザーとして実行されるため、/sys/
を書き込むことはできません 。
次のコマンドは両方で正常に機能します container-vm(debianベース)およびgci(chromeosベース):
sudo sh -c 'echo never > /sys/kernel/mm/transparent_hugepage/enabled'
container-vmでこの設定を保持する
このカーネルコマンドラインパラメータを/etc/default/grub
に追加します (sudo update-grub
を実行することを忘れないでください およびsudo reboot
その後):
GRUB_CMDLINE_LINUX="... transparent_hugepage=never"
この設定をgciに保持する
まず、クラウドコンソールを使用して、ノードプールで使用されているインスタンステンプレートをコピーします。
次に、メタデータの下で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
3番目に、インスタンステンプレートを新しく作成したテンプレートに変更します。
gcloud compute instance-groups managed set-instance-template \
gke-YOUCLUSTER-YOURPOOL-grp \
--template=YOURNEWTEMPLATENAME \
--zone=...
4番目に、インスタンスを再作成します:
gcloud compute instance-groups managed recreate-instances \
gke-YOUCLUSTER-YOURPOOL-grp \
--zone=... \
--instances=...
インスタンスはすべてのデータを失う THPを無効にして思いつきます。すべての新しいインスタンスでは、THPも無効になります(このノードプール内)。