私はいくつかのラボマシンでKubernetes 1.2.0を実行しています。マシンはスワップを有効にしています。マシンは他の目的にも使用されるため、私はグローバルにスワップを無効にすることはできません。kubeletのスワップを無効にする
私は次の問題を抱えています。メモリー制限付きのポッドを開始すると、コンテナーはメモリー限界に達した後にスワップを開始します。私は容器が殺されることを期待する。
this issueによれば、この問題は修正されていますが、それでもKubernetes 1.2.0で発生します。稼働中のコンテナをdocker inspect
で確認すると、MemorySwap = -1
とMemorySwappiness = -1
が表示されます。メモリの制限が低いポッドを起動すると、ほぼすぐにスワップが開始されます。
私はいくつかのアイデアを持っていたが、私はこれらのいずれかを実行する方法を見つけ出すことができませんでした:
- 変更にドッカーのデフォルト設定をので、何のコンテナがにパラメータを追加
- を交換することが許可されていませんKubernetesコンテナの設定には、ドッキングウィンドウのcgroup内で
--memory-swappiness=0
- フィドルを渡し、私はスワップを開始するコンテナを防ぐことができますどのようにグループ
のためにスワップ禁止して?
"スタッフはまだ動作しますが、リソースの分離もうまく機能しません" - これは当てはまりません。私は潜在的に30GBのメモリを使用し、スワップを有効にしたジョブを持っています。完了するまでには*日*かかります。したがって、パフォーマンスの違いは大きいです。私はマシンがアイドル状態の間にジョブを実行するようにKubernetesを設定しました。マシンが使用されると、ノードは自動的に排水されます。これは完璧ではありませんが、私はスワッピングの問題がなければ完璧に動作します。 – morxa