Por que o comando oc debug falha com um container is unable to start error?

Ao executar o comando oc debug em um cluster privado, você verá uma mensagem de erro semelhante ao exemplo a seguir.

oc debug node/<node-name>
Starting pod/1024104-debug ...
To use host binaries, run `chroot /host`

warning: Container container-00 is unable to start due to an error: Back-off pulling image "quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:7dd7a3a1be7009629c709e6c88a1551d471aba9bf3deb873bc5f4d814675edfe"

O comando oc debug inicia um pod de depuração no nó que você especificar. O pod de depuração usa uma imagem de contêiner público a partir do registro de contêiner quay.io. Em clusters privados sem acesso à internet pública, seu cluster não consegue extrair a imagem do contêiner de depuração a partir do registro público.

Para resolver este problema, extraia uma imagem de ocp-release a partir do quay.io e envie-a por push para seu registro de imagens privado. Depois, quando você executar o comando oc debug, especifique a imagem de contêiner privado que deseja usar.

  1. Obtenha uma imagem de quay.io que corresponda à versão e à arquitetura de seu cluster. Por exemplo, se você tem um cluster 4.7.19, extraia a imagem quay.io/openshift-release-dev/ocp-release:4.7.19-x86_64. Observe que é preciso ter uma conta Red Hat e permissões para extrair imagens.

    docker pull quay.io/openshift-release-dev/ocp-release:4.7.19-x86_64
    
  2. Identifique e extraia a imagem para o registro de seu contêiner privado.

  3. Tente novamente o comando oc debug com a opção --image=icr.io.

    oc debug node/<node-name> --image=icr.io/<namespace>/<image>:<tag>