Kubernetes的OOM和CPU限制

这篇文章是基于Javier Martinez于2023年1月25日在博客(https://sysdig.com/blog/troubleshoot-kubernetes-oom)上发布的内容进行翻译和重构后形成的日语版本。

首先

限制和请求

有可能被驱逐出去。

Kubernetes 内存溢出

被OOM杀掉

State:             Running      Started:   Thu, 10 Oct 2019 11:14:13 +0200  Last State: Terminated      Reason:      OOMKilled      Exit Code: 137      Started:    Thu, 10 Oct 2019 11:04:03 +0200      Finished:  Thu, 10 Oct 2019 11:14:11 +0200

oom分数oom_score_adj is a native Chinese phrase.OOM Killer

内存杀手

    • コンテナに設定されたKubernetes Limit

 

    • ネームスペースに設定されたKubernetes ResourceQuota

 

    ノードの実際のMemoryサイズ

 

Kubernetes OOM graph

 

内存过度承诺

使一些Pod消失

监控Kubernetes中的OOM错误

node_vmstat_oom_kill 节点_虚拟内存统计_内存溢出杀进程

(sum by (namespace,pod,container)(rate(container_cpu_usage_seconds_total{container!=""}[5m])) / sum by (namespace,pod,container)(kube_pod_container_resource_limits{resource="cpu"})) > 0.8

 

Kubernetes CPU限制调整

CPU限频

    • コンテナに設定されたKubernetes Limit

 

    • ネームスペースに設定されたKubernetes ResourceQuota

 

    ノードの実際のメモリサイズ

 

    • CPUは道路です。

 

    • 車両はプロセスを表し、それぞれが異なるサイズを持っています。

 

    • 複数の車線は、複数のコアを持つことを表します。

 

    リクエストは自転車レーンのような専用道路になります。

 

Kubernetes中的CPU处理

分享

Kubernetes shares system for CPU

 

Kubernetes Throttling graph

您可以通过`/sys/fs/cgroup/cpu/cpu.stat`来查看CPU的统计信息。

CPU 的过度承诺

限制和请求的文章

监控 Kubernetes CPU 限制

 

(sum by (namespace,pod,container)(rate(container_cpu_usage_seconds_total{container!=""}[5m])) / sum by (namespace,pod,container)(kube_pod_container_resource_limits{resource="cpu"})) > 0.8

容器的 CPU CFS 节流周期总数。容器 CPU CFS 周期总数

最佳实践

注意限制和请求

 

应对驱逐准备

kubelet:键盘守护进程

调度器

限制流量是一位沉默的敵人。

Throttling is a silent enemy.

 

总结

 

https://sysdig.jp/blog/kubernetes-pod-evicted/

https://sysdig.jp/blog/kubernetes-limits-requests/

 

Kubernetes CPU and Memory cheatsheet

 


用Sysdig Monitor来调整Kubernetes资源的适当大小。

 

    • メモリリクエスト

 

    CPUリクエスト

发现未被充分利用的资源

Capacity planning Kubernetes Sysdig Monitor

请在30天内免费试用!

广告
将在 10 秒后关闭
bannerAds