タグ: #kubernetes
GPU・LLM・MLOps・Kubernetes、そしてマインドセット · 247 件
Kubernetes ImagePullBackOffとErrImagePull完全解剖 — 原因文字列ひとつで終わらせる
PodがErrImagePullを経てImagePullBackOffに留まる状況を原因別に分解します。2つの状態が同じ事象の異なる段階であること、そしてkubectl describeのEventsの最後の1行にすでに答えが書かれていることから出発します。タグのタイプミス、プライベートレジストリの認証失敗、ServiceAccountにSecretが付いていない場合、Docker Hubの匿名プルのレートリミット、プロキシとエアギャッ
2026-07-26 · 18 分で読めます #kubernetes#imagepullbackoff#container-registry#troubleshooting#containerdping は通るのに大きなリクエストだけ止まる — MTU、MSS、PMTUD ブラックホールの解剖
小さなリクエストはうまくいくのに大きな応答だけ途中で止まってしまう症状は、ほぼ常に経路 MTU の問題です。TCP は MSS をインターフェースの MTU を基準に広告するので、経路の途中がもっと狭ければ、パス MTU 探索が ICMP Fragmentation Needed で知らせなければなりません。ところがその ICMP をファイアウォールが捨てるとブラックホールが生まれます。MSS と MTU の算数、ping -M do
2026-07-26 · 22 分で読めます #network#mtu#tcp#vpn#kubernetesKubernetes OOMKilled(137) メモリ問題の解決 — 上限を上げる前に確認すべきこと
コンテナが Exit Code 137 で停止したのに、アプリケーションログには例外が何も残らない状況を扱います。137 は 128 足す 9、つまり SIGKILL であるという事実しか伝えてくれないという点から出発し、コンテナの cgroup 上限による OOM とノード全体の OOM、そして kubelet の退避を dmesg の一行で見分ける方法を整理しました。JVM と Node.js と Python がコンテナの上限をど
2026-07-26 · 23 分で読めます #kubernetes#oomkilled#memory#jvm#cgroupCPU steal timeとスロットリング — topのst、バースタブルのクレジット、CFSクォータを見分ける方法
CPU使用率は40%なのにp99レイテンシが跳ね、topのst列には20%が表示されています。一見よく似たこの症状には、まったく異なる三つの原因があります。ハイパーバイザーがvCPUに物理CPUを渡さないCPU steal time、バースタブルインスタンスのCPUクレジット枯渇、そしてtopにはまったく現れないcgroup CFSクォータのスロットリングです。stは何パーセントから問題なのか、nrthrottledとthrottled
2026-07-26 · 28 分で読めます #linux#cpu#cgroups#kubernetes#cloudOOM Killer がプロセスを殺したとき — dmesg ログの読み解きから cgroup OOM の見分け方まで
プロセスが何のログも残さずに消え、終了コードは 137 です。カーネルの OOM Killer が残した dmesg リポートを 1 行ずつ読む方法、badness スコアが計算される仕組みと最も大きいプロセス以外が死ぬ理由、システム全体の OOM と cgroup v2 memory.max によるコンテナ OOM をログだけで見分ける方法を整理します。overcommitmemory 0/1/2 が実際に何を変えるのか、スワップがあ
2026-07-26 · 27 分で読めます #linux#memory#oom#cgroups#kubernetesKubernetes Pod Pending 状態の解決 — スケジューラーが残した拒否理由の読み方
Pod が Pending のまま数分間も先に進まないとき、スケジューラーはすでに拒否理由をイベントに残しています。0/5 nodes are available で始まるあの一文を正確に解読する方法から始めて、九つの原因を一つずつ排除していきます。リソース不足は実際の使用量ではなく requests の合計で判定されること、taint とトレランス、ノードセレクターとアフィニティの不一致、PVC の未バインドと WaitForFirs
2026-07-26 · 20 分で読めます #kubernetes#scheduler#pending#troubleshooting#autoscalingKubernetes CrashLoopBackOff の原因別診断と解決 — ログが空のとき何を見ればよいか
Pod が CrashLoopBackOff に陥っているのに kubectl logs が何も返さない状況を、最初から最後まで扱います。BackOff は原因ではなく 10 秒から 5 分まで伸びる再起動待ち時間だという正確な意味から、describe の Last State と Exit Code を読む順序、終了コード 0/1/127/137/139/143 がそれぞれ何を意味するかまで整理しました。アプリケーションの即時終了、
2026-07-26 · 20 分で読めます #kubernetes#crashloopbackoff#troubleshooting#kubectl#sreコンテナイメージ脆弱性スキャン結果の読み方 — Critical 数百件を 0 にする実際の方法
イメージスキャナーを初めて回すと脆弱性が数千件出てきて、そのうち相当数が Critical です。このレポートをそのままチームに投げても何も起きません。この記事はスキャナーが実際にしているのはインストール済みパッケージの一覧と CVE データベースを突き合わせることだけだという事実から出発し、ベンダーのバックポートパッチによって生じる誤検知、ディストリビューションのセキュリティ勧告を参照すべき理由、アプリケーションコードの脆弱性はそもそ
2026-07-26 · 20 分で読めます #security#container#docker#trivy#kubernetesConnection refused と timeout の違い — TCP レベルで原因を絞り込む方法
接続できないときにターミナルが返すメッセージは大きく二種類あります。Connection refused は相手が RST を返したという意味で、timeout は送った SYN に何の応答もないという意味です。この一行の違いが、プロセスの問題なのか経路の問題なのかをほぼ決めてしまいます。tcpdump で SYN と RST を直接確認する方法、SYN 再送間隔からタイムアウトの長さをあらかじめ計算する方法、リスナーがあるのに tim
2026-07-26 · 19 分で読めます #network#tcp#troubleshooting#linux#kubernetesKubernetes プローブ3種を正しく使う — liveness, readiness, startup の正確な境界
何の問題もない Pod が定期的に再起動したり、デプロイ直後だけ 502 が大量に出たり、起動の遅いアプリケーションが永遠に Ready に到達できなかったりする3つの事故は、すべてプローブの設計から生まれます。3つのプローブがそれぞれどの質問に答え、失敗したときに何をするのかを区別したうえで、initialDelaySeconds から failureThreshold までのパラメータが実際に何秒後にコンテナを殺すのかを計算します。
2026-07-26 · 26 分で読めます #kubernetes#liveness-probe#readiness-probe#graceful-shutdown#sreTalos Linux 1.13 — シェルなし不変OSが、デバッグシェルを出荷するまで
Kubernetes専用の不変OSであるTalos Linuxの1.13が、2026年4月27日にリリースされました。今回のリリースには、Clang/ThinLTOでビルドされたカーネル、再現可能なディスクイメージ、マシン全体レベルのコンテナイメージ署名検証、そして最も象徴的な機能 — シェルもSSHも持たないOSのための公式デバッグコンテナ(talosctl debug) — が含まれています。本稿は1.13の実際のリリースノートと公
2026-07-17 · 23 分で読めます #linux#kubernetes#talos#immutable-infrastructure#devopsFlux 2.9 とWeaveworks以降の2年 — スポンサーを失ったGitOpsプロジェクトはどう維持されているか
2024年初め、Fluxの生みの親であるWeaveworksが店を畳んだとき、GitHubのディスカッションには「このプロジェクトの未来は危ういのか?」という問いが立ちました。2年半が過ぎた2026年6月30日、Fluxは2.9.0をリリースしました。本稿はその間に実際に起きたことを、検証可能な一次資料だけで再構成します — リリースケイデンスがどう揺らぎ、どう回復したか(v2.0からv2.9までのリリース間隔の実測)、いまコアメンテナ
2026-07-17 · 20 分で読めます #devops#gitops#fluxcd#kubernetes#open-sourceOTelのKubernetes属性がstableになった — k8sattributesのデフォルトが反転する前にすべきこと
OpenTelemetryのKubernetesセマンティック規約は、2026年6月12日のsemconv v1.42.0でstableに昇格しました。ところがCollectorのk8sattributesプロセッサはいまだデフォルトが旧スキーマ(v0)のままなので、大半の人には何も起きていません。問題はこれが恒久的ではないという点です — Collector RFCが定めたロールアウトどおりなら、フィーチャーゲートがbetaに上がった
2026-07-16 · 22 分で読めます #opentelemetry#observability#kubernetes#semantic-conventions#telemetry-pipelineambient に移行すると EnvoyFilter は静かに無視される — Istio 1.30 の TrafficExtension が埋めた穴、埋まらなかった穴
ambient モードへの移行を阻む本当の障壁は、リソースではなく拡張性です。Istio公式のマイグレーション文書は、EnvoyFilterがwaypointでサポートされておらず、移行後は「静かに無視される」こと、代替がなければ「マイグレーションのブロッカー」になることを、はっきりと書いています。2026年5月18日に出たIstio 1.30は、この穴を狙ってTrafficExtension APIを導入しました — Wasm と L
2026-07-16 · 26 分で読めます #kubernetes#istio#service-mesh#envoy#ambient-meshKubernetes v1.36 の Workload/PodGroup API — ギャングスケジューリングが kube-scheduler に入りつつある
AI学習・バッチワークロードのギャングスケジューリングは、これまでVolcanoやKueueといった外部スケジューラの仕事でしたが、Kubernetesはこの機能をコアに取り込み始めています。v1.35はWorkload APIと最初のギャングスケジューリング実装をアルファとして出し、2026年4月22日リリースのv1.36は構造を作り直し、Workloadを静的テンプレートに、新しいPodGroupをランタイムオブジェクトに分離して、
2026-07-16 · 33 分で読めます #kubernetes#scheduling#gang-scheduling#distributed-training#dra良いツールは見えない — gingerBill の主張と「見えなさすぎる」ツールの落とし穴
Odin 言語の作者 gingerBill のエッセイ「Good Tools Are Invisible」を読み、その論旨を整理したうえで現場からの但し書きを加えた記事です。彼は、良いツールは摩擦なく背景へ消えるべきで、欠点を「楽しいパズル」として売り直す話法は正当化だと批判します。私は「感じる生産性と実際の生産性」の区別には同意しますが、インターフェースが見えないことと内部が不透明なことは別だと考えます。ビルドシステムや Kubern
2026-07-11 · 14 分で読めます #tools#developer-experience#kubernetes#build-systems#editorsKubeVirt GPU パススルー VM はなぜ112日間スケジュールされなかったのか — 実際のクラスタ剖検
Rust オペレーターが「GPU ノード4台すべて NotReady」という診断を下した後、その死の原因を実際の8ノードクラスタ(GPU Operator v25.3.0、KubeVirt v1.7.0)で最後まで追跡しました。gpu-fedora と rhel9-gpu-vm が112日間 ErrorUnschedulable で止まっていた本当の理由は、華やかな GPU 設定ではなく kubelet の1行のエラー — 「runni
2026-07-11 · 8 分で読めます #kubevirt#gpu#kubernetes#nvidia#devopsCloudNativePGでKubernetesにPostgresを立ち上げて殺してみる — フェイルオーバー23秒を実測
実際の8ノードKubernetesクラスターにCloudNativePG(CNPG) v1.30.0をインストールし、3インスタンスのPostgresクラスターを立ち上げたうえで、本当にプライマリを殺してみました。ブートストラップから複製の確認、プライマリの強制削除後のフェイルオーバー(23.1秒でレプリカが昇格、データ無損失)、そして死んだノードがレプリカとして自己回復し3/3に戻るまで — 全過程を実測ログとともに記録します。NFS
2026-07-11 · 8 分で読めます #cloudnativepg#postgresql#kubernetes#operator#databaseRustでKubernetes GPUオペレーターを作る — kube-rsで実際のクラスターを診断する
8ノードの実運用ホームラボクラスター(k8s v1.32.5)を相手に、kube-rsを使ってGPUオペレーターをRustで自作して動かしました。GpuInventoryカスタムリソースを定義し、2つのコントローラー(ノードスキャン→CR状態の記録、ノード監視→ConfigMap更新)を1つのバイナリで起動し、クラスターの外で実行しました。そして、オペレーターが実際に吐き出した結果 — GPUノード4個のうちReady 0個、つまりGP
2026-07-11 · 9 分で読めます #rust#kubernetes#operator#gpu#kube-rsGPU Operator × KubeVirt 総まとめ — コンポーネント・設定・バージョン、部分MIGと手動MIGまで
Kubernetes GPUインフラの二本柱を1ページに総整理します。GPU Operatorのオペランド構成、ClusterPolicy設定、バージョン体系とあわせて、ノードの一部のGPUだけにMIGを適用するカスタム設定と、nvidia-smiでMIGを手動で作成・削除する方法を扱います。さらに、KubernetesでVMを動かすKubeVirtの4大コンポーネント(virt-operator・controller・handler・
2026-07-09 · 12 分で読めます #kubernetes#gpu#kubevirt#mig#nvidia