Skip to content

Cannot commit and push container image from Kubernetes pods #827

@nettoclaudio

Description

@nettoclaudio

Hello folks! 👋

I'm experiencing a strange behavior while committing a container (from Kubernetes pod) and pushing it to some container registry after. I always get the same error from the push command: content digest sha256:898c46f3b1a1f39827ed135f020c32e2038c87ae0690a8fe73d94e5df9e6a2d6: not found.

I'm filing this issue here but there's a chance the problem is on containerd side because I've already seen it working in an earlier version. I'm trying to find out which version it stopped to work.

I'm still investigating but no idea so far... suggestions are welcome.

Steps to reproduce:

  1. Create an arbitrary Kubernetes pod (for simplicity w/ just one container).
$ kubectl run --image tsuru/go:latest my-app -- sleep Inf
  1. Execute arbitrary commands to generate changes in the container image (to be committed):
$ kubectl exec my-app -- mkdir -p /tmp/foo/bar
  1. Commit the container to a local image:
$ CONTAINER_ID=$(kubectl get pods my-app -o 'jsonpath={ .status.containerStatuses[0].containerID }' | sed -E 's|(.+)://||g')
$ nerdctl --namespace k8s.io commit ${CONTAINER_ID} registry.example.com/my-app:v1
  1. Push to local registry (no credentials needed):
$ nerdctl --namespace k8s.io push registry.example.com/my-app:v1
FATA[0000] failed to create a tmp single-platform image "registry.example.com/my-app:v1-tmp-reduced-platform": content digest sha256:898c46f3b1a1f39827ed135f020c32e2038c87ae0690a8fe73d94e5df9e6a2d6: not found

Environment information:

  • nerdctl: 0.17.0
  • containerd: v1.4.12 7b11cfaabd73bb80907dd23182b9347b4245eb5d
  • OS: Buildroot 2021.02.4 (from minikube)
  • Kernel: 4.19.202
  • Kubernetes version: v1.20.6
  • kubectl version: v1.20.6
  • Minikube: v1.25.1

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions