為何 oc debug 指令會因 container is unable to start error 而失敗?

當您在私有群集上執行 oc debug 指令時,會看到類似以下範例的錯誤訊息。

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"

oc debug 指令會在您指定的節點上啟動除錯 Pod。 除錯 Pod 會使用 quay.io 容器登錄中的公用容器映像檔。 在無法存取公用網際網路的專用叢集上,您的叢集無法從公用登錄取回除錯容器映像檔。

若要解決此問題,請從 quay.io 取回 ocp-release 映像檔,並將它推送至專用映像檔登錄。 然後,當您執行 oc debug 指令時,請指定您要使用的專用容器映像檔。

  1. 從符合叢集版本及架構的 quay.io 取回映像檔。 例如,如果您有 4.7.19 叢集,請取回 quay.io/openshift-release-dev/ocp-release:4.7.19-x86_64 映像檔。 請注意,您必須具有 Red Hat 帳戶及許可權才能取回映像檔。

    docker pull quay.io/openshift-release-dev/ocp-release:4.7.19-x86_64
    
  2. 標記映像檔並將其推送至專用容器登錄

  3. 請使用 --image=icr.io 選項重試 oc debug 指令。

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