我正在使用Kubernetes 1.15.7,而我的问题类似于https://github.com/kubernetes/kubernetes/issues/62362
apiVersion: v1
kind: Pod
metadata:
name: init-demo
spec:
containers:
- name: nginx
image: nginx
ports:
- containerPort: 80
volumeMounts:
- name: workdir
mountPath: /usr/share/nginx/html
# These containers are run during pod initialization
restartPolicy: Always
initContainers:
- name: install
image: busybox
command:
- sh
- -c
- sleep 60
volumeMounts:
- name: workdir
mountPath: "/work-dir"
dnsPolicy: Default
volumes:
- name: workdir
emptyDir: {}
在节点上,如果我发出docker container prune
,则容器是运行器,它会删除已退出的busybox(初始)容器。只是重新启动它并触发Pod也重新启动。
我发现github问题与此类似,但没有太多解释。像这样,这些退出的容器在使用docker system df
时不会向消费者显示出很多相同的内容,但是它不允许我在节点上整体运行prune命令。
答案 0 :(得分:0)
Kubelet管理docker映像的垃圾收集,因此您不必这样做。 看看k8s documentation for more info on this topic。
根据k8s文档:
垃圾收集是kubelet的有用功能,它将清除未使用的图像和未使用的容器。 Kubelet将每分钟对容器执行一次垃圾收集,每五分钟对图像进行一次垃圾收集。
不建议使用外部垃圾收集工具,因为这些工具可能会通过删除预期存在的容器来破坏kubelet的行为