这个问题我不想多说,现在已经是北京时间晚上10点半了,我要赶着下班,所以一切从简。
起因
部署用的是Kind,helm install部署之前会去uninstall之前的内容,但是效果并没有像所想那样,这件事一开始没人发现,由于我们使用的是CICD自动化部署,结果后来突然线上的mongo挂了,发现磁盘空间一点没给剩,最后纠察到原因是helm在部署的时候保留了原来的image镜像。
经过
最初的紧急做法是删除原有的kind包重新部署,随着项目越来越多,这种做法逐渐变得繁琐起来,不得不寻找造成这个问题的根本原因。
但是由于kubectl和helm权限的局限性,并且k8s为了保证底层逻辑的不可见,将docker API封装了,无法正常调用docker prune,只能另外寻找办法
结果
kind集成了ctr和crictl工具,万幸,能用。
crictl工具是docker API某种程度上的替代,可以使用crictl images
命令查询当前kind所有镜像,对应的是docker images
,crictl rmi -q
或者crictl rmi --prune
命令清除当前所有未被使用的镜像,对应的命令是docker images prune
。
问题解决。