初学者问一个略显深入的问题: K8S 如何查看 Pod 的 Cgroup

2022-08-08 11:27:32 +08:00
 jenrey

一、查看 docker container 的 Cgroup 我是使用如下方式:

$ docker ps|grep nginx
$ docker inspect 4e35d36bc919 | grep -i pid

"Pid": 20513,
"PidMode": "",
"PidsLimit": null,

$ cd /sys/fs/cgroup/memory
$ cat cgroup.procs # 20513 ,可以看到 docker nginx 的 container 的 PID 为 20513 的已经生效
$ cat memory.limit_in_bytes 

二、但是在 K8S 中找了半天也找不到 Pod 的 Cgroups

# 使用下面命令设置了 CPU 和 Memory
$ kubectl set resources deployment nginx-deployment -c=nginx --limits=cpu=500m,memory=128Mi
# 查看是否生效
$ kubectl get deploy nginx-deployment -oyaml
...
spec:
  containers:
    resources:
      limits:
        cpu: 500m
        memory: 128Mi
...

得到如上 yaml 证明已经修改 CPU 、Memory 成功了。

问题:K8S 如何查看 Pod 的 Cgroup ?换句话说我想找到“使用 kubectl set resources 命令设置 CPU 、Memory 的 Cgroup 在 Linux 上的实现”,因为是初学者,所以希望各位前辈通俗易懂最好有命令可以提供一下,不胜感激!!!!感谢每一位回复的前辈,谢谢

docker 已配置:cgroupdriver=systemd

docker version:20.10.17

kubernetes version:v1.22.2

2700 次点击
所在节点    Kubernetes
8 条回复
root01
2022-08-08 11:38:57 +08:00
kubectl describe pod podname -n namespace
andyangyu
2022-08-08 11:47:32 +08:00
pod 最后也是调度到某一台服务器上的 container ,在那台服务器上查看 container 就行
kalllllllen
2022-08-08 11:58:52 +08:00
用 kubectl describe 就可以
1point
2022-08-08 12:29:23 +08:00
cat /sys/fs/cgroup/memory/memory.limit_in_bytes
jenrey
2022-08-08 13:48:41 +08:00
@kalllllllen describle 看不到关于此 Pod 的 Cgroup 目录信息。而我在`/sys/fs/cgroup/memory/`下又无法找到此 Pid 的 Cgroups
jenrey
2022-08-08 14:00:16 +08:00
@root01 不太行,还是看到不 Cgroup 信息。我在`/sys/fs/cgroup/memory/kubepods.slice/kubepods-pod089f877c_815d_4f1d_8a18_c8d4dc528932.slice`目录找到了 deployment 的 cgroups ,但是我是挨个文件看的,最后发现此目录下的`memory.limit_in_bytes`内的值为 134217728Bytes ,也就是 128MB ,但是我现在希望得到此目录与 Pod 的对应关系。
martinqian
2022-08-08 14:24:02 +08:00
下面这个方式是可以拿到的,AWS EKS 1.22

```bash
kubectl get pods -n namespace -o wide

ssh ...
ps -ax | grep nginx | grep -v grep
cat /proc/$pid/cgroup
```
jenrey
2022-08-08 15:42:59 +08:00
@martinqian 感谢您,问题得到解决了,现已总结了具体过程。希望可以帮助到更多的人。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/871379

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX