Amazon Elastic Kubernetes Service (Amazon EKS) ワーカーノードで発生する、「デバイスに空き領域がありません: unknown」というエラーを解決したいです。
Amazon EKS ワーカーノードの「デバイスに空き領域がありません: unknown」エラーを解決するには、次の手順を実行します。
ワーカーノードを閉鎖してワーカーノードをクラスターから削除し、ポッドがスケジュールされないようにします。 注: **example-worker-node ** は、お使いのワーカーノード名に置き換えてください。ワーカーノード名の一部として正しい IP アドレスを使用していることを確認してください (ip-123-456-78-90.aws-region.compute.internal など)。
kubectl cordon example-worker-node
ワーカーノードをドレインします。 注: **example-worker-node ** は、お使いのワーカーノード名に置き換えてください。ワーカーノード名の一部として正しい IP アドレスを使用していることを確認してください (ip-123-456-78-90.aws-region.compute.internal など)。
kubectl drain --ignore-daemonsets example-worker-node
AWS マネジメントコンソールを開きます。
影響を受けているワーカーノードに接続するには、SSH または AWS Systems Manager の機能であるSessions Manager を使用します。
root ユーザーに切り替えます。
sudo su -
不要なイメージと使用していないイメージを手動で削除します。デフォルトでは、名前空間は k8s.io です。 注: このコマンドを実行すると、「Buildkit が実行されていないか、インストールされていません」というエラーメッセージが表示される場合があります。このエラーや、このコマンドを実行したときに表示されるその他のエラーメッセージは無視してかまいません。
nerdctl system prune --all --namespace=k8s.io
ワーカーノードを閉鎖し、ワーカーノードをサービスに戻します。 注: **example-worker-node ** は、お使いのワーカーノード名に置き換えてください。ワーカーノード名の一部として正しい IP アドレスを使用していることを確認してください (ip-123-456-78-90.aws-region.compute.internal など)。
kubectl uncordon example-worker-node
ワーカーノードのステータスが Ready であることを確認します。 注: **example-worker-node ** は、お使いのワーカーノード名に置き換えてください。ワーカーノード名の一部として正しい IP アドレスを使用していることを確認してください (ip-123-456-78-90.aws-region.compute.internal など)。
kubectl get nodes | grep example-worker-node
ポッドをスケジュールできることと、ポッドが正常に実行されていることを確認します。 注: **example-worker-node ** は、お使いのワーカーノード名に置き換えてください。ワーカーノード名の一部として正しい IP アドレスを使用していることを確認してください (ip-123-456-78-90.aws-region.compute.internal など)。
kubectl get pods -A -o wide | grep example-worker-node