I am currently running into a problem with my docker-desktop setup.
I'm using docker-desktop with docker-compose and the integrated Kubernetes cluster for debugging. Usually my workflow consists of running by application in docker-compose with the integrated Visual Studio 2019 development workflow. This also means I am using the VS integrated docker workflow with volume mounts etc.
In addition to that, I'm occasionally building all images in Release and upload them to an ACR, pulling them in my Kubernetes cluster.
Recently I also wanted to check out the tool "skaffold" for local development, but whenever I build all images with this, my Kubernetes cluster is suddenly running into DiskPressure
. As soon as I run docker system prune
and clean up all images / containers, it's working again.
I specifically checked back, and the disk space I assigned to docker is not even close to being full. Also, the eviction threshold set on my kubelet is not met.
However, I noticed that my kubernetes cluster raises the following error which probably also causes the DiskPressure error:
wanted to free 5694854758 bytes, but freed 5617398719 bytes space with errors in image deletion: [rpc error: code = Unknown desc = Error response from daemon: conflict: unable to remove repository reference "frontend:dev" (must force) - container f638acaa6d9c is using its referenced image 8688fb11a32a...
This error occurs for basically every container I am running in my local docker-compose on the side. It occurs every time I try to run skaffold dev
.
I'd really like to know what's going on.
EDIT:
I was able to take a closer look at what's going on. When skaffold dev
is starting to deploy, the Kubernetes cluster runs into DiskPressure. I was now able to check the referenced container & image ids in the warning message regarding "node was low on ephemeral storage. In my example, let's assume I'm running frontendservice:dev
in my local docker-compose debug session, and the container is running just fine. Now, I'm building a separate version of the same code as myAzureCr.cr.io/frontendservice:testing
, upload it to my ACR, and try to use it in my cluster.
The warning I just examined now wants to remove and clean the container using frontendservice:dev
, which is entirely unrelated to what's going on in the cluster. What's going on? Still, the used disk space is not even close to what I assigned docker to use.