kubelet サービスの実行中にスワップを開けないのはなぜですか?
kubelet が再起動を繰り返す理由は、おそらくスワップ パーティションの問題によるものです。Kubernetes の kubelet コンポーネントは、デフォルトではスワップの使用をサポートしていないため、Kubernetes ホストでスワップを無効にすることを強くお勧めします。
スワップ パーティションが有効になっている場合、メモリが不足すると、kubelet は一部のデータをスワップ パーティションに書き込みます。これにより、kubelet プロセスが再起動を繰り返し、正しく機能しないために OS によって強制終了される可能性があります。
この問題を解決するには、次の手順を実行できます。
-
現在のシステムでスワップ パーティションが有効になっているかどうかを確認します。
$ swapon --show
出力がある場合は、スワップ パーティションが有効になっていることを意味します。
-
スワップ パーティションを無効にします。
$ sudo swapoff -a
-
/etc/fstab
ファイルを更新して、スワップ パーティションを永続的に無効にします。スワップ パーティションを含む行 (通常はswap
で始まります) を見つけて、コメントアウトするか削除します。 -
kubelet サービスを再起動します。
$ sudo systemctl restart kubelet
スワップ パーティションを無効にする前に、システムで利用可能なメモリがクラスタのニーズに対して十分であることを確認してください。メモリが不足していることがわかった場合は、ノードのメモリを増やすか、クラスタをスケールアップして問題を解決することを検討してください。