はじめに Kubernetes は v1.25 で cgroup v2 サポートを GA しており、その後に cgroup v2 に関連する機能が追加されています。しかしまだ多くのディストリビューションで Kubernetes がデフォルトで cgroup v2 を使用しない設定のため、実際に利用している方は多くないと思います。PFN では2022年12月に Kubernetes バージョンを v1.25 にアップグレードするのと同じタイミングで cgroup v2 に切り替えています。 このエントリでは Kubernetes の cgroup v2 に関する機能である MemoryQoS フィーチャゲートと memory.oom.group の2つについて、機能概要と課題を共有します。なお、Kubernetes v1.28 時点での情報です。 そもそもの cgroup v2 について そ
LWN の The burstable CFS bandwidth controller の日本語訳です。 カーネルの CFS 帯域幅コントローラーは cgroup 毎に利用可能な CPU 時間を効率的に制御できる。特定のプロセスが CPU 時間を大幅に消費するのを防ぎ、CPU 時間を使いたい全てのプロセスに十分な時間を確保できる。とはいえ当然のことながら、帯域幅コントローラーが全てのワークロードに完璧に対応できるわけではない。Huaixin Chang の一連のパッチは、バーストするレイテンシの影響を受けやすいワークロードでより良く動作することを目指している。 帯域幅コントローラーは “Completely Fair Scheduling (完全に公平なスケジューリング)” (CFS) タスク (”リアルタイムプロセス”と対比して”通常プロセス”とも呼ばれる) にのみ適用される。リアルタ
この投稿は、2部構成となっているシリーズの第2部です。 第1部では、CFS-Cgroup の帯域幅の制御が関係したスロットリングに関する大きな問題が認識された状況について説明しました。この問題を明らかにするために、問題が発生した環境を再現し、git bisect を使用して、問題が最初に発生したバージョンを特定しました。しかし、このバージョンにはまったく問題がないように見えたので、状況はより複雑になりました。この投稿では、このスロットリングの問題に関する根本原因をどのように突き止めたのか、そしてその解決方法について説明します。 Photo by Jake Givens on Unsplash 多数のスレッドを使用した、複数の CPU のスケジュール 第1部で説明した概念モデルは正確ではありましたが、カーネルのスケジューラの複雑性を完全に表すものではありませんでした。スケジューリングプロセス
Kubernetes: cgroup v2 使用時に "failed to create fsnotify watcher: too many open files" エラーが発生する問題の対策cgroupskubernetescontainerdcgroup-v2 はじめに Kubernetes 1.25 で cgroup v2 が GA しました。Kubernetes で cgroup v2 に移行するとメモリ QoS が導入され、Pod のメモリ使用量が増加した際の安定性が向上するメリットがあります1。そこでクラスタを Kubernetes 1.25 にアップグレードする際に一緒に cgroup v2 に移行したのですが、移行後に kubectl logs -f コマンドやノードのホスト上で journalctl -f を実行した際に次のエラーが発生するようになりました。
https://kernel.org/doc/Documentation/cgroups/net_cls.txt に書いてあるのを試した。 -------------------------------------------------- root@192.168.0.100 modprobe cls_cgroup mkdir /sys/fs/cgroup/net_cls mount -t cgroup -o net_cls aiueo /sys/fs/cgroup/net_cls mkdir /sys/fs/cgroup/net_cls/{apple,banana} echo 1647 > /sys/fs/cgroup/net_cls/apple/tasks # 1647 とは、別の端末で起動した bash プロセスの PID echo 1516 > /sys/fs/cgroup/ne
前回はcgroup v2で使えるコントローラのうち、v1から大きく変わったコントローラや、新たに実装されたコントローラについて説明しました。 今回はcgroup v2で行われるリソース制御のタイプ、cgroupで使うインターフェースファイルに関係する規則や、コントローラでリソース制限を設定する際に関係するファイルのフォーマットや書き込み方について説明したいと思います。 cgroupとcgroup内ファイルの命名規則 cgroup v1には、cgroupで使用するファイルやその内部の書式について、明確な規則はありませんでした。cgroup v2では、ファイルに関する規則がきちっと定められました。この決まりを説明していきましょう。 今回の実行例は、前回と同じくUbuntu 21.10環境で実行しています。 まず、cgroup自体の動きに影響するcgroupコアに関係するインターフェースファイル
By Yuval Avrahami March 3, 2022 at 5:09 PM Category: Cloud Tags: containers, CVE-2022-0492, Linux, vulnerabilities This post is also available in: English (英語) 概要 2022年2月4日、Linuxはカーネルにおける新たな特権昇格脆弱性CVE-2022-0492を公表しました。CVE-2022-0492はコンテナの基本構成要素であるLinuxの機能、コントロールグループ(cgroup)における論理バグです。この問題は最近発見されたLinuxの権限昇格脆弱性のなかでもとりわけその単純さできわだつもので、「Linuxカーネルが誤って特権的オペレーションを非特権ユーザーに公開してしまった」という内容になっています。 さいわい、ほとんどのコン
はじめに この記事は筆者がKubeCon EU 2021にて発表した「Resource Requests and Limits Under the Hood: The Journey of a Pod Spec」の内容を中心とし、ブログ向けにまとめなおしたものです。 www.youtube.com 日本語でこのリソース要求/制限について内部の仕組みまで踏まえて詳細に書かれた記事はあまりないので、誰かの助けになれば幸いです。 はじめに Kubernetesにおけるリソースの要求と制限 スケジューラーによるスコアリング ノードでのPod作成処理 Requests全体の流れ Limits全体の流れ CRI内部の処理 OCI内部の処理 まとめ Kubernetesにおけるリソースの要求と制限 Kubernetes上でアプリケーションを実行する際、ワークロードの特性に応じて以下のような形で必要なリソ
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く