首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么我不能在GKE容器CRI中看到暂停容器?

为什么我不能在GKE容器CRI中看到暂停容器?
EN

Stack Overflow用户
提问于 2022-03-15 12:18:05
回答 3查看 435关注 0票数 2

我正在使用一个带有Ubuntu节点的GKE集群& containerd作为CRI。我不能像我们以前在码头看到的那样看到任何暂停容器。它们是否不再存在于集装箱中?有什么变化或者我不知道吗?

cluk_ti4@gke-cluster-1-default-pool-b897ab15-7kzn:~$ sudo -i

代码语言:javascript
复制
> root@gke-cluster-1-default-pool-b897ab15-7kzn:~# docker ps CONTAINER
> ID        IMAGE               COMMAND             CREATED            
> STATUS              PORTS               NAMES
> 
> root@gke-cluster-1-default-pool-b897ab15-7kzn:~# crictl ps CONTAINER  
> IMAGE               CREATED             STATE               NAME      
> ATTEMPT             POD ID 65b544036d815       cb2388d1f0a57       25
> hours ago        Running             data-db                0         
> 868cf5dd712a3 42afee3f328b1       0e403e3816e89       25 hours ago    
> Running             dbcontainer            0                  
> 1e67b12c7ddbf 944ac9c2334e2       295c7be079025       25 hours ago    
> Running             nginx                  0                  
> 9bc0d4292190b 99aff9af2f0c8       0e403e3816e89       25 hours ago    
> Running             redis                  0                  
> d5cda32e41f0f 43af76f1b819e       6266988902813       4 days ago      
> Running             prometheus-to-sd       0                  
> 43441f62220af 17d024b959956       d204263033d6e       4 days ago      
> Running             sidecar                0                  
> 43441f62220af e417d5e3b723f       ffd5a31c75009       4 days ago      
> Running             dnsmasq                0                  
> 43441f62220af d1c035046787f       1434d0253770f       4 days ago      
> Running             konnectivity-agent     0                  
> b19697ac36cf1 596e5a51c5fb8       1434d0253770f       4 days ago      
> Running             konnectivity-agent     0                  
> d0d35f65b0a3d 9231a60426be9       98b27a8d721c5       4 days ago      
> Running             gce-pd-driver          0                  
> e17e59a9486f6 63b943910b402       a26d732ed0895       4 days ago      
> Running             gke-metrics-agent      0                  
> 7052db1775ea5 cca9f35cec83d       5440bb4e13af5       4 days ago      
> Running             kubedns                0                  
> 43441f62220af 83570807e719c       ff9d4d52a7759       4 days ago      
> Running             fluentbit-gke          0                  
> 7bf90df2dc604 a0444e1f50435       8ee6ce05080ec       4 days ago      
> Running             csi-driver-registrar   0                  
> e17e59a9486f6 16ec942baf944       294aee909773c       4 days ago      
> Running             fluentbit              0                  
> 7bf90df2dc604 1cb29a3a26896       217b1e208caea       4 days ago      
> Running             kube-proxy             0                  
> 3923908ea54d7

root@gke-cluster-1-default-pool-b897ab15-7kzn:~#蟋蟀ps \ grep -i暂停

root@gke-cluster-1-default-pool-b897ab15-7kzn:~#

EN

回答 3

Stack Overflow用户

发布于 2022-06-30 07:11:02

在这里输入图像描述

代码语言:javascript
复制
ctr -n k8s.io c ls

你可以这样做

票数 2
EN

Stack Overflow用户

发布于 2022-03-15 14:37:17

pause容器仍然与容器一起存在,但是它们在crictl中是不可见的。您应该能够通过一个简单的sudo ps命令看到它们。

票数 0
EN

Stack Overflow用户

发布于 2022-05-06 17:27:17

正如LaudinCast所写,实际上pause容器仍然存在。它在很多方面都是必需的,比如保存整个Pod的网络名称空间。但是,我仍然不知道为什么CRI规范将它们从ListContainers方法的结果中筛选出来!

编辑:现在我知道了,因为CRI在沙箱中有一个沙箱和容器的概念。请参阅CRI规范proto中定义的RPC调用。实际上,crictl pods将列出所有沙箱,从而列出我们情况下的pause容器。您可以比较ID,它们将匹配,还可以使用crictl -D pods查看正在使用的RPC,并与crictl -D ps进行比较。

例如,在已弃用,甚至在Kubernetes 1.24中,实现containers的Dockershim中,您可以找到代码行,它将从返回的列表中删除pause容器。显然是再加上2016年。显然,容器在它的CRI实现中做的完全一样,我没有花时间找到代码库中的确切位置,但它应该是在这附近

如果希望看到主机上的pause容器正在运行,可以使用ctrnerdctl列出正在运行的所有容器。只需注意容器的容器使用名称空间 (不仅仅是Linux名称空间lol)。因此,您必须键入类似nerdctl --namespace k8s.io psctr --namespace=k8s.io c ls的内容,并且所有内容都会像以前的docker ps一样列出!

如果您需要更多的详细信息,请参阅我在Kubernetes松弛这里上的“研究”线程。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71482106

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档