1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

KubernetesでLimitedSwapを使用する設定方法

Last updated at Posted at 2025-05-21

前提条件

  • Kubernetes v1.22以降が必要(v1.28でベータ、最新のv1.32では機能改善あり)
  • cgroup v2が必須(cgroup v1ではサポートされていない)
  • ノード上にスワップが有効かつプロビジョニングされていること

kubelet設定

kubelet設定ファイルにおける表現:

failSwapOn: false  # スワップが有効な場合でもkubeletを起動可能にする
memorySwap:
  swapBehavior: LimitedSwap  # スワップポリシーを設定

swapBehaviorのオプション:

  • UnlimitedSwap: (v1.32で削除) Kubernetesワークロードはシステム制限までスワップメモリを無制限に使用可能
  • LimitedSwap: Burstable QoSのポッドのみスワップ使用可能で、使用量は制限される
  • NoSwap (デフォルト): Kubernetesワークロードはスワップを使用不可

QoSクラスとスワップの関係

QoSクラスの説明

  1. Guaranteed:

    • すべてのコンテナがメモリとCPUのrequestslimitsを指定し、両方が同じ値
    • 最も高い優先度を持ち、リソース不足時に最後に削除される
    • スワップ: 通常はスワップを使用しない
  2. Burstable:

    • 少なくとも1つのコンテナがメモリまたはCPUのrequestsを指定
    • requestslimitsが異なるか、limitsが指定されていない場合
    • スワップ: LimitedSwap設定時のみスワップ使用可能
  3. BestEffort:

    • どのコンテナもrequestslimitsも指定していない
    • リソース不足時に最初に削除される最低優先度

LimitedSwapモードでのBurstable QoSの動作

  • Burstable QoSのポッドのみがスワップメモリを使用可能
  • ポッドに割り当てられるスワップ量は、そのポッドが要求するメモリ量とノードの総メモリ量の比率に基づいて自動的に決定される
  • Burstable QoSでもメモリのrequestslimitsを同じ値に設定すれば、そのコンテナはスワップを使用しない

Pod仕様での関連表現

apiVersion: v1
kind: Pod
metadata:
  name: example-pod
spec:
  containers:
  - name: app
    image: example/app
    resources:
      requests:
        memory: "128Mi"  # メモリリクエスト
      limits:
        memory: "256Mi"  # メモリ制限

このPodはメモリのrequestslimitsが異なるため、Burstable QoSクラスとなり:

  • kubeletがLimitedSwapモードの場合: スワップメモリを使用可能
  • kubeletがNoSwapモードの場合: スワップメモリは使用不可

セキュリティ上の注意点

  • セキュリティリスクを軽減するため、暗号化されたスワップを使用することが推奨されています
  • 重要な情報(Kubernetesのシークレットなど)がディスクにスワップアウトされる可能性があるため

注意点

  • 現在のところ、各ワークロードごとに個別のスワップ制限を設定するAPIはサポートされていない
  • スワップ使用許可は、kubeletレベルで全体的に設定される
  • メモリ使用量とスワップ使用量に関する指標はkubeletの/metrics/resource/stats/summaryエンドポイントから取得可能
1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?